nagios報(bào)警通知
1.下載郵件客戶(hù)端,測(cè)試郵件發(fā)送是否正常
# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
# tar -zxvf sendEmail-v1.56.tar.gz
# cp sendEmail /usr/local/bin
# chmod 0755 /usr/local/bin/sendEmail
# /usr/local/bin/sendEmail -f zzz@qq.com -t xxxx@xxxxxx.com -s mail.xxxx.com -u "test" -m "error" ;此郵箱發(fā)郵件無(wú)需添加smtp身份驗(yàn)證,139郵箱需要
-f 表示發(fā)送者的郵箱
-t 表示接收者的郵箱
-u 表示郵件的主題
-xu 表示SMTP驗(yàn)證的用戶(hù)名
-xp 表示SMTP驗(yàn)證的密碼(注意,這個(gè)密碼貌似有限制,例如我用d!5neyland就不能被正確識(shí)別)
-m 表示郵件的內(nèi)容
-cc 表示抄送
-bcc 表示暗抄送
--------------------------------------------------------------------------
2. 修改commands.cfg, 替換掉原來(lái)發(fā)送郵件的兩個(gè)命令
默認(rèn)的輸出宏$HOSTOUTPUT$和$SERVICEOUTPUT$只會(huì)輸出第一行信息, 我們使用$LONGHOSTOUTPUT$和$LONGSERVICEOUTPUT$輸出完整信息.
注意: 為了能接受到格式化良好, 且中文無(wú)亂碼的超文本郵件, 可以對(duì)sendEmail設(shè)置 "-o message-content-type=html -o message-charset=utf8" 選項(xiàng).
# vi /usr/local/nagios/etc/objects/commands.cfg
define command{
command_name notify-host-by-email
command_line /usr/local/bin/sendEmail -f 手機(jī)號(hào)@139.com -t $CONTACTEMAIL$ -s smtp.139.com:25 -u "** Host Alert:$HOSTALIAS$ **" -m "$HOSTNAME$($HOSTALIAS$)的狀>態(tài)異常,請(qǐng)及時(shí)處理!" -o message-content-type=html -o message-charset=utf8 -xu 手機(jī)號(hào)@139.com -xp 郵箱密碼
}
# 'notify-service-by-email' command definition
define command{
command_name notify-service-by-email
command_line /usr/local/bin/sendEmail -f 手機(jī)號(hào)@139.com -t $CONTACTEMAIL$ -s smtp.139.com:25 -u "** Service Alert:$HOSTALIAS$ **" -m "$HOSTNAME$($HOSTALIAS$)的監(jiān)控項(xiàng) $SERVICEDESC$ 狀態(tài)為$SERVICESTATE$,請(qǐng)及時(shí)處理!" -o message-content-type=html -o message-charset=utf8 -xu 手機(jī)號(hào)@139.com -xp 郵箱密碼
}
-------------------------------------------------------------------
3.配置接收nagios告警的郵件地址
# vi /usr/local/nagios/etc/objects/contacts.cfg
define contact{
contact_name 聯(lián)系人名稱(chēng)
use generic-contact
alias 聯(lián)系人別名
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email 手機(jī)號(hào)@139.com
}
define contact{
contact_name 聯(lián)系人名稱(chēng)
use generic-contact
alias 聯(lián)系人別名
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email 手機(jī)號(hào)@139.com
}
define contactgroup{
contactgroup_name system
alias system
members 聯(lián)系人1,聯(lián)系人2
}
-------------------------------------------------------------------------
4.自定義需要監(jiān)控的主機(jī)和相關(guān)服務(wù)
檢測(cè)主機(jī)是否宕機(jī)
例如:
define host{
use windows-server ; Inherit default values from a template
host_name XX服務(wù)器 ; The name we're giving to this host
alias 192.168.12.216 ; A longer name associated with the host
address 192.168.12.216 ; IP address of the host
添加如下語(yǔ)句
check_command check-host-alive
max_check_attempts 1 ;最大重復(fù)檢測(cè)失敗次數(shù)
contact_groups system ;通知發(fā)送組
normal_check_interval 2 ;正常命令檢測(cè)頻率 2分鐘
notification_interval 0 ;警報(bào)發(fā)送頻率,0為只發(fā)送一次,10為每隔10分鐘發(fā)送一次
}
檢測(cè)相關(guān)服務(wù)
例如:
define service{
use generic-service
host_name XX服務(wù)器
service_description XX進(jìn)程
check_command check_nt!PROCSTATE!-d SHOWALL -l OAAdmin.exe
contact_groups system ;選擇需要發(fā)送警告的聯(lián)系組
notification_interval 0 ;選擇重復(fù)發(fā)送警告的頻率,0為發(fā)送一次,10為10分鐘發(fā)送一次!
}
-----------------------------------------------------------------------------
5. 修改完主配置文件后, 都需要重啟Nagios服務(wù), 重啟前先驗(yàn)證配置文件是否有誤
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# service nagios reload
如果有問(wèn)題則查詢(xún)Nagios運(yùn)行日志, 進(jìn)行進(jìn)一步診斷:
#tail -50f /usr/local/nagios/var/nagios.log
------------------------------------------------------------------------------
6.短信通知
本文主要通過(guò)139郵箱免費(fèi)的短信提示實(shí)現(xiàn),只用于移動(dòng)手機(jī)
參考:http://storysky.blog.51cto.com/628458/274416