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 庫補上吧。
http://download.dre.vanderbilt.edu/ 下載 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
11 在做ln -s連接,或copy到你的lib裡,推薦copy因為以後你要是刪掉文件夾以不至於庫文件消失
本文出自 “linuxer” 博客,請務必保留此出處http://deidara.blog.51cto.com/400447/97325
本文配套源碼:http://www.bianceng.net/other/201212/833.htm