zabbix通过python脚本发告警邮件

时间:2021-02-02 08:48:59

Python脚本为敏捷开发脚本,在zabbix监控也起到重要作用,以下是使用python脚本发送告警邮件配置方法。

脚本如下:

[python] view plain copy zabbix通过python脚本发告警邮件zabbix通过python脚本发告警邮件
  1. <span style="font-size:14px;">#!/usr/bin/python  
  2. #coding:utf-8  
  3. import smtplib  
  4. from email.mime.text import MIMEText  
  5. import sys  
  6. mail_host = 'smtp.126.com'    
  7. mail_user = 'username'  
  8. mail_pass = 'passwd'  
  9. mail_postfix = '126.com'  
  10. def send_mail(to_list,subject,content):  
  11.     me = "zabbix 监控告警平台"+"<"+mail_user+"@"+mail_postfix+">"  
  12.     msg = MIMEText(content, 'plain''utf-8')  
  13.     msg['Subject'] = subject  
  14.     msg['From'] = me  
  15.     msg['to'] = to_list  
  16.     try:  
  17.         s = smtplib.SMTP()  
  18.         s.connect(mail_host)  
  19.         s.login(mail_user,mail_pass)  
  20.         s.sendmail(me,to_list,msg.as_string())  
  21.         s.close()  
  22.         return True  
  23.     except Exception,e:  
  24.         print str(e)  
  25.         return False  
  26. if __name__ == "__main__":  
  27.     send_mail(sys.argv[1], sys.argv[2], sys.argv[3])</span>  
新建send.py文件,将以上代码复制编辑,设置发件用户、密码。

然后验证脚本是否可以正常发送邮件 ./send.py xxx@139.com  hello test 三个参数分别是:收件人邮箱、邮箱主题、邮箱内容

登录zabbix主机,查看配置zabbix_server.conf ,找到AlertScriptsPath,查看路径位置,如被注释,将注释打开,把send.py 文件保存到该目录下。

如有修改配置,需重启zabbix-server服务。

在zabbix管理中添加报警媒介类型,注意parameter中的值一定要写入,注意script name中的脚本文件名字,要和刚刚编写的Python文件名一致

新增参数:{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE},分别依次加入。然后更新保存。

zabbix通过python脚本发告警邮件

配置用户,修改报警媒介,填写收件人邮箱,选择发送邮件告警类型。

zabbix通过python脚本发告警邮件

在配置-动作-操作中,send only to 中选择刚刚建立的send.py这个媒介类型

zabbix通过python脚本发告警邮件

以上步骤就完成了python脚本的发送邮件告警配置。