Nagios3.0.5在CentOS5.2中安裝(三)

來源:本站原創 Linux 超過844 views圍觀 0條評論

擴展提示信息發送方式(smtp, msn, fetion)

1. 使用 SMTP 發送郵件
objects/commands.cfg 中有郵件提醒命令的設置
如要通過 SMTP 發送郵件,可以使用 sendEmail:
http://caspian.dotconf.net/menu/Software/SendEmail/
安裝
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.55.tar.gz
tar zxvf sendEmail-v1.55.tar.gz
mv sendEmail-v1.55/sendEmail /usr/local/bin/
發送郵件的示例:
sendEmail -f [email protected] -t [email protected] -s smtp.test.com -u "test" -xu [email protected] -xp password -m "test."
vi objects/commands.cfg
把 notify-host-by-email 和 notify-service-by-email 的郵件發送部分改為:

  1. /usr/local/bin/sendEmail -f [email protected] -t $CONTACTEMAIL$ -s smtp.test.com -u "$HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" -xu [email protected] -xp password

復制代碼

2. 發送 MSN 提醒
這里有個 perl 寫的程序:
http://blog.chinaunix.net/u/24312/showart_1076329.html
yum install perl-XML-Simple
yum install perl-Hash-Merge
perl -MCPAN -e ‘install Net::MSN’
cd msn
修改一下 hello.pl 的 $handle 和 $password
chmod +x hello.pl
把發送者和接收者互相加為好友,然后發個測試信息試試:
./hello.pl [email protected] hello
第一次運行時發現這樣的錯誤提示:
could not find ParserDetails.ini in /usr/lib/perl5/vendor_perl/5.8.5/XML/SAX
在這里有相關說明:
http://perl-xml.sourceforge.net/faq/#parserdetails.ini
執行
perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"
mkdir /usr/local/nagios/lib
mv lib /usr/local/nagios/lib/msn
chown -R nagios:nagios /usr/local/nagios/lib
vi msn_send.pl
#!/usr/bin/perl
use lib "/usr/local/nagios/lib/msn";
my $handle = ‘[email protected]’;
my $password = ‘password’;
chown nagios:nagios msn_send.pl
chmod +x msn_send.pl
mv msn_send.pl /usr/local/nagios/libexec/
添加 MSN 提醒執行的命令:
vi /usr/local/nagios/etc/objects/commands.cfg

  1. define command{
  2.         command_name    notify-host-by-msn
  3.         command_line    /usr/local/nagios/libexec/msn_send.pl $CONTACTEMAIL$ "`/usr/bin/printf "%b" "***** Monitor *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n"`"
  4.         }
  5. define command{
  6.         command_name    notify-service-by-msn
  7.         command_line    /usr/local/nagios/libexec/msn_send.pl $CONTACTEMAIL$ "`/usr/bin/printf "%b" "***** Monitor *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$"`"
  8.         }

復制代碼

使用中發現,需要回復了才能終止進程,不然 check 就無法繼續,而且是所有其它 host 和 service 的 check 都無法繼續了。
作者說需要把接收報警的人加為好友,可是的確是加為好友了的。但據說是可以設置超時時間的。
如果有可以運行 PHP 的 Web 服務,用 PHP 發送 MSN 信息是個簡單的辦法:
http://www.fanatic.net.nz/2005/02/15/send-a-message-using-php/
安裝
wget http://downloads.fanatic.net.nz/dev/php/sendMsg.zip
unzip sendMsg.zip
mv sendMsg /path/to/web/dir/msn
配置
默認的驗證提交方式需要 ssl 支持,用 curl 的(需要在編譯 PHP 時加上 –with-curl ):
vi sendMsg.php
require_once(‘msnpauth-1.1.3.php’);
發送中文需要先用 iconv 將字符集轉為 UTF-8:
vi index.php
$sendMsg->sendMessage(iconv("GBK", "UTF-8", $_POST[‘message’]), ‘Times New Roman’, ‘008000’);
同樣需要把發送者和接收者互相加為好友。
可以先打開 http://server/msn/index.php 測試一下能否發送。如果沒有問題,可以寫一個腳本來執行 MSN 信息發送命令:
vi /usr/local/nagios/libexec/msn_send.sh

  1. #!/bin/sh
  2. wget -O – -q –post-data="[email protected]ve.cn&password=password&recipient=$1&message=$2" http://server/msn/index.php > /dev/null

復制代碼

chmod +x /usr/local/nagios/libexec/msn_send.sh
再把前面設置的 MSN 提醒命令中的 msn_send.pl 改為 msn_send.sh 就可以使用了。
3. 發送 短信 提醒
簡單的,在 www.139.com 注冊移動的郵箱,設置郵件短信提醒。這樣就可以發送郵件的標題到注冊的手機號碼上。
還有利用飛信實現的:
http://www.it-adv.net/
依賴 glibc-2.4 。 CentOS4/RHEL4, Debian Etch 不能使用。
安裝所依賴的庫:
tar zxvf lib.tar.gz
mv lib /usr/local/lib/fetion
echo "/usr/local/lib/fetion" > /etc/ld.so.conf.d/fetion-i386.conf
ldconfig
再安裝飛信的命令行客戶端:
tar zxvf fetion_linux_20080402.tar.gz -C /usr/local/bin/
vi /usr/local/bin/sms.sh

  1. #!/bin/sh
  2. /usr/local/bin/sms -f 159xxxxxxxx -p password -t $1 -m "$2"

復制代碼

chmod +x /usr/local/bin/sms.sh
和添加 MSN 提醒命令一樣添加短信提醒的命令就可以了。
Debian Etch 可以升級到 testing , glibc 也就更新到 2.4 了。
sed -e ‘s|etch|testing|g’ /etc/apt/sources.list > /etc/apt/sources.list~
mv /etc/apt/sources.list~ /etc/apt/sources.list
apt-get update
apt-get dist-upgrade

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文鏈接:http://www.qdxgqk.live/?p=3071轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
?
?
萌宠夺宝游戏