朱晓伟 刘迪 胡迅 黄争舸
摘 要:随着勘察设计企业信息化的不断发展,网络服务器系统软硬件架构也日益复杂,企业面临着大量的应用程序、服务器、网络设备等的监控运维问题。为此,基于Zabbix开源平台构建了适合企业一体化信息体系现状的监控运维系统,实现了对企业各类软硬件的实时监控和故障报警,大大提高了运维效率,降低了运维人员的工作复杂度。
关键词:实时监控;Zabbix;Grafana;自动化运维;勘察设计行业
中图分类号:TP39 文献标识码:A 文章編号:2096-4706(2023)01-0102-05
Research and Application of Monitoring Operation and Maintenance System
Based on Zabbix in Survey and Design Industry
ZHU Xiaowei, LIU Di, HU Xun, HUANG Zhengge
(The Architectural Design & Research Institute of Zhejiang University Co., Ltd., Hangzhou 310028, China)
Abstract: With the continuous development of informatization in survey and design enterprises, the hardware and software architecture of network server system is increasingly complex, and enterprises are faced with a large number of monitoring operation and maintenance problems of applications, servers, network equipments, etc. Therefore, based on Zabbix open source platform, a monitoring operation and maintenance system suitable for the status of enterprise integrated information system is constructed, which can realize real-time monitoring and fault alarm of various software and hardware of enterprises, greatly improve the efficiency of operation and maintenance, and reduce the work complexity of operation and maintenance staff.
Keywords: real-time monitoring; Zabbix; Grafana; automatic operation and maintenance; survey and design industry
0 引 言
随着勘察设计行业各大企业信息化建设的高速发展,在近几年,行业大部分企业已经从原来的几乎没有管理系统,进入到信息管理系统全面开花阶段,企业IT基础架构规模也在不断扩大。网络设备、服务器、存储、业务系统、数据库、企业云等软硬件设备的纷繁复杂,以及员工对于IT业务服务的高可用性需求,使得运维工作压力加大,传统的运维方式已经无法满足保障生产业务系统的稳定运行,存在以下不足:
(1)机械式的监控,人工巡检效率低下。
(2)不够精确的监控,复杂IT元素难以有效监控。
(3)传统运维工具单一分散,无法集中管控。
(4)运维人员无法做到24小时不间断监控。
(5)缺少自动化或自服务,从发现问题到解决问题的时间周期长。
监控是整个运维过程乃至整个产品生命周期中非常重要的一环,应事前能够及时预警发现故障,事后可以提供翔实的数据用于追查和定位问题。
没有监控系统,IT部门将无法全面地了解企业各类系统的运行环境,进行故障诊断,也无法向企业管理层提供系统性的IT架构性能、成本和状态等信息。当前行业企业普遍现状是在缺少告警机制的情况下,企业无法第一时间洞悉到系统发生故障,往往只能通过被动的用户反馈来获取。系统运维人员大多数时候也只是充当了“救火”人员,大面积的系统或网络瘫痪会给企业和用户带来极大的损失。通过企业监控运维系统,企业可以在系统受损的第一时间得到反馈,并及时对问题进行处理,大大减小系统故障给企业和用户造成的影响,甚至可以做到无感知的修复。而且相比于运维人员去多个管理界面查询发现问题,入口统一到一个监控运维平台更能快速定位问题所在,提升工作效率。
另外,数字化转型已经成为国家战略、城市战略,也是勘察设计行业转型升级的重要方向。目前设计院的数字化转型,整体上仍处于初级阶段。数字化生产服务模式、数字化管理系统、数字化业务模式等是推动数字化转型发展的几个重要方向,而数字化监控运维系统正是数字化管理系统的重要组成部分。
鉴于此,构建数字化监控运维系统势在必行,不仅是企业规模发展到一定阶段后所必需的,也是响应国家战略方向的重要之举。
工欲善其事必先利其器,善于利用各种工具是推进企业数字化的重要手段。选择监控工具的原则是根据企业具体业务场景、IT架构进行选择,而不是盲目的追求新的、热度高的工具。工具的选择一般有三种模式:
(1)购买商业软件。
(2)第三方公司外包。
(3)开源工具结合自主开发。
出于成本、时间、风险的考虑,又因为笔者所在企业的信息技术部门具有一定的自主研发能力,我们选择第三种模式来构建企业监控运维系统。
为了构建监控运维系统,实现对服务器、存储、网络、应用程序、服务、集群等的监控,及时对发生的故障和问题进行告警通知,减少运维人员的工作压力,本文基于Zabbix和Grafana两大流行的开源系统,设计了面向勘察设计企业的监控运维系统。
1 系统体系结构
1.1 应用背景
在选择具体的监控平台之前,我们最先需要明确,我们监控的目标是什么,也就是我们应该监控什么,以及是用什么样的工具、技术来实现对这些指标的监控。本文从搭建通用的监控运维系统开始,结合勘察设计行业的行业特征,全面的分析监控目标和内容指标,以浙江大学建筑设计研究院有限公司(UAD)为例,针对如何构建企业监控运维系统进行研究与应用。
在搭建这套监控运维体系之前,UAD已经构建了一套面向勘察设计行业的一体化信息体系,其中集成了大量的软硬件系统,使其作为一个有机整体对外提供服务,用以满足企业的全方位需求。如图1所示,体系分为两层结构,上层为各类应用软件系统,为企业用户提供应用支持;下层为IT基础设施支撑层,由传统IT基础设施和企业私有云混合而成,用以保证用户快速便捷地访问和使用上层的应用系统。
UAD的一体化信息体系是一个集约型的信息体系,它能够整合不同的系统或资源,涵盖多种关系并能在统一的构架下运行,是一个软硬件互为支撑的体系[1]。拥有各类物理机和虚拟化服务器约80多台,交换机等网络设备50多台,支撑企业办公、设计出图、市场运营、教学科研、图档管理等30多个业务系统及网站。业务复杂,出现故障后人工排查困难,运维人员工作枯烦琐且忙碌,经常因不能及时处理故障遭到员工的抱怨,极大影响了员工对于UAD信息化建设的认同感和体验。
基于这些情况对已有的开源工具进行调研和比较,对市面上的监控开源工具进行比较,如表1所示。相较于Nagios、Cacti、Prometheus等使用最为广泛的开源监控系统,Zabbix无论在代码熟练度、源代码质量、系统架构,还是用户友好性、面向对象理念等方面都具有相当优势[2]。因此,本文最终选择Zabbix作为本运维监控平台的基础进行设计,并选择Grafana作为可视化展示平台,不用Zabbix自带的UI模块,目的是为了更好地展示,在充分利用Zabbix在监控方面的优势的同时,弥补Zabbix在UI方面的不足。
綜上,为了达到提高运维效率、节约人力资源的目的,我们通过Zabbix和Grafana这套监控体系,根据前端实际生产应用情况完成大数据监控,进行大体系的实时监控、预警和统计分析,及时发现问题并做出快速响应,保证整个体系运转正常。
1.2 整体架构
在IT架构方面,UAD为了物理容灾,把服务器架在主院区和分院区的两个机房中。由于一台Server主机(Zabbix Server)的CPU、内存都是有限的,监控的内容越多,损耗它的资源也越多,故在系统搭建架构方面,我们在两个院区各自放一台代理监控服务器(Zabbix Proxy),由它来进行监控。Zabbix Proxy是Zabbix Server与Zabbix Agent之间沟通的一个桥梁,Zabbix Proxy本身没有前端,而且其本身并不存放数据,只是将Agent发来的数据暂时存放,而后再提交给Zabbix Server[3]。如图2所示,是Zabbix的监控流程图。其中主机是指被监控的设备,监控项是指被监控的主机特定监控指标数据,触发器可以看作是一个控制中心,用于评估监控项的值是否在合理的范围内,它会设定一个条件,当监控项中接收到的数据达到预设的条件时,便会执行相应的动作(如企业微信报警或执行特定脚本对问题进行告警或自愈等)。
最后Zabbix Web界面负责统一表现出来,运维管理员可以通过电脑或移动端访问,充分体现分布式监控集中化管理的特性。整体架构图如图3所示。
1.3 开发技术
Zabbix是一个基于Web界面的企业级监控解决方案,并且是一个高度集成的开源分布式网络监控解决方案[4]。全球各行各业各种大小规模的组织机构都有选择Zabbix作为主要的监控平台,尤其是互联网企业。
Zabbix拥有很多优秀的特性,正是这些特性,让它可以实时监控数万台设备,采集百万级指标,真正做到全方位监控,是适用于绝大多数IT基础架构、服务、应用和云资源的监控解决方案,可以监控的内容包括服务器监控、网络监控、应用监控、云监控、服务监控等。
Grafana是一个跨平台的开源度量分析和可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,可对采集的数据查询和可视化展示,并及时通知。虽然Zabbix自5.4版本之后新增了强大的UI特性,但是Grafana的UI更加灵活,拥有丰富的插件,功能强大。随着业务的愈加复杂,对软件系统的要求越来越高,这意味着我们需要随时掌控系统的运行情况。因此,对系统的实时监控以及可视化展示,就成了基础架构的必须能力。
综上,Zabbix具备较完善的监测告警系统模块,Grafana则提供了可配置的监测数据可视化能力。因此本文方案将以Zabbix为核心,集成Grafana,再补充关键监测数据采集能力,最终实现满足企业实际需要的监控运维系统。
2 系统总体设计与实现
UAD的一体化体系分两层结构:上层是各种应用系统,直接面向企业用户;下层则是基础设施支撑平台,由传统IT架构和企业私有云混合而成。
本系统通过Zabbix支持各类监控方式,对各层资源进行监控,具体如图4所示。
基础层:主要偏硬件、监控主机和底层资源。比如CPU、内存、网络吞吐、硬盘I/O、存储等。
中间层:包括Nginx、Redis、MySQL、Tomcat等。
应用层:HTTP访问的吞吐量、响应时间、返回码、调用链路分析、性能瓶颈、API,还包括用户端监控等。
不同的监控内容需要不同的监控方式来获取监控数据,如表2所示。
2.1 基于SNMP协议对设备的监控
勘察设计企业组网中常见的几类设备有边界核心交换机、汇聚交换机、接入交换机、路由器、UPS、存储等,这类设备不能或者不方便在目标监控设备上安装Agent代理程序进行获取,Zabbix允许我们通过SNMP(简单网络管理)协议获取这些设备的CPU使用率、内存使用率、供电、设备温度、端口进出流量等监控信息。
UAD一体化信息体系使用了各种类型的存储,包括廉价的SATA、高性能EMC、NAS等,存放了企业最重要的数据。在数据中心中,存储设备是非常核心且关键的基础设施,任何一个相关告警都会让运维人员警觉。在推进Zabbix存储监控的过程中,一个非常棘手的困难点是存储不单单是硬件设备,SNMP协议不能获取到带内的性能信息,但也不像主流操作系统那样可以安装Zabbix Agent来做数据采集。
对于这种问题的处理,我们积累的经验是:首选使用RESTful等外部接口来获取监控数据,在不支持此条件的情况下,在Zabbix Proxy服务器上通过自定义监控封装厂家推荐工具或方法来监控,避免对重要设备的侵入,同时相关的存储告警也能够及时触发,并帮助存储管理人员迅速发现问题、定位原因。
2.2 Windows服务器的监控
UAD目前服务器主要以Windows为主,占比在90%以上,是各类业务系统的主力承载者,故急需实时监控以保障它们的稳定运行。在操作系统层面,经常会出现的问题有系统假死无响应、存储空间不够等,因此需要监控的指标项包括CPU使用率、内存使用率、硬盘资源使用率等。
Zabbix默认使用Zabbix Agent监控操作系统,且它已经为我们配置好了很多用于监控主机的模板,包括CPU监控、内存监控、系统进程监控、系统时间监控、磁盘读写监控、磁盘容量监控、网卡流量监控、服务监控等,其内置的监控项可以满足系统大部分的指标监控,监控内容非常丰富。但是有时候,我们并不需要监控那么多内容,只需要监控某一些特定信息即可。因此,我们的解决方案是:根據企业实际情况,使用Zabbix默认的操作系统模板监控相应的主机,通过进行一些优化来确保达到最好的监控效果,同时兼顾Zabbix对系统性能的开销。
Zabbix对Windows系统监控的默认模板包含了11个应用集,各个应用集又包含了不同的监控项。在本系统搭建过程中,一块很重要的工作就是针对行业业务管理系统的特点和需要,在现有模板的基础上对应用集、监控项、触发器和图形进行定制化增删改。
以CPU的监控项为例,模板默认有8个监控项,在对5个监控项设有触发器。如图5所示。
可以看到,Zabbix未提供能查看CPU使用率的监控项,也就是CPU使用的百分率,在实际应用时,这个指标是十分受关注的,因此需新创建一个监控项,并对这个监控项创建一个触发器,如CPU使用率过高(比如5分钟均值大于90%),其表达式为:
{Windows Server Model:cpu_time.avg(5m)}>90
当实际运行情况达到上述条件时,Zabbix就会发出告警。
2.3 基于性能及进程的Web系统监控
UAD的一体化信息体系中有着30多个不同的Web业务系统,其中企业综合信息管理平台是最重要的Web系统,涵盖了企业设计生产全过程数字化的各个环节,保证其Web服务的高可用性和高性能,是企业正常运转的重要前提。
HTTP状态码、响应时间、页面加载速度是最能直观反映Web服务可用性和性能的3个指标。基于这三个指标,本文从一个或多个应用中自定义选取域名/URL组合成模块,可实现方便快捷的自定义关注某一业务、某一域名、某一子域名,以及由此推测某一功能模块下的页面用户体验。
对于运行在一体化信息体系应用还需要监视常用的中间件,如有Oracle、MySQL、SQLSERVER等主流的关系型数据库,还有像Redis、Neo4J这样的NoSQL数据库,Tomcat、Nginx等Web容器的性能。
数据库以MySQL为例,MySQL数据库是目前主流的关系型数据库管理系统应用软件。本系统将使用Agent 模式对Zabbix默认的监视进行扩展。Agent将会对MySQL3306连接线程的存活状态、主从延时、连接池状态、平均TPS/QPS、慢SQL语句个数等进行监视,如图6所示。
Web容器以Tomcat为例,由于Tomcat Web应用容器是基于JAVA语言开发的,Zabbix支持以JMX对其性能进行监视。通过JMX监视,可以监视到Tomcat服务占用CPU的情况、Tomcat网络进出流量、内存分配情况、请求数、并发线程数量等。
2.4 工地设备监控
随着数字化、大数据、互联网、物联网等信息技术的发展,近年来智慧工地这一概念在业界崭露头角,在工程建设中得到良好的实践应用[5]。智慧工地应用的设备种类繁多,专业性强,目前缺乏整体的自动化监控手段[6]。目前这块内容由于要和具体的工程项目对接,本系统只对少数的项目设备进行了监控。如浙大科创项目中监控的设备包括:环境采集(传感器)设备、塔吊设备、无人机设备、闸机设备、各点位摄像头等。
3 Grafana接入Zabbix数据源
在大屏监控展示的时候,我们会发现Zabbix Web界面显得没有科技感,不够高端,这时候我们可以通过Grafana来优化我们的Zabbix Web界面。
Grafana的搭建步骤相对简单,主要分以下3个步骤:
(1)在一台CentOS上部署Grafana。
(2)安装Grafana连接Zabbix的插件。
(3)Grafana与Zabbix整合。
本系统从广度和深度对监控数据可视化展示,根据实际的监控可视化需要,在Grafana上配置了全局、应用、主机、主机服务等多个维度的监控仪表板,方便运维人员从多个视角掌握监控、告警情况,实现对主机的集中监控[7]。图7是某个业务服务器的关键监控指标。
4 企业微信告警模块
告警功能是Zabbix监控平台的重要组成部分,便于运维人员在系统出现故障时及时知晓,并第一时间处理[8]。企业微信是UAD一体化信息体系的重要组成部分,应用十分广泛,Zabbix默认只支持邮件的方式进行告警,本系统通过编写接入企业微信的脚本,将告警信息通过企业微信进行发送。根据业务的类型,我们对不同监控模块的告警通知,设置了不同的运维人员,以企业微信应用作为载体,将告警信息推送到具体的运维人员。这既保证了消息推送的时效性,又保证了告警通知信息不外泄,兼顾了信息的安全性。实际运行情况如图8所示。
5 结 论
本文基于Zabbix设计了一套面向勘察设计行业的企业监控运维系统,能够对企业一体化信息化体系中的网络通信设备、物理服务器、虚拟服务器、私有云,以及运行在其上的各类软件应用系统进行实时监控。系统在运行期间成效显著,帮助运维人员快速定位发现问题,降低了运维的难度和风险,提升了运维服务质量,保障了企业一体化信息体系的稳定性和可用性。
在今后的工作中,我们将继续从广度和深度方面还将进一步拓展监控系统,希望在监控的种类、指标项的优化、丰富其他报警手段、完善的系统账户配置、自动修复、基于Zabbix API的二次开发等方面做进一步提升,推进企业智能化运维的大力发展。
参考文献:
[1] 黄争舸,胡迅,朱晓伟,等.一体化信息体系助力设计院快速提升企业效能 [J].中国勘察设计,2019(7):56-61.
[2] 杨立苑,胡佳军,邓卫华,刘喆玥.基于Zabbix的省级气象云监控运维系统 [J].计算机系统应用,2021,30(8):73-80.
[3] 吴秉羲,李明峰.基于Zabbix和Grafana的苏州台媒体云监控系统 [J].广播电视网络,2020,27(3):111-112.
[4] 吴夫丹.基于云平台的服务器监控系统设计 [D].西安:西安工业大学,2014.
[5] 乔妹莉.浅析智慧工地建设对项目管理的积极作用 [J].建设监理,2021(7):60-62.
[6] 韩啸虎,陈超.智慧工地设备运行状态自动化监控的解决方案研究 [J].电子元器件与信息技术,2020,4(5):70-71.
[7] 潘少博,张和,戴谊.基于Zabbix+Grafana构建微服务自動化监控运维平台 [J].网络安全和信息化,2020(10):77-79.
[8] 刘远超,李树彬.基于Zabbix和微信企业号实现网络监控的研究 [J].山东科学,2017,30(4):124-130.
作者简介:朱晓伟(1989—),男,汉族,浙江海盐人,室主任助理,硕士,研究方向:计算机应用、数据集成、协同设计;刘迪(1985—),男,汉族,湖南澧县人,中级工程师,本科,研究方向:虚拟化、私有云;胡迅(1983—),男,汉族,浙江诸暨人,副高,硕士,研究方向:协同设计;黄争舸(1969—),女,汉族,浙江绍兴人,研究员,博士,研究方向:协同设计、管理信息系统、三维数字化设计。
收稿日期:2022-08-18