APP下载

煤矿自动化运维监控平台的设计与应用

2021-07-19高洪波

电脑知识与技术 2021年13期
关键词:监测预警自动化运维

高洪波

摘要:随着省级煤矿安全风险监测预警系统的全面建设,在煤矿企业和省级数据中心部署的服务器、数据库、网络交换设备越来越多,系统越来越复杂,给IT运维工作提出了更大的挑战。在内蒙古自治区煤矿安全风险监测预警系统中,基于Zabbix开源平台结合二次定制化开发成功实现了全方位一体化的自动化运维监控平台,实现了所有监控对象和事件的高效整合、实时报警推送和自动化故障恢复,有效地提升了运维工作的效率和质量。

关键词:运维;自动化;监控平台;监测预警;Zabbix

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2021)13-0207-04

Abstract: With the comprehensive construction of the provincial coal mine safety risk monitoring and early warning system, there are more and more servers, databases and network switching equipment deployed in coal mining enterprises as well as the provincial data centers, and the system is becoming more and more complex, which poses greater challenges to the IT operation and maintenance. In the coal mine safety risk monitoring and early warning system in Inner Mongolia, based on Zabbix open-source platform combined with secondary customized development, a fully integrated automatic operation and maintenance monitoring platform is successfully realized, which realizes the efficient integration of all monitoring objects and incidences, real-time alarm push and automatic fault recovery, and also effectively improves the efficiency and quality of operation and maintenance work.

Key words: operation; automation; monitoring platform; risk monitoring and early warning; Zabbix

1 背景

隨着全国煤矿安全信息化建设的推进,各省陆续通过建设省级煤矿安全风险监测预警系统全面掌握本省煤矿企业和重大风险情况,监测预警系统需要在煤矿企业部署大量前置数据采集设备,将煤矿各类主要监测数据采集至省级中心大数据平台,为日常监管监察、远程监察、后期多级数据分析和风险评估、执法监察和应急救援等工作提供数据支撑和技术手段。随着采集范围的不断扩大,前置采集服务器、网络设备以及中心大数据平台的服务器集群的规模也越来越庞大,系统也越来越复杂,为了保障整个系统的稳定运行,一套高效的自动化运维监控平台是必不可少的,本文将详细论述自动化运维监控平台的设计和实现。

2 内蒙古煤矿风险监测预警平台现状

内蒙古自治区煤炭资源极其丰富,辖区内煤矿500余处,是自治区的重要支柱产业,安全生产至关重要。目前通过部署在煤矿企业的300余套前端采集设备和中心端的大数据集群已经将煤矿的各类主要监测数据接入到了省级平台,由于接入数据的实时性和稳定性要求很高,需要7x24小时保证服务器、网络设备以及数据采集程序的平稳运行。平台中的服务器、网络交换设备等各类设备数量庞大,前置设备分散于煤矿企业的自建机房里,路途遥远交通不便,给现场运维带来了很大的困难;另一方面,各企业的机房条件千差万别,机房工作人员的技术水平参差不齐,平台部署后经常出现各种各样的故障,服务器CPU负载高,磁盘容量使用超过80%,内存使用超过阈值,系统进程多,tomcat服务宕机等,严重影响了平台的稳定运行。

为了解决运维工作的困境,我们基于开源监控系统并配合二次定制开发,建立了自治区煤矿自动化运维监控平台,高效整合关联了各类事件,实现了对服务器、网络交换设备、数据采集软件、定时任务及应用软件的自动化监控,取得了较好的效果。

3 自动化运维监控平台设计

3.1 平台选型

目前业界用于运维监控的系统种类繁多,主流的开源监控系统有:Zabbix、Nagios、Prometheus等,Zabbix 是一个开源分布式开源监控解决方案,它能够监控众多网络参数和服务器的健康度、完整性,通过对比发现Zabbix具备如下优势:

支持多种采集方式:支持Agent、SNMP、JMX、SSH等多种采集方式,以及主动和被动的数据传输方式。

扩展性强:支持Proxy分布式监控,有agent自动发现功能,插件式架构支持用户自定义数据采集脚本。

支持自动化告警消息推送:可通过配置将告警消息实时自动化推送给钉钉或企业微信等第三方商用办公系统。

产品成熟:拥有丰富的文档资料以及各种开源的数据采集插件,能覆盖绝大部分监控场景。

基于以上优势,我们选择Zabbix作为基础架构对煤矿自动化运维监控平台进行设计和实现。

3.2 总体方案架构

Zabbix平台主要由两部分组成:客户端的数据采集和服务端的数据存储分析。客户端的数据采集由部署在前置服务器上的Zabbix Agent模块实现;而服务端主要包括:WEB GUI、Database、Zabbix Server;另外,随着监控规模的增加,可以通过设置Zabbix Proxy模块来实现监控代理服务,通过proxy代理可以实现多节点、跨区域的大规模服务器集群监控。平台主要架构如图1所示[1-2]:

Zabbix主要模块如图2所示,每个模块工作职责如下[3]:

Zabbix Agent:部署在被监控设备上,负责将本地监控数据发往Server端或Proxy端;

Zabbix Server:部署在中心服务器上,负责接收agent发送的监控数据,所有配置,统计数据及操作数据均由其组织进行;

Zabbix Proxy:常用于分布监控环境中,代理Server收集部分被监控的监控数据并统一发往Server端;

Zabbix Database:用户存储所有配置信息,以及存储由Zabbix Server收集到的数据;

Web GUI:Zabbix的GUI接口,通常与Server运行在同一台主机上;

在监控处理服务端,为了避免服务器单点故障,确保平台的高可用性,我们搭建了基于多台服务器的分布式集群监控平台。整体部署架构如图3所示,主备机通过rsync+inotify实现文件同步,通过MySQL主主复制实现数据同步,同一时刻只有一台服务器能通过VIP(虚拟IP)对外提供zabbix服务,keepalived用来监控Zabbix Server进程和MySQL进程,一旦检测到主服务器挂掉后,从服务器会立即顶替。通过高可用集群的配置,提升了整个监控系统的高可用性[4]。

Zabbix支持多种监控方式,包括:Agent、SNMP、IPMI、ICMP等等。煤矿监测预警运维监控平台主要采用Agent监控方式,它会主动收集本机的监控信息并通过TCP协议与Zabbix Server传递信息,Zabbix Agent可以执行被动和主动两种检查方式:在被动模式中,agent只应答数据请求,Zabbix server询问agent数据,如CPU 的负载情况,然后Zabbix agent回送结果;而主动处理方式相对复杂, Agent必须首先从Zabbix Server端索取监控项列表以进行独立处理,然后周期性地发送新的值给Zabbix Server。本平台主要采取被动检查方式回送煤矿端的监测数据,一个完整的检查流程如下[5-6]:

1)Server 打开一个TCP連接

2)Server 发送 agent.ping\n

3)Agent 读取请求并响应

1

4)Server 处理数据以获取值,

5)TCP连接关闭

Zabbix 服务端收到数据,将数据存储到数据库MySQL中,用户基于Zabbix WEB可以看到数据在前端展现图像。目前实际监控的服务器数量还未满500台,基础的Zabbix Server + Agent架构尚可满足性能需要,未来随着被监控对象服务器的不断增多,为了减轻Zabbix Server端的压力,可使用proxy进行分布式监控[7-8]。

Zabbix Server和Zabbix Agent都部署配置完成之后,需要对所有的采集对象设备配置需要的监测内容和报警信息,配置流程如下[9-10]:

1)在Zabbix服务端的管理界面上添加所有监测对象设备,设置IP地址。

2)创建监控项,设置监控项的监测内容,比如CPU使用率等。

3)创建触发器,设置好需要的触发规则,当返回的检测值超过设置的阈值时将触发告警。

4)创建动作,针对不同的触发条件配置触发告警时的报警方式等。

5)创建各类统计图,运维人员可通过图形直观查看监控项的实时变化情况。

煤矿风险监测预警自动化运维平台中配置的主要监控项详见表1。

3.3 告警消息推送

如上节所述,当Zabbix监测到告警时,会通过各种方式进行消息报送,常用的方式有邮件或者短信。近年来,企业微信在日常办公中扮演着越来越重要的角色,使用普及率不断增长,因此我们使用zabbix结合企业微信作为主要的告警方式,这样可以及时有效地把告警信息推送到接收人的企业微信客户端,方便告警的及时处理。

首先在企业微信中创建独立的运维监控部门,将所有运维成员添加至该部门,以用于消息的统一发送;之后在“企业应用”中创建Zabbix告警应用,生成corpid、appsecret、agentid三个参数;接下来是在Zabbix Server端配置微信报警脚本,配置界面如图4所示。将微信企业号配置中获得的3个参数分别配置在脚本中。其中.corpid、appsecret用于获取accesstoken,agentid用于往应用发送消息。

4 应用效果

目前内蒙古煤矿监测预警自动化运维监控平台已经接入主机356台,监控项数量合计达到20697项,触发器数量合计达到6893项,取得了较为理想的应用效果。

4.1 高效的监控效果

监控平台将服务器、网络环境、数据库以及应用系统都纳入到了运维监控对象中,从企业端前置数据采集平台、中心端大数据平台以及云计算环境中实时采集所有的性能数据和异常事件,在统一的平台上高效整合集成,基于预先设置好的监控阈值和触发器及时生成告警信息,帮助运维人员迅速发现、定位并解决问题;同时通过Web仪表盘界面(图5)进行统一管理,使运维人员能及时全面地掌握煤矿监测预警平台各个环节的运行状况。

4.2 完善的报警机制

监控平台在邮件、短信等实时报警提醒功能的基础上,通过二次定制开发加入了企业微信联动报警机制,通过配置层级化的触发策略,根据不同等级的报警项,可将各类异常报警信息及时推送到有相关运维人员的企业微信上,有效提升了报警的时效性和针对性,实现了自动化运维。

4.3 故障的自动恢复

针对数据采集前置服务器上的各数据采集服务稳定性低,经常发生宕机现象等问题,制定详细的处理步骤,编写了自动故障处理脚本程序,并通过Ansible将所有的脚本程序批量部署到所有的前置服务器。利用Zabbix报警后执行远程命令的功能实现故障自动恢复,节省了大量的人力运维成本,降低了人为操作的风险,保障了运维业务的稳定性。

5 结束语

本文利用开源监控框架Zabbix配合二次开发实现了内蒙古煤矿监测预警平台的一体化全方位运维监控,可以对煤矿监测预警中的服务器、網络、数据库、应用程序等内容进行统一的监控管理、实时消息推送、自动化故障恢复,让运维工作人员能够及时迅速地发现故障、排查原因、解决问题,有效提升了运维工作的效率和质量。

参考文献:

[1] Zabbix.What Is Zabbix[EB/OL].[2020-08-20].http://www.zabbix.com/product.

[2] Zabbix.Zabbix Overview[EB/OL]. [2020-08-20].https://www.zabbix.com/documentation/3.0/manual/introduction/overview.

[3] Silver T M.Monitoring network and service availability with open-source software[J].Information Technology and Libraries,2010,29(1):8.

[4] 吴兆松.Zabbix企业级分布式监控系统[J].北京电子工业,2014(8):2-6.

[5] 周萌,林国策,杨厚云.CentOS下ZABBIX的配置与使用[J].北京信息科技大学学报(自然科学版),2015,30(1):90-94.

[6] 赵哲,谭海波,赵赫,等.基于Zabbix的网络监控系统[J].计算机技术与发展,2018,28(1):144-149.

[7] 王磊,刘晗,董珊.一种Zabbix代理服务器的设计与实现[J].通讯世界,2016(11):91-92.

[8] 陈诚,洪生,于业松,等.基于开源软件zabbix监控系统的应用研究[J].计算机产品与流通,2018(10):32.

[9] 李朝阳.利用ZABBIX进行系统和网络管理[J].计算机时代,2008(10):19-22.

[10] 杨豪,吕海明.Zabbix系统在联网视频监控平台中的应用[J].信息通信,2014(10):86-87.

【通联编辑:谢媛媛】

猜你喜欢

监测预警自动化运维
运维技术研发决策中ITSS运维成熟度模型应用初探
基于ITIL的运维管理创新实践浅析