使用python脚本发送zabbix报警邮件
由于在centos6的curl版本为 7.19.7,导致zabbix3.0 自带的Email发不出去,而在centos7上可以正常发送,原因在zabbix官方文档可寻,如下图
下图为zabbix3.0自带Email
既然在centos6上安装zabbix3.0,自带Email发不了,那么我们改如何使用邮件报警呢?
答案是自定义脚本!
配置方法如下
1:首先zabbix web界面上新增报警媒介类型
名称:可以随便起,这里我的名称是邮件报警
类型:脚本,这点很重要
脚本名称:这个脚本必须真实存在并放在特定位置下。如果是yum安装的zabbix,路径默认是/usr/lib/zabbix/alertscripts
三个脚本参数分别是:
报警收件人:{ALERT.SENDTO}
报警标题:{ALERT.SUBJECT}
报警内容:{ALERT.MESSAGE}
python脚本内容如下(记得给脚本添加执行权限哦)
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_user = '这里填你的qq邮箱'
mail_pass = '这里填你的qq邮箱客户端授权码'
def send_mail(to_list,subject,content):
me = "zabbix 监控告警平台"+"<"+mail_user+">"
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = subject
msg['From'] = me
msg['to'] = to_list
try:
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
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])
万事具备,开始触发报警吧!
附录:
如果你的邮箱不只是ssl/tls加密,用的普通的smtp 25端口,那么你需要使用如下脚本
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_user = 'xxxxxxx@163.com'
mail_pass = '你的客户端授权码'
def send_mail(to_list,subject,content):
me = "zabbix 监控告警平台"+"<"+mail_user+">"
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = subject
msg['From'] = me
msg['to'] = to_list
try:
s = smtplib.SMTP("smtp.163.com", 25)
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])
评论已关闭