nagios强大的报警功能是其被很多企业选用的一个重要原因,比较常见的报警方式有E-mailsms和自由脚本,本文主要介绍通过中国特色的飞信实现nagios报警的配置方法。(注:本文是前面两篇文章(nagios安装与基本配置)的后继文章)

 

一、所用软件

         要实现飞信报警就要用支持Linux版本的飞信机器人,现在最新版本为20101205002,可以在http://bbs.it-adv.net/viewthread.php?tid=1081下载,但这只是飞信主程序,其安装包还是2009版的,可以在http://bbs.it-adv.net/viewthread.php?tid=916&extra=page%3D1下载,安装完2009版之后用上面2010版的飞信主程序fetion覆盖2009版的就可以了。在安装飞信机器人之前还要安装libACE程序,因为飞信机器人要运行在libACE库文件之上,下载地址为http://www.it-adv.net/fetion/downng/library_linux.tar.gz

 

二、飞信机器人安装与配置

tar -zxvf library_linux.tar.gz

tar -zxvf fetion20091117-linux.tar.gz

libACE-5.6.8.solibACE_SSL-5.6.8.solibcrypto.so.0.9.8libssl.so.0.9.8四个文件移动到飞信主目录fx

 

mkdir /usr/local/fx

将上面的fx文件夹移动到/usr/local/目录下

chmod -R 755 /usr/local/fx

chown -R nagios:nagios /usr/local/fx

 

vi /etc/ld.so.conf

在最后加上一行:/usr/local/fx保存退出

ldconfig

 

现在就可以发一条飞信试验下了,例如执行下面的语句:

/usr/local/fx/fetion --mobile=1300138000 --pwd=123456 --to=13800138000 --msg-utf8=testing

很快13800138000就会收到内容为“testing”的飞信消息。

 

三、修改nagios配置文件实现飞信报警

1.contacts.cfg文件中加入红色部分内容:

define contact{

        contact_name                    nagiosadmin

        alias                           Nagios Admin

        service_notification_period     24x7

        host_notification_period        24x7

        service_notification_options    w,u,c,r

        host_notification_options       d,u,r

        service_notification_commands   notify-by-email,service-notify-by-fx

        host_notification_commands      host-notify-by-email,host-notify-by-fx

       email                           abc@mail.com

       pager                           13800138000

        }

 

2.commands.cfg文件中加入如下内容:

# 'notify-host-by-fx' command definition

define command {

             command_name            host-notify-by-fx ;             command_line            /usr/local/fx/fetion --mobile=13800138000 --pwd=123456 --to=$CONTACTPAGER$ --msg-utf8="Host $HOSTSTATE$ alert for $HOSTNAME$! on '$LONGDATETIME$'" $CONTACTPAGER$             }

 

# 'notify-service-by-fx' command definition

define command {

             command_name         service-notify-by-fx             command_line         /usr/local/fx/fetion --mobile=13800138000 --pwd=123456 --to=$CONTACTPAGER$ --msg-utf8="$HOSTADDRESS$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ on $LONGDATETIME$" $CONTACTPAGER$

             }

 

好了大功告成,重启nagios服务之后就可以实现飞信报警了。