Zabbix は Kubernetes を監視します

オンライン監視のためのツールはほとんどがKubernetesありPromethues、基本的にZabbix監視の実装に関する記事はほとんどありませんKubernetesシステムから指標を多次元で収集できるモニタリング機能Zabbix 6.0 LTSが追加されました。この記事を使用して、の監視を実現します。KubernetesKubernetesKubernetes

ここに画像の説明を挿入

1. クラスター監視テンプレート

Zabbix 6.0監視テンプレートはデフォルトでバージョンに含まれていますがKubernetes下位バージョンからアップグレードした場合は、公式テンプレートをダウンロードしてインポートすることもできます。公式テンプレートアドレス

テンプレート名 説明する
HTTPによるKubernetes APIサーバー K8S ApiServer コンポーネントインジケーターテンプレート
HTTP による Kubernetes クラスターの状態 K8S クラスターインジケーターテンプレート
HTTPによるKubernetesコントローラーマネージャー K8S ControllerManager コンポーネントインジケーターテンプレート
HTTP による Kubernetes kubelet K8S Kubelet コンポーネントインジケーターテンプレート
HTTP による Kubernetes ノード K8S クラスター ノードの検出とステータス インジケーターのテンプレート
HTTP による Kubernetes スケジューラ K8S スケジューラ コンポーネント インジケーター テンプレート

Kubernetes の基本的な依存関係テンプレート

テンプレート名 説明する
ZabbixエージェントによるLinux OS Linux システム監視テンプレート

2. サービスの展開

公式は、コンテナ化されたサービス展開メソッドの完全なセットを提供します。これらは、Helm Chart公式のものを使用してここにインストールされます。

1. インストールhelmツール

# wget https://get.helm.sh/helm-v3.8.1-linux-amd64.tar.gz 
# tar zxvf helm-v3.8.1-linux-amd64.tar.gz 
# cp linux-amd64/helm /usr/local/bin/helm

2.倉庫を追加する

# helm repo add zabbix-chart-6.0 https://cdn.zabbix.com/zabbix/integrations/kubernetes-helm/6.0
# helm repo list
NAME            	URL                                                           
zabbix-chart-6.0	https://cdn.zabbix.com/zabbix/integrations/kubernetes-helm/6.0

3.values.yaml を構成する

templatesカタログで定義されているKubernetesリソース オブジェクトの構成ファイルの変数値。

  • Zabbix ProxyAgentパラメータ設定あり
パラメータ 価値 説明する
kubeStateMetricsEnabled 真実 kube-state-metrics をデプロイする
zabbixProxy.image.tag アルパイン-6.0.1 ZabbixProxy Docker イメージ タグ。ZabbixProxy のバージョンを指定するために使用されます。
zabbixProxy.env.ZBX_HOSTNAME zabbix-プロキシ-k8s ZabbixProxy ホスト名
zabbixProxy.env.ZBX_SERVER_HOST Zabbixサーバーのアドレス
zabbixAgent.image.tag アルパイン-6.0.1 ZabbiAgent Docker イメージ タグ。ZabbiAgent のバージョンを指定するために使用されます。
zabbixAgent.env.ZBX_PROXYMODE 0 通常はアクティブ モードに変更されます
zabbixAgent.env.ZBX_ACTIVE_ALLOW 真実 アクティブ モードで実行されているクライアント
zabbixAgent.env.ZBX_ACTIVESERVERS ザビックスプロキシ ZabbixProxy アドレス、kubectl get svc get
  • リソース制限の構成

zabbix agentビジネスへの影響を避けるために制限する必要がある最大のリソース

# vim values.yaml
......
zabbixAgent:
  ## Enables use of Zabbix agent
  enabled: true
  resources:
    requests:
      cpu: 100m
      memory: 54Mi
    limits:
      cpu: 200m
      memory: 120Mi
......
  • kube-state-metricsパラメータ設定 デフォルト
    kube-state-metricsのウェアハウスミラーアドレスは中国の壁からアクセスできないため、bitnami
パラメータ 価値 説明する
画像.リポジトリ bitnami/kube-state-metrics kube-state-metrics ミラー ライブラリの構成

4. Zabbix チャートのインストール

# kubectl create namespace monitoring
# cd zabbix-helm-chrt
# helm install zabbix . --dependency-update -n monitoring

# kubectl get pods -n monitoring
NAME                                       READY   STATUS    RESTARTS   AGE
zabbix-agent-ssf6x                         1/1     Running   0          30h
zabbix-agent-wflqt                         1/1     Running   0          30h
zabbix-kube-state-metrics-c4cc9c88-svgpf   1/1     Running   0          30h
zabbix-proxy-779754bfd6-gc6dh              1/1     Running   0          30h

からAPIアクセスしますToken

# kubectl get secret zabbix-service-account -n monitoring -o jsonpath={.data.token} | base64 -d

3. クラスター監視を追加する

1.Zabbixプロキシを作成する

ここに画像の説明を挿入

2. マシンを作成する

ノード マシンを作成し、Kubernets nodes by HTTPノード ホストの自動検出用のテンプレートを関連付けます。
ここに画像の説明を挿入
ここに画像の説明を挿入
これら 3 つのマクロ変数パラメータは必須パラメータです。

{$KUBE.API.ENDPOINT.URL}
{$KUBE.API.TOKEN}
{$KUBE.NODES.ENDPOINT.NAME} # kubectl get ep -n monitoring

クラスターノード監視を追加すると、次のような効果が得られます。
ここに画像の説明を挿入

3. クラスターサービスの監視

新しいクラスター ステート マシンを作成し、それをKubernets cluster state by HTTPテンプレートに関連付けると、クラスター コンポーネントが自動的に検出され、そのステータスが監視されます。

ここに画像の説明を挿入
以下の 3 つのマクロ変数パラメータを変更する必要がありますが、
ここに画像の説明を挿入
追加後の効果は次のようになります。
ここに画像の説明を挿入
ここに画像の説明を挿入

4. 注意すべき事項

Nodeノードに関連付けられたテンプレート内の一部の監視項目がLinux by Zabbix agentデータを取得できない場合は、zabbix activeそのモードの監視項目だけが値を取得できないか確認し、取得できない場合はパラメータvalues.yml設定せず、パラメータ値を変更してください。文書の冒頭によると。交換後、コンソールが無効であるためアラームため、最新の交換品を入手してください。ZBX_ACTIVESERVERSZBX_ACTIVE_ALLOWKubernetes: Failed to get nodestokentoken


参照:

おすすめ

転載: blog.csdn.net/qq_25854057/article/details/128885621