Zabbix3.2监控charts图形自动发送邮件
来源:互联网 发布:网络机柜布线 编辑:程序博客网 时间:2024/06/01 10:30
#!/usr/bin/env python# -*- coding: utf-8 -*-import MySQLdbimport datetimeimport cookielib, urllib2,urllibimport smtplibfrom email.header import Headerfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImage#发送邮件配置:receiver = '10880347@qq.com'#Subject = 'zabbix服务器监控网卡流量情况'Subject =Header('zabbix服务器监控网卡流量情况', 'utf-8')smtpserver = 'mail.qq.com'mail_username = '10880347@qq.com'mail_password = '**********'#查找zabbix的HostnameHostName = "172.16.8.200"#查找图像名称GraphsName = "Network traffice"#此url是获取图片是的,请注意饼图的URL 和此URL不一样,请仔细观察!gr_url="http://172.16.8.200/zabbix/chart2.php"#登陆URLindexURL="http://172.16.8.200/zabbix/index.php"username="zabbix"password="*****"#用于图片存放的目录image_dir="/tmp/zabbix"class ReportForm: def getGraphID(self,HostName,GraphsName): graphid = 18287 return graphid class ZabbixGraph(object): def __init__(self,url,name,password): self.url=url self.name=name self.password=password#初始化的时候生成cookies cookiejar = cookielib.CookieJar() urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar)) values = {"name":self.name,'password':self.password,'autologin':1,"enter":'Sign in'} data = urllib.urlencode(values) request = urllib2.Request(url, data) try: urlOpener.open(request,timeout=10) self.urlOpener=urlOpener except urllib2.HTTPError, e: print e def GetGraph(self,url,values,image_dir): data=urllib.urlencode(values) request = urllib2.Request(url,data) url = self.urlOpener.open(request) image = url.read() imagename="%s/%s_%s.png" % (image_dir, values["graphid"], values["stime"]) f=open(imagename,'wb') f.write(image) def SendMail(self,receiver,Subject,smtpserver,mail_username,mail_password,values,image_dir,HostName,GraphsName): msgRoot = MIMEMultipart('related') msgRoot['Subject'] = Subject msgRoot['From'] = ("%s<10880347@qq.com>")%(Header('XXXXzabbix_charts图表','utf-8'),) sendText='<b>服务器IP: <i>"%s"</i></b> 提取的图像名称为<b>"%s"</b><br><img src="cid:image1"><br>XXXXzabbix监控告警,有问题请及时沟通!' % (HostName,GraphsName) msgText = MIMEText(sendText,'html','utf-8') msgRoot.attach(msgText) sendpng="%s/%s_%s.png" % (image_dir, values["graphid"], values["stime"]) fp = open(sendpng, 'rb') msgImage = MIMEImage(fp.read()) fp.close() msgImage.add_header('Content-ID', '<image1>') msgRoot.attach(msgImage) smtp = smtplib.SMTP()smtp.connect(smtpserver) smtp.login(mail_username, mail_password) smtp.sendmail(mail_username, receiver, msgRoot.as_string()) smtp.quit() if __name__ == "__main__": Report = ReportForm() get_graphid=Report.getGraphID(HostName,GraphsName) #图片的参数,该字典至少传入graphid。 stime=datetime.datetime.now().strftime('%Y%m%d%H%M%S') values={"graphid":get_graphid,"stime":stime,"period":86400,"width":1300,"height":300} ZabbixG=ZabbixGraph(indexURL,username,password) ZabbixG.GetGraph(gr_url,values,image_dir) ZabbixG.SendMail(receiver,Subject,smtpserver,mail_username,mail_password,values,image_dir,HostName,GraphsName)
阅读全文
0 0
- Zabbix3.2监控charts图形自动发送邮件
- zabbix3.2使用sendEmail发送告警邮件
- zabbix3.X配置邮件监控
- zabbix3.2+Grafana4.0实现可视化监控图形
- zabbix3.2+Grafana4.0实现可视化监控图形(二)
- 分布式监控系统Zabbix3.2给异常添加邮件报警
- python自动发送报警监控邮件
- zabbix3.2自定义监控
- zabbix3.2端口监控
- zabbix3.2监控Mariadb
- Zabbix3.2监控RabbitMQ
- zabbix3.2邮件报警
- zabbix3.2邮件报警
- SQL SERVER 自动监控数据库异常,自动发送邮件通知
- Zabbix3.0 自动邮件报障
- zabbix3.2监控TCP状态
- zabbix3.2监控apache状态
- zabbix3.2监控磁盘IO
- JAVA中的四种JSON解析方式详解
- android 修改Toolbar 返回按钮的颜色以及自定义的图片
- 2017多校3 1011 RXD's date
- 1025. PAT Ranking (25)
- sublime使用不完全介绍视频教程
- Zabbix3.2监控charts图形自动发送邮件
- java用HttpURLConnection类获取servlet连接
- python中os模块中文帮助--收藏,以后学习
- ASP.NET – Web 页面
- Android 删除多个activity的类,进入多个activity
- ZZULIOJ【1088】手机短号【输入输出格式】
- php 支付宝App支付服务端操作
- C++预科——C语言指针回顾(一)理解指针和指针指向的内容
- 单片机按键的定时器消抖处理