監控方式:python+zabbix_sender
原理:python的request庫,請求k8s的api地址,對數據處理。
第一步:獲取k8s的api地址
查看K8S的api地址的命令如下(最好在K8s集羣的master上執行這條命令,因爲如果在node節點上執行該命令有可能會獲取舊的api地址)
第二步:K8S集羣的Master主機生成一個token用來認證,請求數據api數據
生成令牌命令如下(在K8S的Master主機執行命令)
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk ‘{print $1}’)
把token的值保存在本地的一個文件即可,後期需要把token值添加到腳本中。
模板腳本下載地址:
鏈接:https://pan.baidu.com/s/1zIBudV8pI4peaQ21_sgPMg
提取碼:gt8i
第三步:上傳腳本並修改腳本
cd /usr/local/zabbix/share/zabbix/externalscripts目錄下創建一個命名k8s的目錄,把get_k8s.py腳本放到此目錄
需要修改腳本三個地方
上傳外部檢查get_k8s腳本到/usr/local/zabbix/share/zabbix/externalscript目錄
第四步創建主機並且套用腳本
注意:主機名稱必須是k8s_master,否則無法獲取數據。(因爲數據是通過zabbix_sender發送到該主機)
第五步,手動觸發腳本。
選中該監控項。點擊立即檢查
數據效果
Zabbix通過api獲取k8s結果成功
技術交流歡迎加入Q羣:177428068