歡迎您光臨本站 註冊首頁

配置 Nagios 使用 FetionRobot 簡訊報警

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

配置 Nagios 使用 FetionRobot 簡訊報警

配置 Nagios 使用 FetionRobot 簡訊報警




一、概述

  Nagios 是 Linux 環境下使用率最高的監控軟體,它善於監控服務,容易進行二次定製。
  Feition Robot 是一款基於移動飛信服務的類 Unix 實現。通過 FetionRobot 可以很方便的在 shell 下發送免費簡訊。
  本文介紹介紹了如何通過 FetionRobot 使得 Nagios 可以免費發送報警簡訊。

  平台:CentOS 5.2 x86_64

二、Fetion Robot

  寫此文時,使用的 fetion 軟體版本為:fetion20080910047-lin64.tar.gz md5sum:9265d8f57556672220ee6a22c77c65af。使用的支持庫 library64_linux.tar.gz md5sum 為:2e858e9184c4761bb0d1f9cea14dc49e 。

  安裝 Fetion Robot

  下載 Fetion Robot 以及依賴庫。http://www.it-adv.net/fetion/download/fetion20080910047-lin64.tar.gz
http://www.it-adv.net/fetion/library64_linux.tar.gz解壓縮 library64_linux.tar.gz 內庫文件至/usr/lib64。完成後記得執行一下ldconfig刷新一下。

  解壓縮 fetion20080910047-lin64.tar.gz 得到二進位文件。直接運行 fetion 即可:


# ./fetion -h
************************ IMPORTANT STATEMENT ************************
**                                                                 **
**   PLEASE DON'T USE THIS SOFTWARE TO SEND JUNK SHORT MESSAGES.   **
**   OTHERWISE PLEASE BEAR YOUR OWN CONSEQUENCES.                  **
**                                                                 **
**                                Version:      **
*********************************************************************
This program is the console version of China Fetion!
It's free for personal user.
Fetion official website: http://www.fetion.com.cn/
This project website: http://www.it-adv.net/

AUTHOR:KelvinH MSN/EMAIL:[email protected]

Usage:
    fetion -h
        -h: help
    fetion -u mobile -p pwd [-b batchfile] [-EN] [-d]
    fetion -c -id   [-EN] [-d]
        -u: Fetion user account(only supports mobile phone No.)
        -p: Account password
        -b: Batch file name
        -d: Debug on and write logs to -debug.log
         -c: config file name, refer to fetion.conf
         -i: id,  refer to fetion.conf
        -EN: English
#

  關於 fetionrobot 命令行更具體的使用,請參考此文。這裡不再重複。

  可能出現的問題

  在 64 位系統下會出現 libstdc++ 包版本過低的問題。具體表現為:# fetion -h
fetion: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib64/libACE.so.5.4.7)出現此問題,是由於 gcc 的版本太低,同時導致 libstdc++ 庫版本過低。CentOS 5.2 使用 libstdc++-4.1.2-42.el5 版本。而通過 rpm 查詢 可以看到,此版本最高只提供了 GLIBCXX_3.4.8 。

  如果你有足夠的時間,可以自己編譯高版本的 gcc。並且在運行 fetion 時指定 lib 地址。
  另外你還可以找一個 Fedora Core 9 中的 libstdc++ 。它包含了所需要的庫。# rpm -Uvh --force libstdc++-4.3.0-8.x86_64.rpm
warning: libstdc++-4.3.0-8.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
Preparing...                ###########################################
    1:libstdc++              ########################################### 三、perl 腳本準備  

  此腳本從 論壇上這篇文章 修改而來。稍微做了一點加工。

  腳本的作用是將 nagios 中的報警信息以及要通知的手機號碼格式化的輸入到其他文本中。這裡的「格式化」是符合 fetion 腳本模式的格式化。在輸出完成後,調用 fetion 去依照文本發簡訊。

  我修改的內容是讓腳本支持一次通知多個手機。#!/usr/bin/perl
use strict;
use Fcntl qw(:flock);
open SMS, "]/tmp/sms.txt" or die "NO OK";
flock(SMS,LOCK_EX);
my @mobile = split /\s+/, $ARGV;
foreach (@mobile) {
print SMS "sms $_ $ARGV\n";
}
print SMS  "quit\n";
system "/usr/bin/fetion -u 136xxxxxx -p xxxxxxxx  -b /tmp/sms.txt";
#unlink "/home/sms/sms.txt";
flock(SMS,LOCK_UN);
close SMS;#unlink "/home/sms/sms.txt";推薦將此腳本放在nagios/libexec/下。
記得在 /tmp 下創建 sms.txt 文件,777。

四、Nagios 配置

  nagios 配置2個點:

  1.定義簡訊提醒方式。調用前面寫的 perl 腳本。同時將報警信息和手機號碼傳入腳本。
  2.定義管理員接受報警方式。

直接貼配置文件了:

定義簡訊提醒調用腳本
      define command {
      command_name host-notify-by-sms
      command_line /usr/local/nagios/libexec/sms "IP: $HOSTADDRESS$($HOSTNAME$) is $HOSTSTATE$\n$SHORTDATETIME$" "$CONTACTPAGER$"
      }

      define command {
      command_name service-notify-by-sms
      command_line /usr/local/nagios/libexec/sms "'$HOSTADDRESS定義管理員接受報警方式
      define contact{
      contact_name nagiosadmin ; Short name of user
      use generic-contact ; Inherit default values from generic-contact template (defined above)
      alias Nagios Admin ; Full name of user
      service_notification_commands notify-service-by-email,service-notify-by-sms
      host_notification_commands notify-host-by-email,host-notify-by-sms
      email youremailaddress;
      pager 136xxxxxxx 136xxxxxx
      } $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" "$CONTACTPAGER$"
      }定義管理員接受報警方式[        DISCUZ_CODE_9        ]
《解決方案》

謝謝分享:em03:
《解決方案》

不用這麼麻煩,用139郵箱得了,飛信有延遲
《解決方案》

不錯的東西,學習了
《解決方案》

謝謝共享,大家都應該都出力。
《解決方案》

東西不錯,  不過我認為139郵箱更實用些,{:3_189:} 用了一年過了, nagios在本身上有自己的不足。
例如:版本兼容、資源佔用!  我們這裡太扣了,把監控和web放在一起!
《解決方案》

回復 1# feiyang10086


    hao
《解決方案》

很給力的功能
《解決方案》

現在這個飛信貌似不好用了吧~~
《解決方案》

現在的飛信經常不能用,需要更新,不太穩定。

[火星人 ] 配置 Nagios 使用 FetionRobot 簡訊報警已經有447次圍觀

http://coctec.com/docs/service/show-post-2019.html