zabbix監(jiān)控k8s
參考資料
現(xiàn)狀我已經(jīng)部署了zabbix-server,但是沒有在k8s部署zabbix-agent
zabbix-agent和zabbix-proxy的區(qū)別
- Zabbix 代理默認(rèn)以 DaemonSet 的形式部署在所有集群節(jié)點上,以被動模式監(jiān)控各個節(jié)點主機資源,使用“Linux by Zabbix agent”模板。
- Zabbix 代理以單副本的 Deployment 形式(默認(rèn))以活動模式安裝在集群中。它從 Kubernetes API、kube-state-metrics 端點和 Zabbix 代理收集數(shù)據(jù)。所有收集的數(shù)據(jù)都會先在本地緩存,然后再傳輸?shù)酱硭鶎俚耐獠?Zabbix 服務(wù)器 ,用于監(jiān)控
安裝步驟
- 添加倉庫
helm repo add zabbix-chart-7.0 https://cdn.zabbix.com/zabbix/integrations/kubernetes-helm/7.0
- 將圖表
zabbix-helm-chart的默認(rèn)值導(dǎo)出到文件$HOME/zabbix_values.yaml:
helm show values zabbix-chart-7.0/zabbix-helm-chart > $HOME/zabbix_values.yaml
將
env.ZBX_SERVER_HOST文件$HOME/zabbix_values.yaml中的環(huán)境變量更改為用于監(jiān)控且可由 Zabbix 代理訪問的 Zabbix 服務(wù)器的地址。例如我的zabbix-server的地址是192.168.1.100,那么我需要將env.ZBX_SERVER_HOST改為192.168.1.100列出集群的命名空間
kubectl get namespaces
- 如果集群中不存在命名空間監(jiān)控,請創(chuàng)建命名空間
monitoring:
kubectl create namespace monitoring
- 在 Kubernetes 集群中部署圖表
zabbix-helm-chart到命名空間monitoring:
helm install zabbix zabbix-chart-7.0/zabbix-helm-chart --dependency-update -f $HOME/zabbix_values.yaml -n monitoring
- 獲取服務(wù)帳戶名稱。如果使用其他版本名稱。
kubectl get serviceaccount -n monitoring
- 獲取為服務(wù)帳戶自動創(chuàng)建的令牌TOKEN:
kubectl get secret -n monitoring zabbix-agent -o jsonpath='{.data.token}' | base64 -d
這樣就安裝了zabbix-agent和zabbix-proxy.
zabbix-server配置
創(chuàng)建zabbix-proxy
- administration -> proxies -> create proxy ->proxy name: zabbix-proxy
- zabbix-proxy是默認(rèn)值,無需修改.直接保存即可.等待一會,zabbix-proxy的狀態(tài)變成online.
創(chuàng)建node監(jiān)控
- 選擇模板
Kubernetes nodes by HTTP

image.png
- 在 宏 - 繼承及主機 宏 中,修改兩個宏:
{$KUBE.API.URL}
{$KUBE.API.TOKEN}

image.png
創(chuàng)建集群監(jiān)控
選擇模板Kubernetes cluster state by HTTP,其他的都是一樣的配置.
我必須很悲傷的告訴你,雖然每一步都正常,但是由于我的監(jiān)控指標(biāo)顯示7283個,可能觸發(fā)了zabbix的bug,所有指標(biāo)都正常的情況下,zabbix沒有圖標(biāo)顯示