zabbix搭建好後,除了調用預設的模闆,還要監控其它常用的程序,有redis,rsync,nginx,gunicorn,mysql等等都要進行監控。
自定義監控的配置過程如下:
1、編寫程序監控腳本,擷取監控項的具體值
2、在zabbix_agentd.conf檔案中定義UserParameter
3、在界面配置item,通過鍵值來控制傳參
4、檢視監控資料情況
5、配置觸發器,用來報警
6、宕服務測試
對于zabbix的安裝與郵件報警設定,可參考兩篇文章。
程序監控腳本構思:
根據名稱或端口号來判定該程式是否存在。
如果傳參包含端口号,則根據端口号判斷程序,有傳回1,沒有傳回0。
如果不包含端口号,根據程序名判斷程序,有傳回1,沒有傳回0。
注:所編寫的腳本隻需要輸出具體值即可,無須像nagios那樣傳回退出值,描述資訊等。
在zabbix agent端修改zabbix_agentd.conf檔案:
使用者參數=鍵值[*],指令
echo 'UserParameter =check_process[*],/usr/bin/python /python/process_port.py $1 $2 ' >>/usr/local/zabbix/etc/zabbix_agentd.conf #添加使用者參數
/etc/init.d/zabbix_agentdrestart #重新開機zabbixagent服務
agent端本機測試:
在中括号中内容為傳參内容,如果要傳參多個,用逗号隔開,第一個則是$1,第二個則是$2。
[root@yang python]#/usr/local/zabbix/sbin/zabbix_agentd -t check_process[hello]
check_process[hello] [t|0]
#傳回結果為0,代表hello程序不存在。
[root@yang python]#/usr/local/zabbix/sbin/zabbix_agentd -t check_process[mysql]
check_process[mysql] [t|1]
#傳回結果為1,代表mysql程序存在。
[root@yang python]#/usr/local/zabbix/sbin/zabbix_agentd -t check_process[mysql,3306]
check_process[mysql,3306] [t|1]
測試可用,接下來在主界面配置監控
【組态】à【主機】à【項目】à【建立監控項】
此處鍵值的用法和zabbix_agentd.conf中定義的UserParameter一緻。

【監控中】à【最新資料】 最新資料為1,監控正常。
【組态】à【主機】à【觸發器】à【建立觸發器】
在agent client端,宕掉mysql。郵箱1分鐘後收到報警。
成功收到報警郵件,自定義監控及報警配置完成。