使用zabbix自帶key監控進程與端口
每個公司都有自己的程序,自己的進程名與端口監聽,對於nagios來說,這些都經常需要自己去寫插件,但是zabbix不需要,它自己就有監控進程與端口的key。
在使用zabbix的key來監控進程與端口前,我也自己寫了插件,但用起來很不爽,因為需要在所有agent上都要進行配置與維護。如果用zabbix自帶的功能,只需要在server端維護就可以了。簡直就是操十分心與操一分心的區別啊,為什么我就沒有早點發現這功能呢。
開始正題......
1、監控端口
監控端口使用如下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]
2、監控進程
如果一個進程沒有監聽端口,則可以使用如下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]
配置如下:
3、觸發器配置
對於端口的監控,正常則返回值=1;對於進程的監控,正常則返回值>=1;如果返回結果為0,則代表該進程宕掉。
例如對443端口的觸發器配置如下:
如最后兩次的結果都等於0時,則報警。對於進程的觸發器配置,是一樣的。
zabbix對監控進程與端口存活狀態實在太方便了。最近我在自學zabbix,慢慢的探索更多好用的功能,歡迎留言交流。