天天看點

nagios + fetion短信機器人報警配置

nagios的安裝配置見他人寫的文章

飛信機器人官方首頁:http://www.it-adv.net/index.php?action=index

下載下傳頁面及配置說明:

需要回複才可以看到下載下傳檔案

Linux下隻是編譯好的單個檔案,隻有幾百KB,大家不要對這個檔案有所疑問

我當時也是帶着懷疑的态度去下載下傳的

http://bbs.it-adv.net/viewthread.php?tid=1081 

因為我的nagios是配置Linux (rhel 5.4)下的,我下載下傳的fetion依賴包是linux

上面寫的依賴包是在rhel 4下編譯的,我在5.4下測試通過

(在Redhat4 下編譯,其它LINUX發行版的朋友請測試)

linux版本:http://www.it-adv.net/fetion/linuxso_20101113.rar 

注意:linux使用者,請不要把支援庫中的 lib* 複制到 /usr/lib 下,因為發行版本不同,

可能會覆寫您機器中的核心庫,導緻嚴重系統問題。您可以把庫解壓到主程式的相同目錄,

然後以 LD_LIBRARY_PATH=. ./fetion 來運作,兩點間有空格

然後把下載下傳好的軟體上傳到nagios server 伺服器上

1. 權限設定

]# chmod 775 fetion

2. 所屬使用者設定

因為我的nagios 程式啟動使用者是nagios,而我的fetion檔案夾所屬的使用者&組是root

我要修改為nagios,不然程式報警時,調用fetion時會報錯,好像是時間啥錯誤

]# chown -R nagios:nagios fetion

目錄清單:

3. 測試

1)進入fetion檔案夾

]# cd /opt/fetion

]# D_LIBRARY_PATH=. ./fetion --mobile=飛信号&手機号 --pwd=飛信密碼(不是卡号密碼) --to=發送的人(可以用自己的手機測試) --msg-utf8=測試 --debug

最後輸入看到的圖形驗證碼,我是把圖檔ftp到本機打開的

說明:

D_LIBRARY_PATH=.  調用飛信依賴包,前提是要進入fetion所在目錄

 ./fetion 調用fetion腳本

--debug  如果第一次執行,不加上這個參數,腳本會執行失敗,沒有任何提示,短信也發送失敗,

因為現在的fetion版本,會彈出彈出圖形驗證碼;

但是不加debug參數,圖形驗證碼出不來。據說是官方飛信伺服器需要的,不是程式的行為。

在切換到nagios帳号下,測試飛信發送是否成功

自己寫個小腳本,注釋就不寫了,腳本名稱sms.sh

#!/bin/bash

usr=137********

pwd=*******

receive_number=*********

cd /opt/fetion && \

D_LIBRARY_PATH=. ./fetion --mobile=${usr} --pwd=${pwd} --to=${receive_number} --msg-utf8="$1" --debug

nagios 配置檔案commands.cfg中添加如下

###################################################################   

# notify-host-by-sendmsg/notify-service-by-sendmsg

###################################################################  

define command {  

     command_name notify-host-by-fetion

     command_line /opt/fetion/sms.sh "Host $HOSTSTATE$ alert for $HOSTNAME$($HOSTADDRESS$) on $TIME$."  

}  

define command { 

     command_name notify-service-by-fetion  

#     command_line /opt/fetion/sms.sh ""$TIME$":$SERVICEDESC$($HOSTADDRESS$) is $SERVICESTATE$."  

     command_line /opt/fetion/sms.sh "$LONGDATETIME$:$HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$.$SERVICEOUTPUT$" 

nagios 配置檔案contacts.cfg 中添加如下

[root@**** objects]# more contacts.cfg 

define contact{

        contact_name                    sa

        alias                           system administrator

     service_notification_period     24x7

     host_notification_period        24x7

     service_notification_options    w,u,c,r

     host_notification_options       d,u,r

     service_notification_commands   notify-service-by-email,notify-service-by-fetion

     host_notification_commands      notify-host-by-email,notify-host-by-fetion

至此,整個nagios + fetion 配置就完成了,我們可以手動停止監控的程式,等等看看fetion是否報警