十三.把gnokii功能绑定到nagios
vi /usr/local/nagios/etc/objects/commands.cfg,添加如下代码
define command{
command_name host-by-sms ; ;这就是用到前面编辑congtacts.cfg里的那个短信告警名
command_line /bin/echo -n "$NOTIFICATIONTYPE$ $HOSTNAME$/$HOSTADDRESS$ : host is $HOSTSTATE$ $SHORTDATETIME[ DISCUZ_CODE_22 ]quot; | /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[ DISCUZ_CODE_22 ]quot; | /usr/bin/gnokii –sendsms $CONTACTPAGER$ 2>&1 > /dev/null
}
这个最初是从一个不知道从哪翻出来的网站copy过来的,结果那位大哥最后一行少了个“}”,害得我找了20分钟。而且里面的gnokii的路径不对,带的参数也不对......我又琢磨了半小时,最后从../nagios/etc/var/nagios.log里看出来的。copy害死人啊,不过不copy我就撞墙了,不管怎么说还是得感谢人家。因为我最后还是用rpm包装的gnokii,所以懒一把,配置文件里没指定绝对路径。
折腾完这一小时,发现还是无法下发短信,后来还是在../nagios.log里看到是权限的问题。用ll命令看一下,都是root有权限
/dev/ttyS1 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
收到短信,成功!
service nagios restart
登录后关闭CMD.EXE,给user1和user2发邮件+短信,关掉firefox给user3发邮件+短信。Congratulation!!!
邮件内容如下:
***** Nagios *****
Notification Type: PROBLEM
Service: C:\ Drive Space
Host: user's notebook
Address: 192.168.0.11
State: WARNING
Date/Time: Thu Dec 11 18:15:21 CST 2008
Additional Info:
c:\ - total: 7.81 Gb - used: 6.66 Gb (85%) - free 1.15 Gb (15%)
短信的内容也差不多。nagios3.0.3默认情况下,在unknow、critical、warning、recovery都会发短信和邮件。
再贴张图。中间那个橙色的unkonwn状态的目标是因为我监控的一个进程名中间有空格!!!谁知道怎么写?帮忙解答一下。
check_command check_nt!PROCSTATE!-d SHOWALL -l ABCD PQRS.EXE -s 123456
还有个问题,nagios的页面多久自动刷新一次?是有状态更新后再刷么?
此外,我点左面的那个3-D Status Map时老提示我下载statuswrl.cgi,不知道是不是因为apache不是用源码包装的原因。
还剩两项工作:
网上还有用飞信的说明,结果我注册了一下午飞信愣是没注册上,老是系统繁忙.....明天看看情况,争取把飞信搞定,省点短信费吧!
第二个是监控Linux服务器,我还没腾出空来去看,继续努力!!!
再废话一句:../nagios/bin/nagios -v ../nagios/etc/nagios.cfg这个命令真管用,出错看得最明白的一个了!!好使。