kidys 发表于 2019-1-25 12:52:28

zabbix通过python脚本实现邮件报警

  1.修改zabbix server端的配置文件,启用AlertScriptsPath,使其支持脚本功能
  1.编辑zabbix server端的配置文件,并重启服务
  # vim /etc/zabbix/zabbix_server.conf
     AlertScriptsPath=/usr/local/zabbix/alertscripts
  

   # /etc/init.d/zabbix_server restart
  

  2.在服务端添加邮件报警的python脚本,并给脚本执行权限
   邮件报警,并记录日志

  # vim /usr/local/zabbix/alertscripts/zabbix_sendmail.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pdb
import smtplib
import string
import time
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
#pdb.set_trace()
#HOST = "mail.gw.com.cn"
def S_Mail():
    HOST = "smtp.exmail.qq.com"                           #邮件服务器
    SUBJECT = sys.argv.decode('utf-8').encode('gbk')   #主题
    TO =sys.argv                                       #收件邮箱
    FROM = "admin@qq.cn"
    text = sys.argv.decode('utf-8').encode('gbk')      #发件内容
    BODY = string.join((
                  "FROM: %s" % FROM,
                  "To: %s"% TO,
                  "Subject: %s" %SUBJECT,
                  "",
                  text
                  ),"\r\n")
    server = smtplib.SMTP()
    server.connect(HOST,25)
    #server.starttls()
    server.login("发件邮箱","密码")
    server.sendmail(FROM,,BODY)
    server.quit()
# email log 记录日志
    with open('/data/logs/zabbix/Email.log', 'a') as f:
      date=time.strftime("%y-%m-%d %H:%M:%S")
      str = date + "    " + TO +"    " + SUBJECT + "\r\n" + "\n"
      str1 = str.decode('gbk').encode('utf-8')
#       print("%s" %str1)
      f.write(str1)
if __name__=='__main__':
    S_Mail()  

  # chmod +x /usr/local/zabbix/alertscripts/zabbix_sendmail.py
  

  3.验证脚本
  # ./zabbix_sendmail.py 收件邮箱 主题测试
http://s3.运维网.com/wyfs02/M00/6F/C2/wKioL1WngdGTYak7AABuPIL8a6I880.jpg
  

  4.创建报警媒介,类型选择脚本
http://s3.运维网.com/wyfs02/M00/6F/C2/wKioL1WngyaTO6vdAANJ0zGDcb8757.jpg
  

  

  5. 创建用户,并实现邮件报警
  1)
http://s3.运维网.com/wyfs02/M01/6F/C4/wKiom1WngeKj4VsTAAP-ZI9VIc4888.jpg
  2)选择媒介
http://s3.运维网.com/wyfs02/M00/6F/C4/wKioL1WoS6ayG9cYAAEnS92ywvA670.jpg
  

  6. 为方便管理,创建群组,将用户添加至群组中
http://s3.运维网.com/wyfs02/M02/6F/C7/wKiom1WoTcbB1PMAAAOghRZw224559.jpg
  

  7.选择"组态"-->"动作" 创建 “action",实现邮件报警
  1)

http://s3.运维网.com/wyfs02/M02/6F/C4/wKioL1WoTmKz-ogCAAPzBQwscpI775.jpg
  2)
http://s3.运维网.com/wyfs02/M02/6F/C6/wKiom1WoTKXxqHSaAAOLsxfsLf8795.jpg
  3)
http://s3.运维网.com/wyfs02/M01/6F/C7/wKiom1WoTPiSzJsZAARshycLEcU608.jpg
  

  验证结果
  通过"审计" -->"Action log" 查看日志
http://s3.运维网.com/wyfs02/M01/6F/C4/wKioL1WoUXyz3mAnAARppnbkI_E328.jpg
  并且已经发送有邮件
  故障邮件
http://s3.运维网.com/wyfs02/M02/6F/C4/wKioL1WoUu7CvZVxAAJ3-zn08_0440.jpg
  

  恢复后发送的邮件
http://s3.运维网.com/wyfs02/M01/6F/C4/wKioL1WoUn6ilgv_AAJgC0q-aHE538.jpg
  

  并且可以通过日志查看记录
http://s3.运维网.com/wyfs02/M02/6F/C7/wKiom1WoUfuh3tMtAAGLZtgZ9D0622.jpg



页: [1]
查看完整版本: zabbix通过python脚本实现邮件报警