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 库补上吧。
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 库补上吧。
[url]http://download.dre.vanderbilt.edu/[/url]
下载 ACE.tar.gz
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
假定我们的目录是/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,如需转载请自行联系原作者