Nagios默认情况下,在 unknow、critical、warning、recovery都会发短信和邮件。需要注意的 gnokii支持金笛 M1203A M1206B M1306B M100各款 GSMmodem,不支持 CDMAmodem,如果使用 CDMA Modem,需要购买金笛短信服务中间件。
一、金笛短信猫安装。
接金笛短信猫到串口,接串口 2。先安装光盘里的 minicom的 rpm包。运行 minicom-s,弹出个图形界面。选择: Serial port setup后出现下级界面。按 A,修改端口为 ttyS1(如果是串口 1则为:ttyS0),按 E,修改端口速率 9600。选择 exit,初始化金笛短信猫,进入 at指令界面。输入 at,弹出 OK,表示金笛短信猫工作正常。
at+cmgs=13912345678(输入后命令行多出“>”前缀) >Test by user1……
输入完后按 ctrl+z退出,界面显示 OK,手机上应该能收到短信。
二、使用 gnokii工具发短信。
从
http://www.gnokii.org下载
rpm包,这个网站没有源码包。直接 rpm -ivhgnokii-0.6.28cvs-20081209.i386.rpm就安装完了。
vi /etc/gnokiirc [global] port = /dev/ttyS1 model = AT##同时需要注释掉 mode = 6510 serial_baudrate = 9600 use_locking = no #### use_locking
执行 gnokii –identify
第一遍装忘了注释 mode=6510,结果没成功,以为 RPM包有问题,卸载。从别的网站弄了个源码,gnokii-0.6.12。注意:要使用 gmake&gmakeinstall进行编译与安装。
tar xvf gnokii-0.6.12.tar.bz2 cd gnokii-0.6.12 ./configure –prefix=/usr/local/gnokii/ –without-x –disable-xdebug
跟 x有关的都不要。
gmake gmake install
把源码包下的 gonkiirc复制到/etc目录下,修改内容跟 RPM包的一样。注意:rpm包安装后 gnokii的可执行文件在/usr/bin目录下,可以在任何路径下执行gnokii。而源码安装后的可执行文件在/usr/local/gnokii/目录下,用时必须指定绝对路径。
echo -n “test by user 16:10″ |/usr/local/gnokii/bin/gnokii –sendsms 133xxxxxx
注意修改 gnokii的路径。用源码包和 rpm包分别安装后,都成功收到短信。rpm包的版本高,执行速度也快一点。
三、把 gnokii功能绑定到 nagios
vi /usr/local/nagios/etc/objects/commands.cfg,添加如下代码
define command{
command_name host-by-sms
command_line /bin/echo -n “$NOTIFICATIONTYPE$ $HOSTNAME$/$HOSTADDRESS$ : Host is $HOSTSTATE$ $SHORTDATETIME” | /usr/bin/gnokii –sendsms $CONTACTPAGER$ 2>&1 > /dev/null
} define command{
command_name service-by-sms
command_line /bin/echo -n “$NOTIFICATIONTYPE$ $HOSTNAME$/$HOSTADDRESS$ : Service is $SERVICEDESC$ $SERVICESTATE$ $SHORTDATETIME” | /usr/bin/gnokii –sendsms $CONTACTPAGER$ 2>&1 > /dev/null
}
或者直接填写手机号码:
define command{
command_name host-by-sms ;
command_line /bin/echo -n “$NOTIFICATIONTYPE$ $HOSTNAME$/$HOSTADDRESS$ : Host is $HOSTSTATE$ ” | /usr/bin/gnokii –sendsms 13636421*** 2>&1 > /dev/null
} define command{
command_name service-by-sms ;
command_line /bin/echo -n “$NOTIFICATIONTYPE$ $HOSTNAME$/$HOSTADDRESS$ : Service is $SERVICEDESC$ $SERVICESTATE$ ” | /usr/bin/gnokii –sendsms 13636421*** 2>&1 > /dev/null
}注意里面的 gnokii的路径,要很据安装的实际路径,如果用 rpm包装的 gnokii,配置文件里可以不指定绝对路径。如果无法下发短信,可以在在../nagios.log里看到是权限的问题。用 ll命令看一下,都是 root有权限/dev/ttyS0 root uucp /usr/bin/gnokii root root
nagios服务和依赖的工具都以 nagios帐户权限执行,必须对串口可读写,必须可执行gnokii。
修改。 chown –R nagios:nagios /usr/bin/gnokii chown –R nagios:nagios /dev/ttyS1
切换到 nagios帐户下执行
echo -n “test by user 16:10″ |/usr/local/gnokii/bin/gnokii –sendsms 133xxxxxx
收到短信,成功!