標籤:sendmail nagios 郵件警示 smtp服務
使用Centos系統內建的sendmail服務作為用戶端,使用第三方SMTP服務發送郵件警示。
此功能是在nagios服務正常安裝啟動並執行基礎上實現的;因此要先安裝好基本的nagios運行環境,這個可以參考本人相關的博文。
1.軟體檢測及安裝
#rpm -q sendmail
不存在怎安裝
#yum -y install sendmail
2.停止sendmail服務
這裡不需要sendmail作為郵件服務端來運行,所以關閉sendmail服務。
#service sendmail stop
3.配置sendmail服務
配置發送郵件的郵箱認證資訊
vi /etc/mail.rc
--- 增加如下內容 ---
set [email protected]
set smtp=smtp.xxx.com
set smtp-auth-user=MailName
set smtp-auth-password=yourpasswd
set smtp-auth=login
4.測試發送郵件功能
格式:echo "郵件內容" | mail -s "郵件標題" 目標郵件地址
echo "hello word" | mail -s "mail title" [email protected]
5.配置nagios郵件發送命令
修改nagios命令設定檔
#vim nagios/etc/object/command.cfg
#notify-host-by-email命令的定義
define command{
#命令名稱,即定義了一個主機異常時發送郵件的命令。
command_name notify-host-by-email
#命令具體的執行方式。
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}
#notify-service-by-email命令的定義
define command{
#命令名稱,即定義了一個服務異常時發送郵件的命令
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}
注:命令是在一行上的,這裡排版問題被分成了多行.
接著修改nagios中定義的主機和服務的警示機制,實現nagios利用郵件自動警示。
鳴謝:本人蔘考了多篇文章後總結而得,在此感謝各位網路分享者!
本文出自 “4699096” 部落格,請務必保留此出處http://4709096.blog.51cto.com/4699096/1703980
Nagios監控之利用sendmail使用第三方SMTP服務發送郵件警示