nagios监控http(借助脚本)


修改后的脚本如下(需添加指示灯的状态)

# vi httpd.sh

#!/bin/bash

Port=`netstat -ntpl | grep httpd | awk -F[:" "]+ '{print $4}'`
if [ $Port == "80" ];then
echo "OK - http is running"
exit 0
else
echo "CRITICAL - http is down"
/sbin/service httpd restart
exit 2
fi

:wq

注:0 指的是状态灯绿灯,2指的是红灯,黄灯不用 并且宕了之后再次check时就能自动重启

# cp httpd.sh /usr/local/nagios/libexec

# chmod +x /usr/local/nagios/libexec/httpd.sh

# mount /dev/cdrom /media/cdrom

# rpm -ivh sudo-1.6.9pl7-3.el5.i386.rpm

# visudo

#Defaults requiretty (注释掉)

nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/httpd.sh (多个脚本的话设置多行)

:wq

# su - nagios -c 'sudo /usr/local/nagios/libexec/httpd.sh' (看看执行是否成功)

# vi /usr/local/nagios/etc/nrpe.cfg

command[check_http]=/usr/bin/sudo /usr/local/nagios/libexec/httpd.sh

:wq

# killall nrpe

# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

# vi /usr/local/nagios/etc/objects/ming.cfg

define service{
use generic-service
host_name ming
service_description http
check_command check_nrpe!check_http
}

:wq


# service nagios restart