ZABBIX Agent2監控docker

橫空大氣排山去,砥柱人間是此峯web

牛兆濂《登華嶽南峯極頂七絕》

Zabbix Agent2監控docker容器

首先咱們先來看一下zabbix agent2監控docker插件的實現原理,其實就是經過調用docker的API來獲取數據,插件目錄位於zabbix-agent2/src/go/plugins/docker,咱們先來看一下client.go文件 這裏就是定義了使用UNIX套接字地址來進行docker客戶端與服務端的通訊config.go定義了docker插件的默認配置,默認套接字位置爲/var/run/docker.sock,定義默認超時時間爲全局代理超時時間,經過調用conf.Unmarshal()函數,將配置文件中的插件參數加載到Options結構體中這個是檢查配置文件輸入的Endpoint是否有錯誤再來看一下docker.go,這裏定義了docker的監控項的鍵值,以及對應的API請求路徑,參數長度這裏是實現了一個Query方法來對根據傳來的API路徑構造GET請求獲取數據也就至關於這種請求,其中1.28是一個常量,表示docker的API版本,/var/run/docker.sock是默認套接字位置這裏實現了一個Export接口,將對應的key傳入給Query方法,返回一個json格式的數據,模板上會建立一些依賴項,使用預處理進程對json數據進行分割下面是zabbix實現自動發現容器和鏡像的兩個方法,會返回包含容器和鏡像信息的json數據對這些指標進行初始化,第一個參數爲指向插件實現的指針,第二個參數爲插件名稱,第三個參數指標1的鍵值,第二個參數爲指標1的說明,日後以此類推docker

瞭解了docker插件的實現思路後咱們能夠根據咱們的需求進行擴展,添加對應的api獲取數據就能夠了,或者根據這個思路在zabbix agent上實現相同的自定義腳本,甚至能夠根據docker插件的實現邏輯來本身編寫插件實現其餘的監控需求json

下面咱們來使用agent2的模板監控docker

連接docker模板而後就能夠看到docker的狀態了api


歡迎各位一塊兒交流微信

本文分享自微信公衆號 - 運維開發故事(mygsdcsf)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。運維

相關文章
相關標籤/搜索