Nagios监控之9:利用sendmail使用第三方SMTP服务发送邮件报警
使用Centos系統自帶的sendmail服務作為客戶端,使用第三方SMTP服務發送郵件報警。
此功能是在nagios服務正常安裝運行的基礎上實現的;因此要先安裝好基本的nagios運行環境,這個可以參考本人相關的博文。
1.軟件檢測及安裝
#rpm -q sendmail
若不存在則安裝
#yum -y install sendmail
2.停止sendmail服務
這里不需要sendmail作為郵件服務端來運行,所以關閉sendmail服務。
#service sendmail stop
3.配置sendmail服務
配置發送郵件的郵箱認證信息
1)普通郵箱非TSL加密協議(25端口)
vi /etc/mail.rc?
--- 增加如下內容 ---
set from="MailName@xxx.com"? ? ? ? ? ? ? ?-->收件人顯示的發件人名稱
set smtp="smtp.xxx.com"? ? ? ? ? ? ? ? ? ? ? ? ??-->外部郵箱服務器地址
set smtp-auth-user="MailName"? ? ? ? ? ? ? -->郵箱地址
set smtp-auth-password="yourpasswd"? ?-->郵箱密碼
set smtp-auth=login
2)TSL加密協議(465端口)
可能有時外網防火墻禁止25端口,可以使用TSL加密協議的郵箱(465端口)
set from="MailName@xxx.com"? ? ? ? ? ? ? ?-->收件人顯示的發件人名稱
set smtp="smtps://smtp.xxx.com:465"? ? ? -->外部郵箱服務器地址
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.測試發送郵件功能
格式:echo "郵件內容" | mail -s "郵件標題" 目標郵件地址
echo "hello word" | mail -s "mail title" yyy@qq.com
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利用郵件自動報警。
鳴謝:本人參考了多篇文章后總結而得,在此感謝各位網絡分享者!
轉載于:https://blog.51cto.com/4709096/1703980
總結
以上是生活随笔為你收集整理的Nagios监控之9:利用sendmail使用第三方SMTP服务发送邮件报警的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Objective-C:三种文件导入的方
- 下一篇: 学习C语言的数组