使用zabbix自带key监控进程与端口

    每个公司都有自己的程序,自己的进程名与端口监听,对于nagios来说,这些都经常需要自己去写插件,但是zabbix不需要,它自己就有监控进程与端口的key

    在使用zabbix的key来监控进程与端口前,我也自己写了插件,但用起来很不爽,因为需要在所有agent上都要进行配置与维护。如果用zabbix自带的功能,只需要在server端维护就可以了。简直就是操十分心与操一分心的区别啊,为什么我就没有早点发现这功能呢。


开始正题......

1、监控端口

监控端口使用如下key:

keynet.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]

zabbix监控进程与端口_zabbix 监控


2、监控进程

如果一个进程没有监听端口,则可以使用如下key

keyproc.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来匹配进程

 

例如监控condproc.num[,root,all,crond]

配置如下:

zabbix监控进程与端口_zabbix 监控_02

 备注:监控进程经过测试一定要在监控值前面加上all,比如例如监控condproc.num[,,all,crond]

3、触发器配置

对于端口的监控,正常则返回值=1;对于进程的监控,正常则返回值>=1如果返回结果为0,则代表该进程宕掉。

例如对443端口的触发器配置如下:

如最后两次的结果都等于0时,则报警。对于进程的触发器配置,是一样的。

zabbix监控进程与端口_zabbix 监控_03

本文出自http://yangrong.blog.51cto.com/6945369/1548670/