因爲傳統的郵件推送腳本使用smtp 25端口,在各大郵箱提供商已不適用,已經向SSL過渡,這裏以QQ郵箱爲例,使用SSL 465端口html
登陸zabbix-server 進入python
cd /usr/lib/zabbix/alertscriptsweb
建立一個動做腳本。app
vi send_mail.py
#!/usr/bin/python
# coding=utf-8
import smtplib
import sys
from email.mime.text import MIMEText
class send_mail():
mail_host="smtp.qq.com"
mail_user="你的QQ郵箱賬號"
mail_pass="你的QQ郵箱密碼"
mail_postfix="qq.com"
def __init__(self,sub,content):
self.me="Zabbix-Alter"+"<"+self.mail_user+"@"+self.mail_postfix+">"
self.msg = MIMEText(content,_subtype='html',_charset='utf-8')
self.msg['From'] = self.me
self.msg['Subject'] = sub
def sendMessage(self,user):
self.msg['To'] = ";".join(user)
try:
s = smtplib.SMTP_SSL(host=self.mail_host,port=465)
s.login(self.mail_user,self.mail_pass)
s.sendmail(self.me, user, self.msg.as_string()) #發送郵件
s.close()
except Exception, e:
print str(e)
if __name__ == '__main__':
mailto_list=[]
mailto_list.append(sys.argv[1])
s = send_mail(sys.argv[2],sys.argv[3])
s.sendMessage(mailto_list)
保存退出
chmod +x send_mail.py
測試,發送給某人,帶上如下3個粉字的傳參(以空格隔開)
python /usr/lib/zabbix/alertscripts/send_mail.py 某人的郵箱地址 test test
正常,則進入zabbix的web頁面加以配置
建立新的告警媒介

保存後以下圖所示,默認我手工停用了其它告警媒介
確保你在動做裏有發送告警,而且是啓用狀態post

在你的Admin用戶中,設置告警媒介測試

保存退出,
試着關掉一臺agent的服務,等5分鐘,zabbix-agent須要等5分鐘纔會彈出告警,等其在儀表盤裏顯示有告警的同時,郵件告警是否有發給你