scvmm 发表于 2019-1-20 12:47:17

Zabbix3.2邮件告警python脚本

  一、概述及环境要求
  1、概述
  zabbix监控也起到重要作用,以下是使用python脚本发送告警邮件配置方法。之前使用过sendemail邮件报警但是发现邮件主题为中文时候会出现乱码的问题。
  

  2、环境安装要求
  Zabbix软件版本:zabbix3.2.6
  操作系统:CentOS release 6.8 (Final)
  

  二、脚本创建及测试
  1、查看配置zabbix_server.conf ,找到AlertScriptsPath,查看路径位置,如被注释,将注释打开,把send.py 文件保存到该目录下。
  grep -n '^' /usr/local/etc/zabbix_server.conf
  38:LogFile=/tmp/zabbix_server.log
  87:DBName=zabbix
  103:DBUser=zabbix
  111:DBPassword=zabbix
  126:DBPort=3306
  239:StartVMwareCollectors=10
  247:VMwareFrequency=60
  255:VMwarePerfFrequency=60
  265:VMwareCacheSize=80M
  273:VMwareTimeout=10
  281:SNMPTrapperFile=/tmp/zabbix_traps.tmp
  289:StartSNMPTrapper=0
  407:Timeout=4
  448:AlertScriptsPath=/usr/local/share/zabbix/alertscripts
  492:LogSlowQueries=3000
  

  2、如有修改配置,需重启zabbix-server服务。
  /etc/init.d/zabbix_server restart
  

  3、进入Zabbix发邮件脚本目录
  cd /usr/local/share/zabbix/alertscripts
  

  4、创建脚本及配置
  vim zabbix-mail.py
  #!/usr/bin/python
  #coding:utf-8
  import smtplib
  from email.mime.text import MIMEText
  import sys
  mail_host = 'smtp.qq.com'
  mail_user = '10880347'
  mail_pass = '**********'
  mail_postfix = 'qq.com'
  def send_mail(to_list,subject,content):
  me = "zabbix3.2监控告警平台"+""
  msg = MIMEText(content, 'plain', 'utf-8')
  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, sys.argv, sys.argv)
  

  5.增加可执行权限
  chmod +x zabbix-mail.py
  chown -R zabbix.zabbix zabbix-mail.py
  

  6.测试邮件
  python zabbix-mail.py 10880347@qq.com test test
https://s4.运维网.com/wyfs02/M01/99/40/wKioL1lGZ7uSICFcAAAVLUTL1r8546.png
  三、ZABBIX服务器报警媒介类型
  1、web界面设置
  http://172.16.8.200/zabbix/
  添加三个参数
  {ALERT.SENDTO}收件人地址
  {ALERT.SUBJECT}主题
  {ALERT.MESSAGE}详细内容
https://s1.运维网.com/wyfs02/M02/99/41/wKiom1lGZ96RG_FHAAEA-7nYDCg460.jpg
  2、创建报警用户
https://s5.运维网.com/wyfs02/M01/99/41/wKioL1lGaEDAp0ttAAENcIy-O80467.jpg
  3、配置报警媒介
https://s5.运维网.com/wyfs02/M02/99/41/wKiom1lGaFCD0OfEAAD2ipf7Xg4525.jpg
  4、配置权限
  现在测试环境所以配置超级管理的权限,如果是生产环境建议使用用户权限
https://s5.运维网.com/wyfs02/M02/99/41/wKiom1lGaGiB3gnCAAD2ipf7Xg4378.jpg
  四、配置报警动作
  1、创建新的触发动作
https://s2.运维网.com/wyfs02/M00/99/41/wKiom1lGaIfA5K5uAAF8NH2-wJQ257.jpg
  2、配置动作
https://s1.运维网.com/wyfs02/M02/99/41/wKioL1lGaQCy0BKwAAEX6Ke2LTQ752.jpg
  3、配置操作
  故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
  

  告警主机:{HOSTNAME1}
  告警时间:{EVENT.DATE} {EVENT.TIME}
  告警等级:{TRIGGER.SEVERITY}
  告警信息: {TRIGGER.NAME}
  告警项目:{TRIGGER.KEY1}
  问题详情:{ITEM.NAME}:{ITEM.VALUE}
  当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
  事件ID:{EVENT.ID}
https://s3.运维网.com/wyfs02/M01/99/41/wKioL1lGaRLR3XIWAAGY4LVWgOA474.jpg
  4、配置恢复操作
  恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
  

  告警主机:{HOSTNAME1}
  告警时间:{EVENT.DATE} {EVENT.TIME}
  告警等级:{TRIGGER.SEVERITY}
  告警信息: {TRIGGER.NAME}
  告警项目:{TRIGGER.KEY1}
  问题详情:{ITEM.NAME}:{ITEM.VALUE}
  当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
  事件ID:{EVENT.ID}
https://s4.运维网.com/wyfs02/M00/99/41/wKiom1lGaSOhK0w1AAFRMtpO6hc436.jpg
  5、邮件告警测试结果
https://s3.运维网.com/wyfs02/M00/99/41/wKioL1lGaTOTvnvOAAD-28x7sbE044.png
https://s5.运维网.com/wyfs02/M01/99/41/wKioL1lGaUOwfn6TAABMZG7Q1Qk716.png
  




页: [1]
查看完整版本: Zabbix3.2邮件告警python脚本