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 '^[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脚本相关推荐
- php及时获取zabbix告警,zabbix邮件告警python脚本代码
这篇文章介绍zabbix邮件告警python脚本代码#!/usr/bin/python # -*- coding: utf-8 -*- """ Zabbix SMTP A ...
- Zabbix4.2邮件告警python脚本
环境 : Ubunutu 16.04 LTS Zabbix 4.2.6 psotgresql 9.6.6 脚本如下: root@ubuntu:/usr/lib/zabbix/alertscripts# ...
- zabbix邮件报警python脚本
#!/usr/bin/python # -*- coding: utf-8 -*- """ Zabbix SMTP Alert script from qq. auth: ...
- 记录一个自动发送QQ邮件的python脚本。
使用环境,python3.6# coding=utf-8 import smtplib # 导入 smtplib 发邮件模块,从面的脚本,邮件的发送.接收等相关服务,全部由 smtplib.SMTP ...
- python自动发邮件 foxmail_使用 python 脚本实现自动监控网站并发送邮件告警
今天中午的时候,网站莫名奇妙地出现无法访问的现象,持续了两个多小时,等发现问题的时候立刻重启了服务器才恢复正常.为防止同样的事情再次发生,所以就想编写一个自动化脚本来监控网站服务,今天为大家分享一下使 ...
- zabbix监控利用Python脚本发邮件
最近实施了zabbix监控,开源软件杠杠的,甩nagios 好几条街-- 环境:centos6.6 + Zabbix 2.4.5 + Python 2.6.6 cd /usr/local/zabbix ...
- python数据变更邮件提醒_如何使python脚本在某些数据更改时自动发送电子邮件?...
所以基本上,我做了一个python脚本,每12小时给我发送一封包含我公共IP地址的电子邮件.我的目标是使它自动发送电子邮件只有当我的IP更改.如果我能帮上忙的话.在 我的密码是:from json i ...
- linux发邮件到126,使用126邮箱发送邮件的python脚本
使用126邮箱发送邮件的python脚本: 注: 1.密码处是126邮箱的授权码,非登录密码 vi mail.py #!/usr/bin/python #coding=utf-8 import smt ...
- 树莓派定时运行python程序_定时发送免费天气预报(邮件)短信通知的Python脚本,通用Linux,也适合树莓派...
最近在摆弄Python和树莓派,故写了个定时发送免费天气预报(邮件)短信通知的Python脚本,通用Linux,也适合树莓派或者Windows系统,为Python3版本,Python2环境下使用的话, ...
最新文章
- 能源枯竭?在能源互联网时代不存在!
- 【正式发布】火星人敏捷开发手册2012-12-25(基于Scrum的敏捷开发免费培训教材及公司内部宣传材料)...
- python 使用pymysql执行sql语句,使用try防止出错
- bat脚本交互输入_windows 10 如何设定计划任务自动执行 python 脚本?
- linux 驱动编写(sd卡驱动)
- keras 多GPU训练,单GPU权重保存和预测
- opencv 图像卷积运算函数filter2D()
- android 新版本gradle,Android:更新到新版本的gradle后出现“Manife...
- Java并发编程实战-高屋建瓴
- RubyInstaller
- 学霸是怎样炼成的?学了那么多还一无是处?如何克服学习阻力?一件枯燥讨厌的事但必须要做?内心强大的主观改造 自我加速(学以致用)与环境加速(学习型组织)
- datamodeler mysql_Navicat Data Modeler功能简介
- 开发和运维的关系,实施和运维的区别
- 【DFS】先简单说说DFS分布式存储系统和fastDFS
- 怎样解决移动硬盘提示格式化的问题
- 【区块链 | Compound】1.剖析DeFi借贷产品之Compound:概述篇
- jira字段配置(域配置)_到期日、时间跟踪等根据需要自行配置
- 论文阅读——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
- x98air2+android+升级,台电X98 Air 3G(C5J6)升级安卓5.0,windows系统不受影响
- js 手机端网站底部悬浮html广告代码
热门文章
- 日首相:对韩日问题深感遗憾 将采取强硬应对措施
- linux上部署javaWeb项目
- Bootstrap栅格系统(布局)
- 在CentOS6.5上安装Tomcat6
- 代码的坏味道:控制结构嵌套太深
- SharePoint 2010 Crawl Component Stuck in “Recovering” status
- 批处理延迟sleep应用
- 一道NP中的EIGRP拓扑表的题
- 使用 Go 实现 TLS socket server
- Elasticsearch(一) ES之简介、倒排索引介绍以及 elasticsearch、kibana安装