使用zabbix邮件发送报表
简介
首先我们来看下图片的url (右击screens中随便一张图片,选复制图片地址)
http://zabbix.xxx.com/chart2.php?graphid=524&screenid=16&width=400&height=156&updateProfile=1&profileIdx=web.screens&profileIdx2=16&period=86400&stime=20150629172712&sid=f6dd0d127bba0123&curtime=1404120808037
可以看到上面的url后面有很多的参数,当然我们需要的没有那么多,简化后的url如下
http://zabbix.xxx.com/chart2.php?graphid=524&screenid=16&width=400&height=156&period=86400
简化后我们只需要5个参数
graphid # 图片的ID,对应的值为某一个graph的唯一标识
screenid # screenID,对应的值为某一个screen的唯一标识
width # 图片的宽度,对应的值为图片的宽度(可根据需要自己定义)
height # 图片的高度,对应的值为图片的高度(可根据需要自己定义)
period # 图片展示数据的时钟周期 单位为 秒 (86400 =1天)
通过上面的信息我们知道要通过zabbix获取screen中的图片需要的参数下面我们需要做的就是通过screen name到数据库中查询相关参数即可
1、根据管理员自定义的screens name在数据库中查询此screen的ID (screens 表)
2、根据所查到的screenID查询此screen中所包含的resourceid (resourceid==graphid)(screens_items 表)
3、通过1、2两步查到的参数获取图片并保存至zabbix服务器上的web目录并生成html代码
4、通过smtplib模块把html代码发送到管理员邮箱
大概的流程是这样的,代码如下,代码中所涉及的参数变量根据自己的环境做出相应的配置即可
代码参阅:http://heylinux.com/archives/2081.html