我在http://exchange.nagios.org上看到,没有插件检查sendmail,xinetd,automount,ypserv,ypbind,mailscanner,mcafee,clamav,samba服务器和openvpn是否正在运行。
当然所有这些都应该是稳定的scheme,但是它们是至关重要的,所以我想检查它们是否在运行。
题
是否有一个通用的插件来检查特定的进程?
我使用标准的NAGIOS check_procs插件,带有-C标志,这里显示的是通过NRPE从nrpe.cfg调用的:
command[check_spamd]=/usr/lib/nagios/plugins/check_procs -c 1: -w 3: -C spamd
如果它没有find至less三个具有可执行文件名称(不包括path)的spamd进程,将会发出警告,如果没有find至less一个,将会发出CRIT。
我正在使用这个脚本来检查各种正在运行的进程。 你可以编辑这两行:
PROCLIST_RED="sshd" PROCLIST_YELLOW="syslogd"
改变红色(关键)stream程和黄色(警告)stream程。
而且,这个脚本检查打开的端口(监听状态)。 您可以编辑该行:
PORTLIST="22"
我甚至通过定义一个新的variablesUDP_PORTLIST来检查UDP套接字来修改脚本。
“check_procs”插件是你想要的,它是可用的
http://nagiosplugins.org/man/check_procs
任何应该在TCP端口上监听的服务都可以用check_tcp来检查。 通过在外部进行连接检查,除了检查进程是否正在运行并侦听正确的端口之外,还要检查防火墙是否允许通过该端口进行连接。
check_tcp检查不会告诉你是否有人启动了Postfix而不是sendmail,或者configuration了nginx来监听80端口而不是Apache,但是check_procs (其他人已经提到过)会这样做。
一般来说,最好是实际连接到networking服务,看看它是否如预期的那样响应,而不是仅仅使用check_tcp或者检查服务是否正在运行。
对于Samba,ClamAV,Sendmail等,有特定于服务的插件可以检查这些插件(即使通过NRPE在“localhost”上进行检查),这比只检查端口是否打开更为准确。 显然,检查TCP端口和/或使用check_procs总比没有好 。