谢超群
(福建中医药大学 现代教育技术中心,福建 福州 350000)
摘 要: 随着高校数据中心信息化的不断深入,学校面临着各种数量众多的服务器和网络设备的运维监控的问题。结合高校数据中心的面临的现状,本文提出了一种基于zabbix的高校数据中心运维监控平台,并利用开源可视化组件grafana建立了监控平台的可视化面板。
关键词: Zabbix;Grafana;数据中心
中图分类号: TP391.1 文献标识码: A doi:10.3969/j.issn.1006-2475.
Research on the Construction of Data Center operation and monitoring Platform in Universities based on Zabbix
XIE CHAO QUN
( Modern Educational Technology Center,Fujian University of Traditional Chinese Medicine , FuZhou 350000 , China)
Abstract: With the deepening of informatization in the university data center ,Universities are faced with the problem of operation and maintenance of a large number of servers and network devices. According to the present situation of the university data center, this paper proposes a Zabbix based data center operation and maintenance monitoring platform, and uses the open source visualization component Grafana to establish a visual panel of the monitoring platform.
Key words: Zabbix;Grafana;DataCenter
1 引言
随着高校信息化的不断深入,学校数据中心的各种服务器和网络设备数量越来越多,各种异构的信息系统也是层出不穷,原有的高校数据中心的监控方式存在以下的问题:
1.数据中心各种设备的监控方式不同,需使用各自的专用软件才能监控,无法在统一的平台上实现的监控。
2.数据中心各种信息系统架构不一致,监控的接口不同,不能在一个统一的平台上监控各个信息系统的运行状态。
3.数据中心各种收集的监控数据无法实现在统一的平台上进行可视化分析和展示。
基于以上高校数据中心监控平台面临的问题,利用开源数据中心监控平台zabbix实现对各种异构设备和信息系统的统一监控,再结合开源可视化组件grafana实现对zabbix收集的各种监控数据的可视化展示和分析。
2 Zabbix开源运维监控平台简介
Zabbix是一款由开源社区维护的数据中心设备及各种信息系统监控的开源监控平台,Zabbix主要由Zabbix Server, Zabbix Agent, Zabbix Web, Zabbix Proxy,Zabbix Java Gateway等组件组成。Zabbix Server是Zabbix的服务端,利用高效的C语言编写,主要功能是在服务器上开启多个采集进程,获取Zabbix Agent客户端发送的各种数据中心设备的监控数据,并存储在Zabbix的数据库中。Zabbix Server支持各种主流数据库存储收集的监控数据,如 MySQL、PostgreSQL、Oracle 或 IBM DB2等[1]。Zabbix Agent是收集监控数据的客户端,它可以安装在Windows,Liunx等各种操作系统上来收集主机的CPU负载、内存、磁盘IO、网络流量等各种监控数据,在无法安装Zabbix Agent的网络设备上可以开启SNMP来对网络设备进行状态监控。Zabbix Web是Zabbix的前端管理界面,基于高效的PHP网页语言编写,其主要功能是可以对监控平台的数据进行展示,并可以对监控的各种参数和模板进行配置[2]。Zabbix Proxy是代理Zabbix Server收集监控数据的中间组件,当Zabbix监控的设备和服务数量过多时可以采用分布式部署的方式,这时可以利用多个Zabbix-Proxy收集监控数据后,定期发送到Zabbix Server来减轻Zabbix Server服务器的负载压力。Zabbix Java Gateway是一个充当监控Java运行性能的网关,可以用来监控基于Java开发的信息系统的运行性能,将收集的Java监控数据定期发送到Zabbix Server。Zabbix还可以自定义监控项,结合Zabbix Agent UserParameter的设置,可以实现对常用应用服务如Apache,Nginx,Mysql等应用服务的监控。Zabbix还包括完善的报警机制,可以与第三方平台报警平台对接,如可以接入微信公众号,短信等各种信息推送平台[3]。Zabbix的体系架构图如图1所示:
图1:Zabbix体系结构图
3 Grafana开源数据可视化工具简介
Grafana是利用JavaScript开发的强大的监控数据可视化工具,可以对接各种数据源如 InfluxDB, OpenTSDB, Prometheus,Zabbix, Elasticsearch等,同时也支持各种美观易用的图表展现形式,如折线图、散点图、饼图、表格等,图表支持多Y轴、阈值告警对接邮箱、对数刻度等多种功能。当Grafana所提供的图表不满足要求时,还可以自定义模板来开发符合要求的数据展示图表。Grafana可以针对监控主题使用Dashboard对某一个主题的图表进行集中展示,在Dashboard里可以轻松拖拽改变图表的位置和布局,并可以通过图表的tag快速对图表进行定位和编辑。Grafana的Dashboard可以通过导出为Json文档,快速保存、复制,并可以通过Dashboard的在线模板库选取符合要求的Dashboard模板[4]。
4 数据中心监控平台的建设研究
随着高校数据中心信息化服务的不断深入,数据中心的设备和应用服务增长迅猛,实现在统一的监控平台监控这些设备和应用服务成为了摆在高校数据中心工作人员面前的一个急需解决的问题。高校数据中心需要监控的对象可以分为以下几类:一是数据中心的网络设备的监控,可以采用开启网络设备的SNMP功能,同时配置Zabbix的SNMP监控项来采集网络设备的监控数据。二是数据中心服务器硬件的监控,可以开启服务器主板的IPMI功能,并配置Zabbix IPMI监控接口来收集硬件的各项数据如温度,硬盘故障情况等。三是数据中心实体服务器的监控,这些服务器可以通过安装Zabbix Agent并配合Zabbix内置的Linux与Windows的监控模板的配置,来收集主机的CPU负载、内存、磁盘IO、网络流量,运行进程数等各种数据[5]。四是数据中心虚拟机的监控,Zabbix内置了VMware的虚拟机监控模板可以结合该模板通过VCenter 远程SDK来直接采集Vmware虚拟机的CPU负载、内存、磁盘使用情况等各种运行信息。五是数据中心Web服务的监控,高校数据中心常用的Web服务有Apache,Nginx等,监控此类Web服务可以编写客户端执行的采集shell脚本,并配合Zabbix配置自定义Web监控项,来采集Web应用的各项性能数据。六是数据中心数据库的监控,高校数据中心一般常见的数据库有mysql,oracle等,这些数据库可以直接在Zabbix配置相应的内置监控项,并通过Zabbix的监控接口来实现对数据库运行状态,运行性能等数据的采集。七是对基于Java的应用服务的监控,高校数据中心常见Java应用一般以tomcat为主,要收集此类监控数据需要安装Zabbix Java Gateway,并开启监控端的JMX协议,最后在Zabbix Server上配置JMX监控模板就可以实现Java应用程序的监控[6]。
基于上述Zabbix对高校数据中心的各种对象的监控方法,基本可以实现对数据中心绝大多数需要监控的对象的统一监控。Zabbix的数据可视化能力比较弱,虽然Zabbix也提供了各种图形可视化功能,但是图表的美观度和种类比较少,不能满足高校数据中心监控平台的可视化要求。Grafana是利用JavaScript开发的强大的监控数据可视化工具,可以利用Grafana来对接Zabbix的监控数据源,来对Zabbix采集的各种数据进行展示和分析。通过安装Grafana的Zabbix的plugins,可以直接对接到Zabbix的数据源,然后通过自定义数据中心的每一种监控对象的Dashboard模板,来实现对数据中心每一类对象监控数据的可视化展示。以数据中心虚拟机的监控模板的Dashboard创建为例,先基于数据源的各种监控变量如CPU使用量,内存占用量,网络IO流量,磁盘读写情况来设置各种Dashboard的相应的Panel,如CPU使用情况图,内存占用率图,网络IO图等,再将设置好的panel布局组合成数据中心虚拟机监控的Dashboard,在此Dashboard中可以对数据中心的各项关键指标进行监控。其他数据中心监控对象的Dashboard都可以按照这个流程来进行创建[7]。数据中心虚拟机Dashboard的效果图如图2所示:
图2:数据中心虚拟机监控Dashboard
由于高校数据中心设备和各种应用服务众多,该数据中心运维监控平台建议采用分布式的部署方式,具体部署方法如下:Zabbix server是采集监控数据的核心组件,为保障其可靠性采用二台服务器作为Zabbix server HA集群来作为server收集各中监控端发来的数据,一台服务器作为Zabbix web作为zabbix的前端来对zabbix进行配置和管理。为防止单点故障和保障数据可靠性,二台服务器安装mysql 负载均衡集群,作为zabbix server存储监控数据的后端数据库。二台服务器作为Zabbix proxy用来中转Zabbix agent发送的数据,一台部署在学校主校区机房,一台部署在分校区机房,分别收集各个区域的监控对象的数据,减轻Zabbix Server直接搜集监控数据的压力。Grafana采用一台服务器进行安装,作为数据中心监控平台的前端可视化服务。数据中心的各个监控对象,可以按照之前所定义的分类分别进行相应的配置,来收集各种对象的监控数据[8]。高校数据中心运维监控平台架构图如图3所示:
图3:高校数据中心运维监控平台架构图
综上所述,通过上述架构建立的监控平台基本可以实现对高校数据中心各种监控对象的状态数据收集和可视化展示,能解决高校数据中心设备和信息系统监控所面临的难题,提高高校数据中心的运维效率。
5结束语
Zabbix是一种可以对各种数据中心监控对象进行状态数据收集的监控平台,它具有多种常见数据中心监控对象的监控能力,并可以自定义监控脚本和监控项对监控对象的类型进行扩展,结合Grafana强大的可视化功能所建立的开源数据中心监控平台,适合高校数据中心的各种监控场景,能解决高校数据中心运维监控效率低下,监控对象类型少,监控数据可视化程度低等问题,为高校数据中心提供效率高,可视化程度高,低成本的数据中心运维监控平台。
参考文献:
[1] Zabbix: An Enterprise-Class Open Source Distributed Monitoring Solution. Vladishev A. http://www.zabbix.com .2007
[2] 基于Zabbix的分布式服务器监控应用研究[J]. 郭晓慧,李润知,张茜,王宗敏. 通信学报. 2013(S2).94-98
[3] 基于Zabbix和微信企业号实现网络监控的研究[J]. 刘远超,李树彬. 山东科学. 2017(04).124-130
[4]Grafana Documentation V5.2.http://docs.grafana.org/ .2018
[5] 基于Zabbix的云监控系统的设计与实现[D]. 杨磊.电子科技大学 2017
[6] Zabbix企业级分布式监控系统[M]. 电子工业出版社 , 吴兆松, 2014
[7]Grafana-Zabbix Documentation.http://docs.grafana-zabbix.org/.2017
[8] CentOS下ZABBIX的配置与使用[J]. 周萌,林国策,杨厚云.北京信息科技大学学报(自然科学版). 2015(01).90-94