一、 軟體環境:cacti(需threshold外掛程式),msn機械人(sendmsg)
二、 安裝過程:
cacti的threshold外掛程式參見:cacti配置e-mail報警
三、 配置過程:
1.按照cacti配置e-mail報警配置並啟用thold
2.編輯cacti/plugins/thold/thold-functions.php
在thold–functions.php查詢thold_mail($global_alert_address, 」, $subject, $msg, $file_array);行在此行下面加入:
exec("echo $subject >>/var/www/html/cacti/plugins/thold/alter.log");
exec("sh /var/www/html/cacti/plugins/thold/sendmessage.sh");
查詢 thold_mail($item["notify_extra"], 」, $subject,
$msg, $file_array);行在此行下面加入:
exec("echo $subject >>/var/www/html/cacti/plugins/thold/alter.log");
exec("sh /var/www/html/cacti/plugins/thold/sendmessage.sh");
備註:本人的thold安裝在/var/www/html/cacti/plugins/thold/目錄中,如果注釋掉thold_mail,只通過msn傳送報警。不注釋掉thold_mail,會通過email和msn同時傳送報警
thold-functions.php生成的alter.log範例如下:
192.168.1.207 - used space - g: label: [hdd_percent] is still above threshold of 85 with 99
編寫指令碼sendmessage.sh自動呼叫sendmsg傳送報警
#!/bin/sh
echo `echo -n "date:"&&date +%y-%m-%d-%h:%m` >>/var/www/html/sendmsg/msn.txt.1
#得到當前的日期+時間
cat /var/www/html/cacti/plugins/thold/alter.log >>/var/www/html/sendmsg/msn.txt.1
#讀取alter.log的報警資訊
now=`date +%y-%m-%d-%h:%m`
sa=(disk)
msnaddr=([email protected]) #報警接收人msn
#sender:傳送人msn,password:密碼。/var/www/html/sendmsg為sendmsn安裝目錄
if [ -f /var/www/html/sendmsg/index.php.1 ]; then
if cat /var/www/html/sendmsg/index.php.1 |grep -i successfully >/dev/null 2>&1;then
num=1 #判斷資訊傳送成功
echo "the user is offline."
exit 0
elif cat /var/www/html/sendmsg/index.php.1 |grep -i "something went wrong trying to connect to the server" >/dev/null 2>&1;then
num=1 #判斷msn 伺服器存在連線問題
echo "msn server is wrong."
exit 0
else
num=0 #除了以上三種情況退出迴圈外,其他情況重試。
fi rm -f /var/www/html/sendmsg/index.php.1
else
num=0
fi done
} mv /var/www/html/sendmsg/msn.txt /var/www/html/sendmsg/bak/msn$now.txt -f 1>/dev/null 2>&1
mv /var/www/html/sendmsg/msn.txt.1 /var/www/html/sendmsg/msn.txt -f 1>/dev/null 2>&1
rm /var/www/html/cacti/plugins/thold/alter.log -f 1>/dev/null 2>&1
for i in 0
do if cat /var/www/html/sendmsg/msn.txt ;then
messages=`cat /var/www/html/sendmsg/msn.txt ` #讀取要傳送的資訊
sendmsg "$" "$messages" #傳送報警資訊
else
continue
fi done
ok,配置完成了,現在就可以通過msn接收報警資訊了:如下所示
下次更新cacti實現簡訊報警,敬請期待
-posted on [星期五, 8月 22nd, 2008 at 12:20 下午] cacti. [rss 2.0] feed.
4 responses to 「cacti實現msn報警」
martian guosays:
8月 22nd, 2008 at 1:06 下午
從**角度,考慮最好能把這些東西整合在一起
john.lvsays:
8月 22nd, 2008 at 2:53 下午
請不要忘記,cacti的使用者要對sendmsg和shell指令碼有執行的許可權
freekesays:
9月 1st, 2008 at 11:01 上午
好,非常好,幾天不見,又多了這麼多新文章!雖然我去年就配置好了cacti,平時也只是用來分析各個伺服器的資源及效能情況,有這個功能,就比較好了!
freekesays:
9月 1st, 2008 at 11:06 上午
對了,博主高人朋友,你的thold是什麼版本呀?我的好像和你的檔案內容不太一樣!0.3.8我的版本
本文**
open falcon實現郵件報警
2.安裝mail provider 安裝方法 編譯成功之後,修改cfg.json檔案相關資訊,使用 使用curl命令,驗證是否能發郵件,返回success的話就是成功了 curl d tos 你的郵箱 subject 報警測試 content 這是一封測試郵件 success 3.安裝sender ...
perl實現異常時報警
usr bin perl w use dbi use lwp qw get driver mysql dbh dbi connect dbi mysql csunet localhost root die can not connect database 產生當天日期 year gmtime tim...
139郵箱簡訊報警實現
一.問題的提出 二.問題的初步解決 移動辦公 移動終端運維支援 很重要,通過手機簡訊報警,可以在更短時間得到伺服器的運 況,從而更快排除故障,解決問題,使企業損失降到最低。三.如何實現 1.可以通過購買移動 聯通 電信的簡訊閘道器伺服器或者相應介面來實現簡訊報警。不免費 2.可以通過 手機 飛信,傳...