教你实现Nagios监控Linux主机及飞信报警(2)

Nagios监控MySQL服务及飞信报警

上面我们进行了相关主机监控的配置,但是我们只能通过查看nagios才能知道我们所监控主机的服务是否在线可用,这和我们在实际应用中的作用还有一定的差距,下面我们就来实现nagios的报警机制,即使我们不查看nagios,只要我们所监控的服务掉线了,nagios就给我们发飞信开提示我们。

我们通过监控本机的mysql服务的在线情况来实现这个实验:

nagios监控mysql服务器:


<!--[if !supportLists]-->1、 <!--[endif]-->建立专用数据库:

我们通过让nagios监控mysql服务中的一个特定的数据库的在线状态来实现对mysql服务在线状态的监控,

创建这个数据库,并对其进行相应的配置
mysql
mysql> create database nagios;
mysql> grant select on nagios.* to nagios@'%' identified by 'nagios';
mysql> flush privileges;


2、查看/var/www/nagios/libexec/check_mysql 这个二进制文件是否存在,如果存在就
继续下面的操作,如果不存在就重新编译安装nagios-plugins,具体方法在上一篇有关nagios的文章中,编译时一定要指明--with-mysql.
  
   对check-mysql这个二进制文件进行测试,看是否能够读取数据库状态信息
   /var/www/nagios/libexec/check_mysql -H 10.1.1.30 -u nagios -d nagios -p 123qweasd
Uptime: 970348  Threads: 1  Questions: 684584  Slow queries: 3  Opens: 672  Flush tables: 1  Open tables: 369  Queries per second avg: 0.705

如果输出上面的信息,则表示能够读取nagios这个数据库的状态

3、在定义监控命令的文件/var/www/nagios/etc/objects/command.cfg里增加插件命令:
   vim  /var/www/nagios/etc/objects/command.cfg
   添加如下内容:
   #check mysql
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u nagios -d nagios -p nagios
}

4、定义服务:

在/var/www/nagios/etc/objects/localhost.cfg 中添加如下内容
define service {
        use                             local-service
        host_name                       localhost
        service_description             msyql
        check_command                   check_mysql  监控这个服务的命令
        notifications_enabled           1                对这个服务开启监控
        }

OK,我们可以到nagios的“servers”中查看是否监控到了这个服务,显示如下:

教你实现Nagios监控Linux主机及飞信报警

既然当服务掉线的时候要使用飞信报警,接下来就对飞信进行配置,来实现飞信报警机制    
    

准备飞信的客户端和库文件:
     fetion  libACE-5.7.2.so  libACE_SSL-5.7.2.so  libcrypto.so.4  libssl.so.4

1、将飞信的客户端加入到/usr/bin/中,并添加执行权限
   mv fetion /usr/bin
   chmod +x /usr/bin/fetion

2、将飞信的库文件加入到系统的库文件中
   mv lib* /usr/lib/

3、测试飞信能否成功发送信息:

fetion --mobile 15003880800 --pwd 123qweQWE(飞信密码) --to 15003880800(电话号码) --msg-tpye=0  --msg-utf8 $HOSTNAME

如果出现一大片的乱码信息,表示飞信连接成功,这一大片的乱码是飞信的验证码图片,这个验证码图片在图形界面下才能显示出来,只有第一次使用的时候才会用到验证码,这个图片的位置在/usr/bin下,我们输入相应的验证码即可。

测试成功之后,就继续进行

4、修改nagios的报警配置文件/var/www/nagios/etc/objects/ templates.cfg,修改报警机制,将email改成fetion
   vim /var/www/nagios/etc/objects/templates.cfg 修改结果如下

define contact{
        name                            generic-contact         ; The name of this
contact template
        service_notification_period     24x7                    ; service notifications can be sent anytime
        host_notification_period        24x7                    ; host notifications can be sent anytime
        service_notification_options    w,u,c,r,f,s             ; send notifications for all service states, flapping events, and scheduled downtime events
        host_notification_options       d,u,r,f,s               ; send notifications for all host states, flapping events, and scheduled downtime events
        service_notification_commands   notify-service-by-fetion; send service notifications via email
        host_notification_commands      notify-service-by-fetion; send host notifications via email
        register                        0                       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!
        }

5、修改命令文件/var/www/nagios/etc/objects/commands.cfg
   vim /var/www/nagios/etc/objects/commands.cfg 添加如下内容
define command{
        command_name notify-service-by-fetion
       command_line      /usr/bin/fetion --mobile 15003880800 --pwd 123qweQWE --to 15003880800 --msg-tpye=0  --msg-utf8 $HOSTNAME
}

6、重启nagios服务
   service nagios restart

到此为止我们我们对mysql服务的飞信报警,已经配置完成了,现在我们可以关闭mysql服务,看你是否收到了我们的nagios发送的飞信。

Nagios是一个强大的状态变化监控报警软件,其功能远远大于此,需要各位自己去探索他其他的功能了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/wyyzjx.html