APP下载

贵州天气雷达集约监控系统的研究与实现

2022-07-26白铁男唐维尧谭海波金石声

中低纬山地气象 2022年3期
关键词:触发器脚本雷达

白铁男,唐维尧,谭海波,金石声,白 滔,汤 宁

(贵州省气象信息中心,贵州 贵阳 550002)

0 引言

近年来,贵州省暴雨、冰雹等强对流灾害性天气频发[1]。以24 h暴雨标准统计,仅2020年就发生422站次。目前应对此类灾害性天气最常规且有效的方法,是应用新一代天气雷达资料预报[2]。随着气象现代化建设的迅猛发展,贵州省从原有的8部天气雷达,逐渐新增了习水、榕江、务川3部新一代雷达和雅水、望谟、威宁3部X波段雷达。这些雷达通常6 min左右完成1个体扫生成数据并上传,1 h内完成10次[3]。经数据收集与分发系统(简称“CTS”)传输给雷达拼图业务系统(简称“SWAN”)处理,形成预报指导产品。天气雷达资料的监控存在着站点分布广、观测密度大、传输节点多、考核时效要求高等诸多难题[4],目前的监控手段已无法满足雷达资料监控的实际需求。Zabbix-HA分布式集群作为Zabbix的升级版,将服务端、数据库、Web分别部署在不同的服务器,再通过Highly Available高可用性组件(简称HA)将这些服务器串联统一管理,是企事业广泛使用的开源监控平台,目前已在省级实现搭建部署。

为弥补雷达资料缺乏分钟级监控的不足,及时发现并解决雷达传输过程中的故障。本文基于Zabbix-HA监控平台和企业微信客户端,通过开发Shell和Python脚本,从监控信息的获取到告警机制触发,再到告警信息推送。将原本点状级的告警信息串联成线,实现集约式全流程监控,从而提高雷达资料传输及时率,保障数据服务效率。

1 系统构架

新一代天气雷达全天候进行体扫并生成雷达资料,经省级核心交换机传输给CTS集群进行质控处理后分发给气象信息综合分析处理系统(简称“MICAPS”)使用。SWAN服务器通过定时脚本从MICAPS集群获取雷达基数据进行拼图业务,最后推送CTS集群进行二次分发,以供其它业务单位使用。基于Zabbix-HA自带的监控协议,开发Shell和Python脚本,实现对雷达资料收发主要环节的信息采控,再将这些采控信息传输给触发器模块(简称“Trigger”),根据监控需要合理设置阀值实现监控告警。最后通过报警媒介模块,将触发的告警推送给企业微信客户端,从而实现雷达传输业务实时监控,传输监控业务情况如图1所示。

图1 雷达传输监控业务流程图

2 主要功能实现方法

系统开发环境为Linux系统,通过开发信息采集脚本和在Zabbix-HA服务端配置相关参数,实现信息采集、告警触发、可视化、微信告警等4个功能模块的搭建,通过这4个模块的协同工作,实现从信息采集、故障判断、通知运维,可视化辅助整套业务流程。使用技术手段包括Shell和Python开发技术,Shell开发主要用来实现告警信息的采集,Python开发用来实现Zabbix-HA与企业微信客户端的对接。

2.1 信息采集

主要节点的信息采集通过Zabbix-HA内建的SSH监控协议。天气雷达每6 min完成1个体扫并生成1个基数据,通过开发Shell脚本,获取最近1个基数据的报文生成时间和服务器的系统时间并取其差值。如果该差值大于10 min,即输出告警信息,否则输出最近获取的报文名称。PUP产品的采集方式与基数据一致,区别是每个体扫有36份产品生成并上传,由于资料种类繁多[5],且传输有一定的延迟,告警阈值设为15 min。针对MICAPS集群的监控采用Curl命令行工具,Curl命令从接口获取当前时次11部新一代雷达资料个数累加后输出。CTS服务集群的监控通过Shell脚本ps命令查询进程个数。传输链路状态的监控通过SNMP监控协议,配置键值ifOperStatus,根据获取的状态来判断链路联通状态。X波段雷达与SWAN拼图监控与雷达基数据的方法一致。需要注意采集计划作为监控项内置功能包括灵活计划和调度计划2种类型,灵活计划指每隔多久执行1次,格式如5 m,表示每5 min执行1次。调度计划指某个时间点执行,可自由设置时间点,与灵活计划格式不同,调度类型的数字在后面,如m 59 s 59表示每小时59分59秒执行。各监控模块的采集计划情况如表1所示。

表1 监控模块采集计划表

2.2 告警触发

Zabbix-HA的告警通过触发器(Trigger)实现。根据监控需要合理设置告警阀值,当采集信息满足阀值时触发告警动作,当不满足时触发恢复动作。使用系统内建的str函数对特定的字符进行过滤,在过滤到采集信息含有“No”字符,即触发告警动作,说明10 min内没有新资料传输。在配置告警条件时,除了10 min没有新资料传输时触发告警,如果当前时次资料个数一直为0也要触发告警动作。使用last函数每小时20 min提取当前时次到报数,如果是0则触发告警动作。需要注意使用“or”来连接2个触发条件,任一条件满足时即触发告警动作;使用“and”来连接2个恢复条件,当2个条件同时满足时触发恢复动作。

2.3 可视化

可视化功能主要通过构建拓扑图,将上述监控节点串联成线。通过拓扑结构可以快速定位故障节点,例如SWAN拼图资料中断而MICAPS资料正常,因为SWAN是从MICAPS获取雷达基数据来拼图,因此可迅速判断是SWAN拼图业务机故障导致。另外拓扑图可以将11部新一代雷达、3部X波段雷达和3部风廓线雷达集约于一张流程图,方便了解17部雷达的到报情况。报警结合拓扑图的运行监控模式已经在省级监控业务推广使用,目前系统运行稳定,告警信息精准可靠。雷达业务拓扑结构如图2所示。

图2 雷达监控拓扑图

2.4 微信推送

对接企业微信需要分别针对Zabbix-HA服务端、Web界面和企业微信进行配置。在企业微信首页应用管理模块建立名为“Zabbix-运控科”的应用,后面开发Python脚本需要使用这里的AgentID、Secret、CorpID 3个密钥。合理规划通讯录,根据科室推送告警信息。Zabbix-HA服务端需要根据脚本路径修改配置参数和开发Python脚本。通过Python脚本一是实现企业微信URL的构建,需要将上述提到的3个参数加入企业微信的URL;二是对接Zabbix告警参数,将告警信息根据科室规划推送。Web界面包括报警媒介(media)和动作(action)的配置。报警媒介的作用是在告警动作触发时,将参数传给Python脚本。动作绑定了触发器和信息推送,仅对绑定的触发器告警时推送告警信息。需要特别注意的是,Python脚本不识别中文,因此在配置触发器时不能用中文。

3 结束语

本文通过Zabbix和企业微信等开源平台,使用Shell和Python等技术手段,对全省天气雷达进行分钟级监控。梳理全省雷达数据服务流程,将点状的监控串联成线,实现集约化监控告警并推送企业微信。一是解决了已有监控手段缺乏分钟级雷达资料监控能力的痛点问题;二是实现监控可视化,便于定位故障节点,一定程度上提高运维效率;三是以企业微信作为业务告警手段,优化了以往靠人工定点检查的劣势,减轻值班人员的压力,为贵州省运行监控保障朝精细化、智能化方向发展打下一定基础。

猜你喜欢

触发器脚本雷达
酒驾
配置触发器有条件启动Windows服务
安奇奇与小cool 龙(第二回)
DLD-100C型雷达测试方法和应用
雷达欺骗干扰的现状与困惑
雷达
触发器在酒店管理系统中的应用
自动推送与网站匹配的脚本
现代“千里眼”——雷达
几种常见触发器工作方式的讨论