zabbix配置傳送報警郵件
Linux系統版本:CentOS7.3
下載mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
[[email protected] ~]# rpm -qa |grep mailx
mailx-12.4-8.el6_6.x86_64
檢視mailx軟體版本
[[email protected] ~]# mailx -V
12.4 7/29/08
配置zabbix服務端郵件地址
[[email protected] ~]# tail -3 /etc/mail.rc
set from=[email protected] smtp=smtp.sina.net
set smtp-auth-user=[email protected] smtp-auth-password=123456
set smtp-auth=login
使用mailx測試傳送郵件
echo "zabbix test mail" | mailx -s "Test-mail"
建立media型別
設定使用者報警郵箱
在web介面配置zabbix動作Action選項
故障:{TRIGGER.STATUS},伺服器:{HOSTNAME1}發生:{TRIGGER.NAME}故障!
告警主機:{HOSTNAME1},IP地址:{HOST.CONN}
告警時間:{EVENT.DATE}{EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊:{TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢復:{TRIGGER.STATUS},伺服器:{HOSTNAME1}已經恢復!:{TRIGGER.NAME}
告警主機:{HOSTNAME1} ,IP地址:{HOST.CONN}
告警時間:{EVENT.DATE}{EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊:{TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
接著配置Operations選項
編寫sendmail.sh指令碼
[[email protected] ~]# cd /yc/usr/local/zabbix/share/zabbix/alertscripts/
[[email protected] alertscripts]# cat sendmail.sh
#!/bin/bash
echo "$3" |mailx -"$2" $1
*註釋:其中$3為報警郵件內容,$2為報警郵件主題,$1為使用者接收郵箱
[[email protected] alertscripts]# chown -R zabbix.zabbix sendmail.sh
[[email protected] alertscripts]# chmod +x sendmail.sh
測試,停掉任意一臺機器的zabbix_agentd,過幾分鐘檢視126郵箱中是否存在報警郵件。
附:python郵件傳送指令碼。
[[email protected] alertscripts]# cat sendmail.py #!/usr/bin/python #coding:utf-8 import smtplib from email.mime.text import MIMEText import sys reload(sys) sys.setdefaultencoding('utf8') #郵箱伺服器地址 mail_host = 'smtp.exmail.qq.com' #郵箱使用者名稱 mail_user = '[email protected]' #郵箱密碼 mail_pass = 'Z123456' mail_postfix = 'xkops.com' def send_mail(to_list,subject,content): me = mail_user+"<"+mail_user+"@"+mail_postfix+">" msg = MIMEText(content,_charset='utf-8') if not isinstance(subject,unicode): subject = unicode(subject) msg['Subject'] = subject msg['From'] = me msg['to'] = to_list try: s = smtplib.SMTP() s.connect(mail_host) s.login(mail_user,mail_pass) s.sendmail(me,to_list,msg.as_string()) s.close() return True except Exception,e: print str(e) return False if __name__ == "__main__": send_mail(sys.argv[1], sys.argv[2], sys.argv[3])