每個公司都有自己的程式,自己的程序名與端口監聽,對于nagios來說,這些都經常需要自己去寫插件,但是zabbix不需要,它自己就有監控程序與端口的key。
在使用zabbix的key來監控程序與端口前,我也自己寫了插件,但用起來很不爽,因為需要在所有agent上都要進行配置與維護。如果用zabbix自帶的功能,隻需要在server端維護就可以了。簡直就是操十分心與操一分心的差別啊,為什麼我就沒有早點發現這功能呢。
開始正題......
監控端口使用如下key:
key:net.tcp.listen[port]
Checks if this port is in LISTEN state. 0 - it is not, 1 - it is inLISTEN state.
翻譯:監聽端口狀态,傳回結果為1,則運作;傳回結果為0,則沒有運作。
例如監控443端口,net.tcp.listen[443]
<a href="http://s3.51cto.com/wyfs02/M00/48/6B/wKiom1QH7NvhGfSIAAF7wgU_Y7M306.jpg" target="_blank"></a>
如果一個程序沒有監聽端口,則可以使用如下key。
key:proc.num[<name>,<user>,<state>,<cmdline>]
Number of processes. <name> and <user> same as inproc.mem item. <state> all (default), run, sleep, zomb. <cmdline>filter by command line (supports regex).
name:是程序名
user:運作該程序的使用者
state:程序狀态包括run,sleep,zomb
cmdline:該項内容是模糊比對,即用ps aux看到的最後一列中包含該字段則比對上。
注:name比對可能不是很準,一般根據cmdline來比對程序
例如監控cond,proc.num[,root,all,crond]
配置如下:
<a href="http://s3.51cto.com/wyfs02/M01/48/6C/wKioL1QH7ODyJfXdAAIEsYjNt-g353.jpg" target="_blank"></a>
對于端口的監控,正常則傳回值=1;對于程序的監控,正常則傳回值>=1;如果傳回結果為0,則代表該程序宕掉。
例如對443端口的觸發器配置如下:
如最後兩次的結果都等于0時,則報警。對于程序的觸發器配置,是一樣的。
<a href="http://s3.51cto.com/wyfs02/M00/48/6B/wKiom1QH7NvQ9oMtAADok345-Jo880.jpg" target="_blank"></a>
zabbix對監控程序與端口存活狀态實在太友善了。最近我在自學zabbix,慢慢的探索更多好用的功能,歡迎留言交流。
本文轉自飛奔的小GUI部落格51CTO部落格,原文連結http://blog.51cto.com/9237101/1912556如需轉載請自行聯系原作者
ziwenzhou