省级气象机房动环监控系统的设计与实现
2022-11-24白铁男唐维尧金石声谭海波
白铁男,唐维尧,金石声,鲁 霞,谭海波
(贵州省气象信息中心,贵州 贵阳 550002)
0 引言
随着气象信息化建设的推进,信息机房作为气象业务后台支撑的核心组件[1],担负着气象数据传输、处理、共享和加工等重要工作,因此对机房运行状态的监控成了气象信息技术人员广泛关注的问题。传统的机房巡检靠人工定时对供电状态、空调状态、温湿度等进行检查并记录,既浪费人力又不能做到全天候监控[2-4],一旦出现突发性事故,难以及时发现并解决问题,无法满足气象现代化对运行保障的要求[5-6]。为解决上述问题,通过微模块机房动环系统,实现对机房环境、空调和供电等信息的实时采集和入库,再通过对接Zabbix系统,将数据库的告警信息实时展示出来,从而实现机房动环的实时监控告警。
1 系统构架及原理
机房动环监控系统由采集层、传输层和监控层组成[7]。采集层的功能是通过传感器将感知到的温湿度、空调状态和供电状态等智能数据传递到基于Linux系统的采集设备中,通过协议类型转换向下层设备返回数据。传输层通过核心交换机、串口等传输设备向采集层请求数据并将返回的数据返回给下层设备。监控层将上层返回的数据转换成具体的信息并存储到SQL Server数据库中。机房动环监控系统原理如图1所示。
图1 动环监控系统原理图
Zabbix作为开源构架的监控系统,在各大企事业单位拥有广泛的应用,其安装包可在官方网站免费下载,且安装方法便捷。在任意已开通内网的服务器上开发定时Python脚本,其功能是连接SQL Server数据库并将需要的信息采集出来写入日志文本中。Zabbix系统内建有SSH远程协议,可通过密码远程登录到服务器,在指定的目录下读取日志文本中的信息,并将这些信息在前端界面展示出来,实现Zabbix系统对接动环SQL Server数据库。Zabbix系统前端展示界面如图2所示。
图2 监控系统前端展示图
2 系统设计与应用
机房动环监控系统主要针对机房的动力系统和环境系统进行实时监控。动力系统监控的要素包括空调状态、UPS状态等随时间不能连续变化的状态数据;环境系统监控包括机房的温湿度、电压电流等随时间连续变化的模拟数据。信息采集模块通过在Linux操作系统下定时执行Python采集脚本,将被监控项的设备编码和项目编码等信息实时输出到日志文本。Zabbix系统监控项模块内建有SSH远程协议,可以远程到目的服务器将日志信息输出到告警界面。监控设备和项目字段编码情况如表1所示。
表1 监控信息字段编码情况表
续表1 监控信息字段编码情况表
2.1 配电监测系统
目前省级气象核心机房已搭建UPS供电系统,市电断供可自动切换到UPS供电,由于UPS供电可维持时间较短,一旦发电机启动不及时就会造成严重的后果。本监控系统通过实时采集UPS充放电状态和市电电压状态对配电系统进行监控。开发定时Python脚本实时从数据库获取UPS的剩余电量和市电供电电压信息,再设置告警阀值在UPS连续掉电且市电电压为0时触发告警,后勤保障人员听到告警能在第一时间内发现启动发电机装置,保障机房正常供电,供电监控界面如图3。
图3 供电监控图
2.2 温湿度监测系统
为保障气象机房电子设备的正常运行,避免因设备故障导致数据丢失,机房环境的温湿度需要平衡在一个稳定的范围内。温湿度作为影响电子设备寿命的关键因素,亟需寻求技术手段对其进行实时监控。气象核心机房2路冷通道共6个传感器,定时采集温湿度信息存入SQL Server数据库。定时Python采集脚本2 min执行1次,通过字段表检索传感器设备的温度和湿度输出到1个文本中。Zabbix作为前端展示平台和报警媒介,通过其内建的远程协议定时读取文本中的信息并在前端展示,通过触发器模块设置1个温湿度阀值,在达到该阀值时触发告警机制,在低于该阀值时启动告警恢复机制。温湿度监控界面如图4。
图4 温湿度监控图
2.3 空调监测系统
精密空调作为平衡机房温湿度的核心设备,其正常运转关系到机房环境条件,对其实时监控至关重要。可选择的空调监控项目众多,包括回风温度、送风温度、电压、告警状态、风机状态、制冷状态、制热状态、通讯状态等[2]。本监控系统选择制冷状态和送风状态作为判断空调运转状态的指标。省级信息机房每路冷通道有4组空调,一般情况下2组负责制冷,另外2组负责送风。随着机房温度的变化会自动增加或减少制冷空调的个数以平衡温度,这无形中增加了对空调监控的难度。为解决上述问题,监控系统针对1个冷通道内的空调整体状态进行监控,在设置告警时仅在冷通道内全部空调处于非制冷状态时才触发告警机制。
3 实时监测与展示设计
系统的前端展示及告警基于Zabbix开源监控平台。监控项(Item)对实时信息进行采集并在最新数据界面展示,根据历史数据形成趋势图,以便发现故障的开始和结束时间。触发器(Trigger)通过设置阀值在最新数据满足阀值时触发警报。通过前端的拓扑地图界面可以将机房动环监控的各个模块在1张图上展示出来,在发生故障时可结合各模块之间关系迅速找出故障节点。机房动环布局如图5所示。
图5 机房动环布局图
4 企业微信对接设计
Zabbix可对接企业微信客户端,首先需要登陆服务端编辑配置文件(Zabbix_server.conf),将告警路径配置行(AlertScriptsPath)改为Python脚本的绝对路径。Python脚本实现的主要功能一是根据企业微信的CorpID、Appsecret、Agentid构建企业微信的接口软链接(URL);二是接收告警参数包括告警触发用户(Sendto)、项目名称(Subject)和告警内容(Message);三是将不同告警信息根据需要推送给相应的人或者部门,最后通过URL将告警推送给相应的人。在Zabbix前端需要配置动作和告警媒介模块,动作的功能是将告警内容和Zabbix的用户绑定起来,需要选择通过微信的方式进行告警;告警媒介类型包括微信、短信和电子邮件等,作为动作和Python脚本的中介环节,其功能是通过绑定脚本,将从动作获取的告警参数传送给Python脚本。
5 结束语
在技术层面,通过在Linux操作系统下开发定时Python脚本,访问SQL Server数据库实时信息表获取要素信息。在工作层面,通过查阅资料了解动环数据库的库表结构,从相互耦合的2个库3张表众多的要素中找出需要的字段信息。本文介绍了机房动环监控系统的基本构成和实现方法,通过Zabbix开源平台对系统进行优化和补充,从繁多且重复的监控要素中找出影响机房运行的关键要素,实现机房核心要素的全天候监控告警,并将这些要素集约于1张拓扑结构内集中监控,方便故障排查,为气象数据服务和保障提供了较好的支撑[5]。