因为传统的邮件推送脚本使用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分钟才会弹出告警,等其在仪表盘里显示有告警的同时,邮件告警是否有发给你