使用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

原文地址:https://www.cnblogs.com/janehoo/p/6150402.html