TOUVE 发表于 2018-1-1 21:24:31

使用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
页: [1]
查看完整版本: 使用zabbix邮件发送报表