nagios 飞信通知

OS:ubuntu server 7.10
Nagios:Nagios 3.0.3
软件:
sms飞信客户端
    前几天有个朋友问我,nagios是如何短信通知,是不是需要买一个商业的url地址,看到还有人问我这个问题,我就把我利用飞信通知写下来吧,支持开源,呵呵,本来昨天就想发布的,可是写了一半就去忙别的事情了,等回来继续写完的时候点提交,郁闷,session过期了,写的东西白写了。sms我最喜欢的简洁客户端我已经添加附件了这个版本不好找了。
     安装步骤:
     apt-get install libace-dev libace-ssl-dev libc6
     tar zxvf fetion_linux_20080402.tar.gz
     ldd sms (显示需要什么库文件)
     root@nagios:~# ldd sms
        linux-gate.so.1 =>  (0xffffe000)
        libACE.so.5.4.7 => /usr/lib/libACE.so.5.4.7 (0xb7daa000)
        libACE_SSL.so.5.4.7 => /usr/lib/libACE_SSL.so.5.4.7 (0xb7d97000)
        libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb7d55000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7c62000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7c3d000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7c32000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7ae8000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7ae4000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7acb000)
        librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7ac2000)
        libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb797f000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb796a000)
        /lib/ld-linux.so.2 (0xb7f36000)
没有not found 说明所需要的库文件我都安装了,我的是ubuntu apt源里有libACE,如果你的是rad hat 或者centos,安装有点麻烦,你要去下载ACE源码包,单编译所需要的ACE,不必全部编译。如果有不会的,我在单写篇blog。
     测试发短信:
     ./sms -f 13611031*** -p**** -t 13611031*** -m test
     [Wed Jul 30 05:18:06 2008] :) Send msg to 13611031*** ok!
发送OK,好了我们来做一个脚本吧。
     cd /usr/local/nagios/libexec
     vim sms
     sms -f 13611031*** -p ****** -t "$1" -m "$2" ($1为接收人手机号,$2为发送消息。脚本建立完毕后,去command.cfg 添加如下:
    define command {
       command_name      host-notify-by-sms
       command_line $USER1$/sms 13611031*** "Host $HOSTSTATE$ alert for $HOSTNAME$! on '$DATETIME$' " $CONTACTPAGER$
       }

#service notify by sms
define command {
       command_name     service-notify-by-sms
       command_line  $USER1$/sms 13611031*** "'$HOSTADDRESS$' $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" $CONTACTPAGER$
       }
保存退出,修改templates.cfg
service-notify-by-mail 和 host-notify-by-mail 为
service-notify-by-sms  和 host-notify-by-sms
保存推出,最后从启 nagios ,停止一个监控服务看看吧。

我还是把 rad hat 编译安装 libACE 库补上吧。

2 tar -xcvf ./ACE-5.4.tar.gz后生成一个目录ACE_wrappers,
假定我们的目录是/root/ace_study/ACE_wrappers
为保险起见执行chmod a=rwx -R ACE_wrappers

3 在etc/profile文件中这样写

# Path manipulation
if [ `id -u` = 0 ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
#下面这行是要加的
pathmunge /root/ace_study/ACE_wrappers
fi

#下面这两行是要加上的
ACE_ROOT=/root/ace_study/ACE_wrappers;
export ACE_ROOT

退出,注销CentOS 5;

4 在$ACE_ROOT(
/root/ace_study/ACE_wrappers)目录中的ace目录下生成(创建)文件config.h,在这个文件中要包含一句话

#include "ace/config-linux.h"

5 在$ACE_ROOT目录中的include/makeinclude目录下生成(创建)文件platform_macros.GNU

在这个文件中要包含一句话
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU

6 进入$ACE_ROOT/ace目录

7 执行 make debug=0 
       make ssl=1

8 执行后会生成libACE.so,这就是我们生成的动态库

9 以后使用的时候别忘了头文件的包含目录和so所在的库目录噢 

10 在lib下,可以看到生成的库:libACE.so libACE.so.5.5.0 libACE_ssl.so
11 在做ln -s连接,或copy到你的lib里,推荐copy因为以后你要是删掉文件夹以不至于库文件消失



本文转自Deidara 51CTO博客,原文链接:http://blog.51cto.com/deidara/97325,如需转载请自行联系原作者

 
上一篇:javascript当中cloneNode的用法


下一篇:个人博客