[置顶] Zabbix3.2监控charts图形自动发送邮件
2017-08-02 10:54
585 查看
#!/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb import datetime import cookielib, urllib2,urllib import smtplib from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from 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的Hostname HostName = "172.16.8.200" #查找图像名称 GraphsName = "Network traffice" #此url是获取图片是的,请注意饼图的URL 和此URL不一样,请仔细观察! gr_url="http://172.16.8.200/zabbix/chart2.php" #登陆URL indexURL="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)
相关文章推荐
- 在服务器上使用python自动获取zabbix上图形并发送邮件
- zabbix监控无法发送邮件到指定的邮箱
- Linux下的motion detection(最简单的办公室监控系统) 邮件自动发送
- 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
- zabbix监控系列(4)之zabbix报警邮件无法发送
- 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
- oracle状态自动监控,发送邮件到管理员邮箱
- python实现自动监控网站并发送邮件告警
- python3.6 监控服务器在线,离线自动发送邮件
- 提取zabbix监控平台单台服务器图形并发邮件python实现
- zabbix3.2+Grafana4.0实现可视化监控图形
- 实现Zabbix通过邮件发送图形报表
- java程序监控tomcat实现项目宕机自动重启并发送邮件提醒
- 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
- 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控(推荐)
- Zabbix监控之邮件发送失败-smtp-server: 错误代码550与535 推荐
- 将zabbix 监控图以图片格式发送邮件到管理员邮箱
- CentOS下监控磁盘使用量并在超过阀值后自动发送报警邮件
- zabbix生成资源性能报表+邮件自动发送
- zabbix监控主动模式、被动模式、添加监控主机、添加自定义模板、处理图形乱码、自动发现