前提:已经配置好nagios监控端端(202.207.178.7)和被监控端(202.207.178.6),并且可以监控被监控端的http服务!

nagios安装配置详见本人博客http://10927734.blog.51cto.com/10917734/1884943

一、修改监控端的配置文件,使其更新时间缩短

# vim /etc/nagios/nagios.cfg

command_check_interval=10s

# vim /etc/nagios/objects/templates.cfg

normal_check_interval           1

二、Nagios监控端HTTP关键词(被监控端网页内容为It Works!)

   在真实的线上环境中,如果要监控HTTP、web、tomcat某个URL关键词,监控网站关键词是否被篡改,如果来实现呢?

这里可以使用默认监控命令check_http命令+相关的参数来实现,如下:

1、在command.cfg添加如下关键词监控命令:check_http_word,

      参数解析:-I指定IP或者主机名,-u指定URL,-p指定端口,-s指定关键词。

# vim /etc/nagios/objects/commands.cfg

define command{

        command_name    check_http_word

        command_line    $USER1$/check_http -I $HOSTADDRESS$ -u $$ARG1$ -p $$ARG2$ -s

        $ARG3$

        }

2、检查有无错误

# /usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg

3、可以在服务器端命令行执行如下命令来做测试,例如监控页面不存在ATM关键词,但80端口        web服务可以访问,依然会发送报警。

# /usr/local/nagios/libexec/check_http -I 202.207.178.6 -u /index.html -p 80 -s "ATM"

HTTP CRITICAL: HTTP/1.1 200 OK - string 'ATM' not found on 'http://202.207.178.6:80/index.html' - 263 bytes in 0.005 second response time |time=0.004836s;;;0.000000 size=263B;;;0

# /usr/local/nagios/libexec/check_http -I 202.207.178.6 -u /index.html -p 80 -s "It"

HTTP OK: HTTP/1.1 200 OK - 263 bytes in 0.004 second response time |time=0.003956s;;;0.000000 size=263B;;;0

3、在服务器端监控主机的配置文件里面引用

# vim /etc/nagios/objects/202.207.178.6.cfg

define service{

use                        local-service

host_name                    202.207.178.6

service_description             HTTPD-EORD-WORKS

check_command                 check_http_word!/index.html!80!It

}

三、Nagios邮件报警

使用nagios报警,我们可以使用163邮箱,机制是nagios给163邮箱发送信息,然后信息会自动发到我们绑定的手机。提前在163上绑定好手机即可。除此之外还可以使用短信猫(收费)设备来发送报警。

   默认command.cfg里面已经配置好了邮件报警设置,可以使用默认的配置,使用系统默认的mail发送邮件;还可以自己定义发送的内容格式及发送的邮件smtp服务器端软件。

   这里使用默认的配置文件,要能收到短信报警,除了在163邮箱界面绑定163邮箱之外,还需要在nagios服务器端配置文件修改邮件收件人如下:

1、测试是否可以正常发邮件

# echo "test ok"|mail -s "title" 18434367904@163.com

2、修改邮箱地址,是自己的邮箱可以收到邮件

# vim /etc/nagios/objects/contacts.cfg

define contact{

 contact_name                    nagiosadmin

 use                          generic-contact    

 alias                         Nagios Admin          

 email                         18434367904@163.com

}

3、重启nagios服务,即可开始测试!