オンライン監視のためのツールはほとんどが
Kubernetes
ありPromethues
、基本的にZabbix
監視の実装に関する記事はほとんどありませんKubernetes
。システムから指標を多次元で収集できるモニタリング機能Zabbix 6.0 LTS
が追加されました。この記事を使用して、の監視を実現します。Kubernetes
Kubernetes
Kubernetes
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 Proxy
Agent
パラメータ設定あり
パラメータ | 価値 | 説明する |
---|---|---|
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_ACTIVESERVERS
ZBX_ACTIVE_ALLOW
Kubernetes: Failed to get nodes
token
token
参照: