Zabbix报表系统
Posted 老张监控技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix报表系统相关的知识,希望对你有一定的参考价值。
Zabbix监控资源之后,常需要对资源的的监控数据进行导出,制作成为报表,如周报,日报等形式,目前zabbix还未自带报表功能。近期学习go语言,开发了一个简单的Zabbix报表工具。
在线试用
https://zbx.cactifans.com
直接点登录即可
系统截图
主机列表
数据导出
报表展示
导出到Excel
告警列表
告警统计
告警导出到Excel
基本情况
后端:go (beego web框架 https://github.com/astaxie/beego )
前端:vue (elment ui https://github.com/PanJiaChen/vue-admin-template)
绘图:Echart https://echarts.baidu.com/
Zabbix API: https://github.com/AlekSi/zabbix
数据库:mysql 5.6
基本功能
1.可导入Zabbix监控的服务器(目前是Linux&Windows)的CPU空闲率/内存Free空间/磁盘可用空间/网络流量,导出到Excel
2.根据历史告警信息生成Top10 告警主机,生成不同等级告警分类
3.根据主机名查询历史告警
开发思路
历史数据获取
1.基于Zabbix API,通过调用Zabbix API的 hitory.get/item.get获取指定指标的itemid。
根据hostid和item key获取items具体信息
par := make(map[string]string)
par["key_"] = key
rep, err := API.Call("item.get", Params{"output": "extend", "sortfield": "name", "limit": "1", "hostids": hostid, "search": par})
2.根据itemid信息通过trend.get接口获具体指标的历史详情数据及趋势数据。
根据itemid获取item的趋势数据,limit为输出条数
par := []string{"itemid", "clock", "num", "value_min", "value_avg", "value_max"}
par1 := []string{itemid}
rep, err := API.Call("trend.get", Params{"output": par,
"itemids": par1, "limit": limit})
3.通过Echart绘图并导出到Excel报表
历史告警获取
历史告警通过zabbix的告警脚本功能发送到平台,解析之后存入数据库,进行分析
后续计划
目前还有平台功能较弱,后期打算新增以下功能:
1.支持导出任意监控指标的报表信息
2.支持导出历史详情信息,以监控指标采集周期为间隔
3.定制导出某Linux或windows机器的基本指标到一个Excel,包括机器CPU/内存/磁盘/网卡流量
4.Top支持导出到Excel
5.其他暂时没想到….
关于源码及使用
由于本人正在学习go语言及vue,其代码质量太差,基本可以用下图来形容我的代码(真实合理)
点击【阅读原文】查看全文
欢迎在下方留言,提出合理建议及需求。
以上是关于Zabbix报表系统的主要内容,如果未能解决你的问题,请参考以下文章