APP下载

钉钉机器人在气象设备和网络监控报警中的应用

2021-07-19胥志强何国平

中低纬山地气象 2021年3期
关键词:钉钉日志气象

胥志强,何国平,唐 蜜,曾 元

(1.四川省雅安市气象局,四川 雅安 625000;2.四川省攀枝花市气象局,四川 攀枝花 617000)

0 引言

随着气象业务现代化的发展,越来越多的气象监测设备和网络设备需要进行实时监测运行状态。仅雅安市气象部门自动气象站就多达200余个,MSTP专线28条,2018年还建成了多普勒天气雷达1部,这些设备的数据传输情况和网络设备运行情况都需要随时监视,发现故障要及时通知维护人员处理。目前监控工作还存在一些不足之处:一是气象设备、网络故障需要人工来发现,对监测值班人员的依赖性较大;二是发现故障不及时,时效性低;三是发现故障后通知手段仅要靠值班人员打电话;四是故障登记靠人工。目前针对气象行业设备状态监测报警软件较少,尤其是随着气象观测无人化、自动化的发展,对设备稳定运行有了更高要求。因此亟需开发一个集故障监测、报警、日志记录于一体的自动化软件,提升业务设备监控报警能力。

1 监测报警机器人系统结构

钉钉监测报警机器人主要由设备状态收集、异常判断、信息发送和日志记录4部分组成(图1)。整个系统流程为:软件定时按照不同设备采用不同的方法来收集状态信息,收集到各类设备状态信息后进行异常判断,并生成报警信息,再用钉钉机器人将报警信息发送到相关的钉钉群提示维护人员,最后进行日志记录。软件运行在气象广域网任意服务器,出现报警信息第一时间通过互联网发送到维护人员电脑和手机钉钉客户端。

图1 监测报警机器人逻辑关系图

2 设备状态信息采集和故障判断

各类气象设备和网络运行状态信息要根据设备类型进行分类采集。例如多普勒天气雷达的运行情况通过读取最新生成的雷达基数据文件列表来反映,正常情况下雷达数据应为每6 min生成一个新的基数据体扫文件,如果超过12 min未检测到新的雷达基数据文件或雷达主机无法连接,则生成雷达异常报警信息。对于气象站点的状态则通过查询各站点数据数据库写入状态进行判断,若各站点当前小时数据未及时入库则生成站点未到报的信息。而网络链路状态则通过Telnet协议读取核心路由器中省—市—县各链路OSPF路由邻居状态来进行判断,当出现网络异常或中断则生成网络告警信息。

在状态采集和故障判断中做到信息精确,如自动站数据异常精确到台站,网络告警信息精确到具体链路名称。报警信息生成后,交给钉钉机器人报警模块进行处理。

3 钉钉机器人报警模块

目前阿里钉钉开放了机器人API接口,可以在钉钉群进行消息发送。本软件正是利用了钉钉的开放接口将设备和网络报警信息通过API接口进行消息发送。

调用钉钉接口发送信息要遵循以下规则:采用HTTPS协议、发送内容为JSON数据格式、采用UTF-8编码,采用POST方式向接口提交请求,实现过程如下。

首先在要发送信息的钉钉群里创建自定义机器人,获取唯一的Webhook地址,在钉钉API接口中加上Webhook地址,就可以在指定的群内发送消息,为了保证消息的安全性,可以添加IP地址、关键字等进行发送规则限制。机器人创建成功后可以使用Postman等工具进行信息发送测试。

然后利用Visual studio或Python等开发环境编写一个发送信息的类库或动态链接库(DLL)文件,用于报警信息的发送。其主要功能是实现报警信息按照钉钉API接口的规则提交POST请求,并将发送结果返回。向钉钉API接口提交的规则如下:一是请求方式为POST;二是请求地址为钉钉接口地址加上Webhook地址;三是请求包体包括发送内容和提示人员列表。钉钉机器人支持发送的消息类型丰富,主要有文本消息(text)、链接(Link)和文档快速排版(markdown)等6种类型的消息,本软件主要发送的是文本消息,使用者还可以根据自己的需求选择不同的消息类型。本软件中钉钉发送消息使用了C#语言编写了以下两个方法来实现:

一是向钉钉接口提交POST请求方法:public String Request(string url, string data, string reqtype)

第1个参数url为钉钉API接口地址,第2个data参数为json格式的报警内容,第3个参数为请求方式参数(POST或GET)。

二是生成文本消息(text)报警的方法:public static string OapiRobotText(string content, List atMobiles, bool isAtAll)

第1个参数为报警内容,第2个参数为提醒人员列表,第3个参数为是否提醒所有人,传出参数为JSON格式的报警包体,该方法生成包体后调用Request方法提交请求,实现消息的发送。

4 日志记录

将异常信息进行报警后,要进行日志记录。通常可以采用数据库或文本文件进行日志记录。为了避免信息发送过于频繁,每种报警信息可以根据业务具体要求或紧急程度设定不同频度的检测和报警。通过日志的记录检索可以避免信息的重复发送。本程序中因日志记录数据量不大,采用按设备类别每天生成一个文本日志文件,方便管理者后期查询。

5 实际应用情况

目前该软件在雅安市气象部门投入业务运行(图2),监测了本部门自动气象站、省市县MSTP专线和多普勒天气雷达等设备,这些设备的数据传输和网络设备出现异常情况都通过钉钉客户端进行了及时报警,软件还可根据业务规定的时效不同,设置监测和发送信息的频度,从应用至今,发现雷达故障的时效从过去的平均2 h提升到现在的12 min,MSTP专线发现中断从过去的平均6 h到现在的分钟级,自动气象站数量多则每天发送一次缺报信息,大大地缩短了处理故障的时间。

图2 钉钉机器人监测报警控制器程序界面

6 结束语

本文基于Visual studio平台和钉钉机器人开放接口开发出的钉钉监测报警机器人软件,集设备状态监测、异常判断、报警信息发送和日志记录功能为一体,自动化程度高,极大的提高了维护人员发现问题的时效。随着气象业务的发展,气象设备的稳定运行越来越重要,监测报警自动化是今后的发展方向,在设备和网络监测中还有可挖掘的空间,例如监测到气象站点的各要素、雷达产品可用性等。另外,钉钉机器人还可根据业务需求在气象服务产品发布、灾害性天气监测、雨情报警、数据质量控制等气象业务中进一步拓展,应用范围广泛。

猜你喜欢

钉钉日志气象
新冠疫情防控背景下电工电子技术课程线上教学探索与实践
气象树
一名老党员的工作日志
《内蒙古气象》征稿简则
扶贫日志
气象战士之歌
大国气象
游学日志
微软Teams,拿什么抢《钉钉》的饭碗?
钉钉在烟草公司办公中的应用探讨