重庆市气象信息与技术保障中心 李文钊 赵芳 杨永毅 赵思亮
通过对JSON-RPC通信协议和Grafana的研究,提出一种脱离Zabbix主体(Zabbix Server+Zabbix Agent)与Grafana独立交互数据的方法,并详细介绍了数据交互的格式及其交互过程,实现对任意数据的Grafana可视化展示。
Grafana是一款开源数据可视化工具,它可以将枯燥的数据通过美观、直接的图形、图表等形式展现出来,同时还提供了对数据的监控、统计和告警等功能,可以说是目前最完美的数据可视化工具之一[1]。它是通过Go语言开发,用户层面想开发这样的数据可视化工具非常困难,即使直接使用它,也需要对Go语言有极其深入的了解。Grafana可以为多种数据源提供丰富的插件,使得用户不需要了解Go语言,只需知道插件对应的设置规则,就可以方便的使用它。
Zabbix是一个企业级分布式开源监控解决方案,也是当前使用最普遍的监控系统之一[2]。Grafana为Zabbix提供了数据源插件,Zabbix用户可以非常方便的通过Grafana显示数据。然而,对于Zabbix Agent不支持的数据(任意数据),要想完成数据在Grafana的显示就特别麻烦,除了要依托庞大的Zabbix服务器系统外还需要通过Zabbix API编写相应的通信程序或者编写相应通信脚本才能实现。实际上,有些数据在监控系统中并不参与控制,仅仅是为了显示(可视化)而已。能否不通过Zabbix主体系统让Grafana直接显示想要可视化的数据成为我们研究的重点问题,本文正是针对这一问题,提出一种可以脱离Zabbix主体让Grafana独立显示数据的方法。
Zabbix数据源插件是Grafana公司开发针对Zabbix的基于JSON-RPC规范的通信接口,是Grafana和Zabbix之间交互的桥梁。……