zabbix3.0.4添加對進程的監控:
方法一:通過自訂命令進行監控
主要思路: 通過 ps -ef|grep sdk-push-1.0.0.jar |grep -v grep|wc -l 這個命令來判斷進程sdk-push是否運行,如果不等於1則表示進程掛了,觸發警示
被監控的zabbix-agent端:
添加監控參數:
# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=sdk_push,ps -ef|grep sdk-push-1.0.0.jar |grep -v grep|wc -l
重啟zabbix-agent使配置生效
service zabbix-agent restart
zabbix-server測試是否ok,當連接埠不是預設的10050時,需要添加-p指定連接埠:
zabbix_get -s 1.1.1.1 -p 20050 -k sdk_push
在zabbix的web頁面添加對應的監控:
添加監控項item
Confuguration --> Hosts --> 找到對應的主機,點開 Items --> Create item
建立對該監控項的觸發器
Confuguration --> Hosts --> 找到對應的主機,點開 Triggers --> Create trigger
當然還可以定義動作action來對應用進行重新啟動,如果應用較為複雜不建議這麼做
最後不要忘記測試,可以將進程停止看是否會警示
方法二:通過zabbix內建的模板對指定進程進行監控
以下是對elasticsearch進程的監控配置,key中的參數說明,第一個參數是進程名字,沒必要填寫,填了反而會使監控不太準確,第二個參數是運行進程的使用者名稱,第三個為進程的狀態 ,包括:all (default), run, sleep, zomb ,第四個參數用來指定進程名中包含的字元,對進程進行過濾。
items --> create item
Name: amount of es
Type: Zabbix agent
Key: proc.num[,yunva,all,elasticsearch]
Application: process monitor
Key: proc.num[,yunva,all,elasticsearch] 中的值yunva要根據實際情況填寫(運行elasticsearch程式的使用者)
注意Type要選擇Type: Zabbix agent 因為Type: Zabbix agent(active) 模式不能執行遠程命令
3.配置好監控項後,添加觸發器,如下觸發器表示最後兩次的值都是0,說明沒有elasticsearch進程在運行,則出發警示。
trggiers --> create trigger
Name: process of es is down
Expression: {hostname:proc.num[,yunva,all,elasticsearch].max(#2)}=0
通過內建模板對連接埠進行監控 添加item: name: yuyin file port 9999
Type: zabbix agent
key : net.tcp.listen[9999]
trigger:
Name: yuyin port 9999 is down
Expression: {Template OS Linux_yuyin_file_aiwaya:net.tcp.listen[9999].max(#2)}=0