zabbix自动截图留档

  • 时间:2017-12-08
  • 分类:数据库/系统
  • 715 人浏览

 

1 背景      

每个DB Server都有zabbix监控,除了异常情况的报警信息外,也会在日检、周检、月检等工作中用到zabbix的监控数据,对zabbix监控数据会做两种处理:1 数据分析(环比分析、最大值、最小值及平均值分析);2 主要检测项目折线图留档(为啥需要留档呢,因为zabbix监控过多服务器,监控数据仅保留半年到1年间)。       关于 数据分析类的,已嵌入 日检邮件报告跟 月度报告 中,而 zabbix 监控图留档 一直没实现自动化,每个月都是人工取截图。刚好最近遇到 国庆db报告跟9月数据库报告,需要各种截图留档,然后触发了写个小脚本来自动下载 zabbix的监控图。        

   

2 写个小脚本

2.1 获取图片url

    首先打开日常的zabbix监控图页面,点击 F12,然后点击,这个时候选中页面中的折线图,就可以看到 对应的HTML代码,最后点击对应的html代码右键 copy下图片的链接地址,即可知道 zabbix的监控图 的url。

    

根据获取的url如下:    

http://company.moniter.com/chart.php?period=2592000&stime=20170901000000&itemids%5B0%5D=32571&type=0&updateProfile=1&profileIdx=web.item.graph&profileIdx2=32571&width=1778&sid=341eb79599119b85&screenid=&curtime=1508809467171
 
这里边有几个参数说明下

stime 是监控的开始时间按照 '%Y%m%d%H%M%S' 的时间格式
period 是监控图的时长,从 stime开始要展示 多少秒 的监控数据
itemid[0] 是 监控项目在zabbix 数据库的 itemid 号
    这个如何查呢?首先根据 host表格,找到监控服务器的hostid,然后根据 items表格找到对应的监控id
    select i.hostid,itemid,i.name,key_,i.description from items i join hosts h on i.hostid=h.hostid where h.name = 'hostname';
curtime这里可以不填写,但是注意 stime 加上 period秒数后,不要超过当前查询时间即可
width 为图片的长度


根据需要,仅保留4个参数,这里注意 stime 加上 period秒数后,不要超过当前查询时间 ,简化后的url如下(把zabbix部署的域名或者网址IP替换掉 company.moniter.com):
http://company.moniter.com/chart.php?period=2592000&stime=20170901000000&itemids[0]=32571&width=1778
2.2 脚步及测试
小脚本实现的功能是:根据批量的itemid,自动下载图片到本地目录,并且重命名图片名称。

代码实现如下:

 

    根据写好的类,输入zabbix的登录帐号、监控图的起始跟结束时间、本地存放图片目录、itemid的list,运行后如下:

 

      随便输入的itemid 测试下载,实际需要根据监控需要过滤itemid,下载后在文件夹中显示如下:

 

 

来源:本文为线上采编,如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除!
标签: zabbix