shell脚本获取zabbix监控图
因为领导提出需要每天看几次服务器的流量图,今天早上9点上班开始截图,十多台服务器、指定时间12小时流量图,截完图反复对照好几遍,一是怕选错主机,二是怕搞错时间段。使用zabbix时间不长,一直感觉很别扭,容易出错。加上中间还做了一点其他东西的统计,最后等邮件发出的时候都已经是10点以后了。
这样下去,恐怕是影响仕途啊。若再加上有什么其他的事情,估计领导可以一边吃午饭一边看报表了,我只能选择吃土了...
网上教程比较多,python写的,perl写的,应为暂时没这方面基础,照搬过来运行报错就无解了。自己动手丰衣足食。
以下为chrome浏览器 + Zabbix 2.4.x
正文:
准备工作:
浏览器登陆抓包:
(略,此处需要抓得登陆zabbix的post请求 抓包:request=&name=admin&password=zabbix&autologin=1&enter=Sign+in)
graphid 以及 流量图地址
graphid :
图形ID(直译),不知道该怎么定义,通俗点讲就是 一台主机 + 一个监控点 ==>> 一个不同ID
过程:
1.Monitoring -- Dashboard -- Graphs
2.选择对应的主机及对应的监控项
3.在流量图上右键 检查
4.找到关键词
5.得到:chart2.php?graphid=963&period=3600&stime=20170616192202&updateProfile=1&profileIdx=web.screens&profileIdx2=963&sid=2eaa005d53dd3ea0&width=1222
graphid=963
流量图地址:http://192.168.0.162/zabbix/chart2.php?graphid=963&period=3600&width=1222
period为时间段,不加也可以,不过最好手工指定。
width为图片宽度,不加也可以,出图会稍窄。
剩余参数未做太多研究,有或没有暂时没发现区别,就略去了 。如果需要找全部graphid建议通过数据库查找。
脚本:
#!/bin/bash ## zabbix登陆地址、zabbix登陆用户 LOGURL="http://192.168.0.162/zabbix/index.php" ZABBIX_USER="admin" ZABBIX_PASS="zabbix" GRAPHID=963 ##时间段,12H PERIOD=43200 ## 请求地址 保存cookie curl -L -c cookie.txt --user-agent Mozilla/4.0 -d "request=&$ZABBIX_USER&password=$ZABBIX_PASS&autologin=1&enter=Sign+in" $LOGURL ##图片URL地址格式 URL="http://192.168.0.162/zabbix/chart2.php?graphid=$GRAPHID&period=$PERIOD&width=1222" ##带cookie请求图片URL,并保存 curl -c cookie.txt -b cookie.txt --user-agent Mozilla/4.0 $URL > /home/zabbix_$GRAPHID.png
本文出自 “熊熊熊大” 博客,请务必保留此出处http://x1ong.blog.51cto.com/11055831/1790101