zabbix 自定義監(jiān)控docker容器

1、線上環(huán)境docker已經(jīng)運(yùn)行起來了,有時(shí)候容器掛掉之后沒有第一時(shí)間通知,之前已經(jīng)搭建好zabbix并配置好了微信告警

2、使用zabbix來監(jiān)控容器,并發(fā)送告警

3、首先創(chuàng)建一個(gè)自定義監(jiān)控腳本,來獲取監(jiān)控的值

#!/bin/bash
#監(jiān)控容器的運(yùn)行狀態(tài)
#容器名稱  傳入?yún)?shù)
containerName=$1
#當(dāng)前時(shí)間
now=`date +"%Y-%m-%d %H:%M:%S"`

# 查看進(jìn)程是否存在
exist=`docker inspect --format '{{.State.Status}}' ${containerName}`

if [ "${exist}" != "running" ]; then
    #記錄日志
    echo "${now} docker容器異常, 容器名稱:${containerName}" 請檢查 >> /home/work/monitor/docker_monitor.log
    echo 0
else
    echo 1
fi

腳本說明:通過docker inspect檢查容器狀態(tài)是否為runing,如果是則腳本反饋1,如果不是則返回0

4、修改zabbix_agentd.conf配置文件
vim /etc/zabbix/zabbix_agentd.conf
找到 UnsafeUserParameters=0 ,默認(rèn)是0,修改為1,
然后,為我們自定義監(jiān)控項(xiàng),格式為:UserParameter=<鍵值>,<命令>
UserParameter=janus_monitor,bash /home/work/monitor/docker_monitor.sh titan_janus_1
自定義鍵值為:janus_monitor 要執(zhí)行的命令為執(zhí)行docker_monitor.sh這個(gè)腳本 ,加上參數(shù)titan_janus_1(這個(gè)是需要監(jiān)控的容器名稱)

image.png

添加完成以后,重啟zabbix_agentd生效

5、在zabbix服務(wù)端檢查一下能不能獲取到監(jiān)控的指標(biāo)
zabbix_get -s 192.168.0.220 -p 10050 -k "janus_monitor"
結(jié)果是1,說明OK了,否則報(bào)錯(cuò)的話就要排查錯(cuò)誤,直到輸出結(jié)果是我們要的那個(gè)
其中

-s 客戶端的IP
-p 客戶端端口,默認(rèn)10050
-k 監(jiān)控項(xiàng)的key

6、zabbix面板創(chuàng)建監(jiān)控項(xiàng)


image.png

填好之后,保存

再為這個(gè)監(jiān)控項(xiàng)創(chuàng)建一個(gè)觸發(fā)器來發(fā)送告警

image.png

點(diǎn)擊添加

image.png

點(diǎn)擊插入,保存退出

檢查一下狀態(tài)


image.png

再創(chuàng)建一個(gè)圖形

image.png
image.png

過一段時(shí)間之后發(fā)現(xiàn)就有數(shù)據(jù)顯示了

image.png

7、測試一下告警有沒有生效,把這個(gè)容器stop

大約10s就觸發(fā)了告警

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容