目 錄
1. 爲什麼選擇Zabbix監控Kubernetes?
2. Zabbix Helm Chart
3. 安裝Zabbix Helm Chart
4. 添加Proxy
5. 創建額外的主機
在選擇Zabbix作爲Kubernetes監控工具之前,我們問自己:“爲什麼我們選擇使用Zabbix而不是Prometheus、Grafana和alertmanager呢?”
畢竟,它們已經成爲雲生態系統中的標準監控工具。我們決定對Zabbix的最低要求是,它在監控Kubernetes和雲原生應用程序方面至少與Prometheus一樣有效。
Zabbix採集Kubernetes API和kube-state-metrics公開的指標監控Kubernetes。Zabbix Helm Chart在集羣中安裝監控組件。Helm Chart包括以Daemonset方式運行的Zabbix Agent,用於監控每個節點上的本地資源和應用程序。還安裝了一臺Zabbix Proxy,用於採集監控數據並將其傳輸到外部的Zabbix Server。
現在我們已經解釋了Zabbix Helm Chart的工作原理,讓我們開始安裝它。在這個示例中,我們將假設您有一個運行中的Zabbix 6.0(或更高版本)實例,可以從要監控的集羣訪問。我在與我們想要監控的集羣不同的集羣中運行一個6.0實例。服務器可通過DNS名稱mdeforest.zabbix.atsgroup.io和非標準端口31103訪問。
我們將首先安裝最新的Zabbix Helm Chart。
建議訪問zabbix.com/integrations/kubernetes,獲取在本教程中可能會提到的任何來源。在那裏,您將找到指向Zabbix Helm Chart和模板的鏈接。在大多數情況下,我們將按照自述文件中概述的步驟進行操作。
kubectl config use-context <cluster context name>
helm repo add zabbix-chart-6.0 https://cdn.zabbix.com/zabbix/integrations/kubernetes-helm/6.0/
如果您使用的是Zabbix 6.2或更高版本,請將此命令中的6.0引用更改爲6.2。
根據您的情況,您需要爲安裝設置一些值。在大多數情況下,您只需要爲Zabbix Agent和Proxy設置一些環境變量。完整的值和環境變量列表可在Helm Chart存儲庫中找到,以及Docker Hub上的Zabbix Agent和Proxy鏡像。
helm install -f </path/to/values/file> [-n <namespace>] zabbix zabbix-chart-6.0/zabbix-helm-chart
watch kubectl get pods
kubectl get secret -o jsonpath={.data.token} zabbix service-account | base64 -d
這將獲取爲服務帳戶創建的密鑰,並從中提取令牌,然後通過base64實用程序傳遞給解碼。請務必將該值複製到某個地方,因爲稍後您將需要它。
kubectl cluster-info
5. 將“Monitored by proxy”一行更改爲之前創建的Proxy,名爲zabbix-proxy。
6. 單擊Macros選項卡,並選擇“Inherited and host macros”。您應該能夠看到可能設置爲影響集羣中監控內容的所有宏。在這種情況下,我們需要更改前兩個宏。第一個宏{KUBE.API.ENDPOINT.URL}應設置爲Kubernetes API端點。在我們的環境中,設置爲之前提到的內容:default.svc.cluster.local:443/api。接下來,令牌應設置爲從命令行之前檢索到的值。
7. 點擊Add按鈕。幾分鐘後,您應該開始在最新數據頁面上看到數據,以及在主機頁面上表示每個節點的新主機。
現在讓我們創建另一個主機,該主機將代表通過Kubernetes API和kube-state-metrics端點可用的指標。
再次單擊Create Host按鈕,將此主機命名爲Kubernetes Cluster State,並再次將其添加到Kubernetes組中。
讓我們再次爲該主機關聯HTTP方式採集數據的模板。同樣,我們將選擇之前創建的Proxy。
在Macro部分中,將kube.api.url更改爲我們之前使用的相同內容,但這次在末尾省略/api。簡單地:default.svc.cluster.local:443。確保像之前那樣設置令牌。
假設在安裝Helm Chart時沒有更改任何其他內容,現在我們可以添加該主機。
幾分鐘後,您應該會收到與羣集狀態相關的指標,包括代表每個節點上的kubelet的主機。
延伸閱讀
本文分享自微信公衆號 - Zabbix開源社區(china_zabbix)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。