Nagios监控之9:利用sendmail使用第三方SMTP服务发送邮件报警
使用Centos系統(tǒng)自帶的sendmail服務(wù)作為客戶端,使用第三方SMTP服務(wù)發(fā)送郵件報警。
此功能是在nagios服務(wù)正常安裝運(yùn)行的基礎(chǔ)上實現(xiàn)的;因此要先安裝好基本的nagios運(yùn)行環(huán)境,這個可以參考本人相關(guān)的博文。
1.軟件檢測及安裝
#rpm -q sendmail
若不存在則安裝
#yum -y install sendmail
2.停止sendmail服務(wù)
這里不需要sendmail作為郵件服務(wù)端來運(yùn)行,所以關(guān)閉sendmail服務(wù)。
#service sendmail stop
3.配置sendmail服務(wù)
配置發(fā)送郵件的郵箱認(rèn)證信息
1)普通郵箱非TSL加密協(xié)議(25端口)
vi /etc/mail.rc?
--- 增加如下內(nèi)容 ---
set from="MailName@xxx.com"? ? ? ? ? ? ? ?-->收件人顯示的發(fā)件人名稱
set smtp="smtp.xxx.com"? ? ? ? ? ? ? ? ? ? ? ? ??-->外部郵箱服務(wù)器地址
set smtp-auth-user="MailName"? ? ? ? ? ? ? -->郵箱地址
set smtp-auth-password="yourpasswd"? ?-->郵箱密碼
set smtp-auth=login
2)TSL加密協(xié)議(465端口)
可能有時外網(wǎng)防火墻禁止25端口,可以使用TSL加密協(xié)議的郵箱(465端口)
set from="MailName@xxx.com"? ? ? ? ? ? ? ?-->收件人顯示的發(fā)件人名稱
set smtp="smtps://smtp.xxx.com:465"? ? ? -->外部郵箱服務(wù)器地址
set smtp-auth-user="MailName"? ? ? ? ? ? ? -->郵箱地址
set smtp-auth-password="yourpasswd"? ?-->郵箱密碼
set smtp-auth=login
set ssl-verify=ignore? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -->忽略ssl
set nss-config-dir=/etc/pki/nssdb? ? ? ? ? ? -->郵件證書
證書配置,請自行百度。
4.測試發(fā)送郵件功能
格式:echo "郵件內(nèi)容" | mail -s "郵件標(biāo)題" 目標(biāo)郵件地址
echo "hello word" | mail -s "mail title" yyy@qq.com
5.配置nagios郵件發(fā)送命令
修改nagios命令配置文件
#vim nagios/etc/object/command.cfg
#notify-host-by-email命令的定義?
define command{
? ? ? ? #命令名稱,即定義了一個主機(jī)異常時發(fā)送郵件的命令。
? ? ? ? command_name ? ?notify-host-by-email
? ? ? ? #命令具體的執(zhí)行方式。
? ? ? ? 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{
? ? ? ? #命令名稱,即定義了一個服務(wù)異常時發(fā)送郵件的命令
? ? ? ? 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中定義的主機(jī)和服務(wù)的報警機(jī)制,實現(xiàn)nagios利用郵件自動報警。
鳴謝:本人參考了多篇文章后總結(jié)而得,在此感謝各位網(wǎng)絡(luò)分享者!
轉(zhuǎn)載于:https://blog.51cto.com/4709096/1703980
總結(jié)
以上是生活随笔為你收集整理的Nagios监控之9:利用sendmail使用第三方SMTP服务发送邮件报警的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Objective-C:三种文件导入的方
- 下一篇: 学习C语言的数组