一、概述及环境要求
1、概述
zabbix监控也起到重要作用,以下是使用python脚本发送告警邮件配置方法。之前使用过sendemail邮件报警但是发现邮件主题为中文时候会出现乱码的问题。2、环境安装要求
Zabbix软件版本:zabbix3.2.6
操作系统:CentOS release 6.8 (Final)二、脚本创建及测试
1、查看配置zabbix_server.conf ,找到AlertScriptsPath,查看路径位置,如被注释,将注释打开,把send.py 文件保存到该目录下。
grep -n '^[a-Z]' /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=30002、如有修改配置,需重启zabbix-server服务。
/etc/init.d/zabbix_server restart3、进入Zabbix发邮件脚本目录
cd /usr/local/share/zabbix/alertscripts4、创建脚本及配置
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监控告警平台"+"<"+mail_user+"@"+mail_postfix+">"  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[1], sys.argv[2], sys.argv[3]) 5.增加可执行权限
chmod +x zabbix-mail.py
chown -R zabbix.zabbix zabbix-mail.py 6.测试邮件
python zabbix-mail.py 10880347@qq.com test test

三、ZABBIX服务器报警媒介类型
1、web界面设置
http://172.16.8.200/zabbix/
添加三个参数
{ALERT.SENDTO}收件人地址
{ALERT.SUBJECT}主题
{ALERT.MESSAGE}详细内容

2、创建报警用户

3、配置报警媒介

4、配置权限
现在测试环境所以配置超级管理的权限,如果是生产环境建议使用用户权限

四、配置报警动作
1、创建新的触发动作

2、配置动作

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}

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}

5、邮件告警测试结果

对发邮件脚本进行了优化,解决outlook收邮件标题是乱码的问题。
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.header import Header
from email.mime.text import MIMEText
import sys
mail_host = 'mail.qq.com'
mail_user = '10880347'
mail_pass = '********'
mail_postfix = 'qq.com'  def send_mail(to_list,subject,content):  #me = "某某公司zabbix监控告警"+"<"+mail_user+"@"+mail_postfix+">"  me = ("%s<10880347@qq.com>")%(Header('某某公司zabbix_监控告警!','utf-8'),)  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[1], sys.argv[2], sys.argv[3])

注:通过zabbix配置给多人发送邮件,貌似只能发送第一个,所以使用脚本来实现。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import smtplib
from email.mime.text import MIMEText
def send_mail(sub,content):# 要发给谁mailto_list=["test1@qq.com","test2@qq.com","test3@qq.com"]# 设置服务器,用户名、口令以及邮箱的后缀mail_host="smtp.mail.haoyisheng.com"mail_user="admin@mail.haoyisheng.com"mail_pass="********"mail_postfix="mail.haoyisheng.com"me=mail_user+"<"+mail_user+"@"+mail_postfix+">"msg = MIMEText(content,_subtype='plain',_charset='utf-8')msg['Subject'] = submsg['From'] = memsg['To'] = ";".join(mailto_list)try:s = smtplib.SMTP()s.connect(mail_host)s.login(mail_user,mail_pass)s.sendmail(me, mailto_list, msg.as_string())s.close()return Trueexcept Exception, e:print str(e)return False
if __name__ == '__main__': if send_mail(sys.argv[2],sys.argv[3]):print u'发送成功'else:print u'发送失败'

  



转载于:https://www.cnblogs.com/wumingxiaoyao/p/7426932.html

Zabbix3.2邮件告警python脚本相关推荐

  1. php及时获取zabbix告警,zabbix邮件告警python脚本代码

    这篇文章介绍zabbix邮件告警python脚本代码#!/usr/bin/python # -*- coding: utf-8 -*- """ Zabbix SMTP A ...

  2. Zabbix4.2邮件告警python脚本

    环境 : Ubunutu 16.04 LTS Zabbix 4.2.6 psotgresql 9.6.6 脚本如下: root@ubuntu:/usr/lib/zabbix/alertscripts# ...

  3. zabbix邮件报警python脚本

    #!/usr/bin/python # -*- coding: utf-8 -*- """ Zabbix SMTP Alert script from qq. auth: ...

  4. 记录一个自动发送QQ邮件的python脚本。

    使用环境,python3.6# coding=utf-8 import smtplib # 导入 smtplib 发邮件模块,从面的脚本,邮件的发送.接收等相关服务,全部由 smtplib.SMTP ...

  5. python自动发邮件 foxmail_使用 python 脚本实现自动监控网站并发送邮件告警

    今天中午的时候,网站莫名奇妙地出现无法访问的现象,持续了两个多小时,等发现问题的时候立刻重启了服务器才恢复正常.为防止同样的事情再次发生,所以就想编写一个自动化脚本来监控网站服务,今天为大家分享一下使 ...

  6. zabbix监控利用Python脚本发邮件

    最近实施了zabbix监控,开源软件杠杠的,甩nagios 好几条街-- 环境:centos6.6 + Zabbix 2.4.5 + Python 2.6.6 cd /usr/local/zabbix ...

  7. python数据变更邮件提醒_如何使python脚本在某些数据更改时自动发送电子邮件?...

    所以基本上,我做了一个python脚本,每12小时给我发送一封包含我公共IP地址的电子邮件.我的目标是使它自动发送电子邮件只有当我的IP更改.如果我能帮上忙的话.在 我的密码是:from json i ...

  8. linux发邮件到126,使用126邮箱发送邮件的python脚本

    使用126邮箱发送邮件的python脚本: 注: 1.密码处是126邮箱的授权码,非登录密码 vi mail.py #!/usr/bin/python #coding=utf-8 import smt ...

  9. 树莓派定时运行python程序_定时发送免费天气预报(邮件)短信通知的Python脚本,通用Linux,也适合树莓派...

    最近在摆弄Python和树莓派,故写了个定时发送免费天气预报(邮件)短信通知的Python脚本,通用Linux,也适合树莓派或者Windows系统,为Python3版本,Python2环境下使用的话, ...

最新文章

  1. 能源枯竭?在能源互联网时代不存在!
  2. 【正式发布】火星人敏捷开发手册2012-12-25(基于Scrum的敏捷开发免费培训教材及公司内部宣传材料)...
  3. python 使用pymysql执行sql语句,使用try防止出错
  4. bat脚本交互输入_windows 10 如何设定计划任务自动执行 python 脚本?
  5. linux 驱动编写(sd卡驱动)
  6. keras 多GPU训练,单GPU权重保存和预测
  7. opencv 图像卷积运算函数filter2D()
  8. android 新版本gradle,Android:更新到新版本的gradle后出现“Manife...
  9. Java并发编程实战-高屋建瓴
  10. RubyInstaller
  11. 学霸是怎样炼成的?学了那么多还一无是处?如何克服学习阻力?一件枯燥讨厌的事但必须要做?内心强大的主观改造 自我加速(学以致用)与环境加速(学习型组织)
  12. datamodeler mysql_Navicat Data Modeler功能简介
  13. 开发和运维的关系,实施和运维的区别
  14. 【DFS】先简单说说DFS分布式存储系统和fastDFS
  15. 怎样解决移动硬盘提示格式化的问题
  16. 【区块链 | Compound】1.剖析DeFi借贷产品之Compound:概述篇
  17. jira字段配置(域配置)_到期日、时间跟踪等根据需要自行配置
  18. 论文阅读——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  19. x98air2+android+升级,台电X98 Air 3G(C5J6)升级安卓5.0,windows系统不受影响
  20. js 手机端网站底部悬浮html广告代码

热门文章

  1. 日首相:对韩日问题深感遗憾 将采取强硬应对措施
  2. linux上部署javaWeb项目
  3. Bootstrap栅格系统(布局)
  4. 在CentOS6.5上安装Tomcat6
  5. 代码的坏味道:控制结构嵌套太深
  6. SharePoint 2010 Crawl Component Stuck in “Recovering” status
  7. 批处理延迟sleep应用
  8. 一道NP中的EIGRP拓扑表的题
  9. 使用 Go 实现 TLS socket server
  10. Elasticsearch(一) ES之简介、倒排索引介绍以及 elasticsearch、kibana安装