今天被一哥们问zabbix能否监控web服务器的页面,只能告诉他zabbix我没搭建过,于是尝试了一下nagios监控web服务器首页,比如出现error就告警,这台机器我已经监控过,只是这个监控页面是这次新增的,效果还是不错的哈!
实验环境:
监控机 192.168.5.58
被监控机 192.168.5.55
1、首先你需要在你被监控机上增加一个插件脚本,脚本很简单,就定义了两种状态,一个正常,一个严重。
touch /usr/local/nagios/libexec/check_page
#!/bin/bash
OK=0
CRITICAL=2
ERROR=$(curl -s | grep -i 'error' | wc -l)
if ((ERROR>0));then
echo "error!"
exit $CRITICAL
else
echo "ok!"
exit $OK
fi
2、给这个插件脚本加上执行权限
chmod a+x /usr/local/nagios/libexec/check_page
3、在你的被监控机上的nrpe.cfg文件增加如下内容:
vi /usr/local/nagios/etc/nrpe.cfg
command[check_page]=/usr/local/nagios/libexec/check_page
保存重启nrpe服务
killall nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
检查脚本插件是否正常的方法是到监控机执行如下命令:
/usr/local/nagios/libexec/check_nrpe -H 192.168.5.55 -c check_page
4、修改你监控机的service.cfg文件,增加如下内容:
define service{
host_name 192.168.5.55
service_description check-page
check_command check_nrpe!check_page
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups sagroup
}
5、重启nagios
/etc/init.d/nagios restart
6、监控机上开启自带的apache,端口我这里改了为9999,因为80端口被使用,写一个测试页到/var/www/html目录下。
echo "" > /var/www/html/index.html
7、测试:
这里我把测试页里面加了error字段,做一个反向测试,如果开启了apache就应该能抓取error字段就应该告警,如果关闭apache则OK!
我apache没开启的状态
启动apache的状态应该告警了,截图如下:
这样基本就达到预期的效果了!
阅读(2818) | 评论(2) | 转发(1) |