安卫士,张云彪,郭士鑫,胡永亮
(浙江省气象信息网络中心,杭州310000)
随着气象观测技术的不断发展,气象数据种类不断增多、传输方式多种多样、时效要求越来越高。CMACast[1]即中国气象新一代卫星数据广播系统,它整合了原有的PCVSAT[2]、DVB-S[3]和FENGYUNCast[4]三套卫星数据广播业务系统,实现各类气象观测数据及其他资源的统一管理,国内国际小站数据的整合下发,提高了气象观测数据传输时效性、稳定性。卫星数据广播系统的信号传输容易受到极端恶劣天气的影响,如大雪、冰雹、大雾等,数据下发过程中信噪比降低,大量丢包,造成数据接收不全甚至无法接收数据。本文从业务系统运维人员角度出发,基于C#设计CMACast系统可视化[5]自动告警系统,及时通知业务值班人员对出现的问题进行处理,保证气象数据的完整性,提高数据传输的可靠性。
系统基于C#[6]编写,借助CMACast 系统自带日志文件及状态文件,分析日志文件和状态文件,判断CMACast 系统是否出现信号失锁、无文件接收、丢包、积压等问题,通过短信告警方式通知业务值班人员,并将本次告警内容写入日志文件,方便以后查询。
程序一:系统整体思路
系统流程图如图1 所示,程序首先读取系统配置文件,主要内容包括CMACast 日志文件位置、告警电话发送号码、告警时间间隔、扫描时间间隔、文件积压的阈值;将日志文件下载到本地,分析日志文件内容,确定信号传输情况,如果信号失锁则直接发出告警短信,进而判断是否有文件接收,若无也发送告警短信,若接收文件有积压,向值班人员发送告警短信,若都正常则此次程序运行结束,经过一个扫描时间后进行第二次检查。
图1 系统流程图
系统主要参数及其意义如表1 所示。
表1
系统主要参数有两种配置方式:修改系统配置文件App.config,重启程序;在可视化界面上进行修改,修改之后点击“开始监控”按钮,系统会重新读取参数配置。
主要思路如程序二所示,首先根据系统参数,计算当前检测周期的最早时间LowTime:当前时间减去扫描时间,报警阈值bound=Alerttime*20;解析CMACast系统日志文件,文件记录格式如下:2020-0311004934025-[mediarecv.cpp 7650]:No data decode last 2 second,20200311004934025 为该条记录的时间戳(世界时),取时间戳的前12 位,存放到List
程序二:失锁检查函数
主要思路如程序三所示,首先根据系统参数,计算当前检测周期的最早时间LowTime:当前时间减去扫描时间,报警阈值bound=Alerttime*20;解析CMACast系统日志文件,文件记录格式为:04:20:09 18748 RADA_BENJ/DOR/Z9250 Z_RADR_I_Z9250_202001150-41800_P_DOR_SA_R_20_460_5.250.bin,04:20:09 为该条记录的时间戳(世界时),将其存放到List
程序三:文件接收检查
文件积压主要是因为文件接收过程中,接收到的文件未转到指定的存储地址,造成系统目录下文件积压,积压严重时将导致系统无法接收新的文件,造成数据丢失。主要实现思路为:遍历系统指定文件目录,读取对应目录下文件个数,若文件个数大于设定阈值,则发出文件积压告警,否则不告警。关键代码如下:int fileNum=ftpHelp.GetDirFileNum(Ldir+filename+"/");获取当前目录下文件个数。
告警信息分为三类:卫星信号失锁、无数据接收、数据丢失严重、文件积压。主要实现思路为:根据自动告警算法对卫星数据接收系统日志进行分析判断,若文件接收出现异常,调用移动云平台[7]信息发送接口将告警短信发送到值班手机。首先,根据检查程序,检测文件接收系统是否正常,若异常生成告警信息,通过自动化生成SQL 语句,将告警信息插入到移动云平台数据库中,调用信息发送模块将信息发送到指定的接收号码。
系统部署在Windows Server 2012R2 的虚拟机上,程序设置为开机自启动。当CMACast 系统文件接收异常时,发出告警短信,提醒业务值班人员检查处理。系统自部署后,运行良好,多次及时发现CMACast 系统文件接收问题,及时通知值班业务人员,保证了文件接收的完整性,为气象预测提供了数据支持。图中显示3月11 号和12 号中午出现信号失锁以及数据丢失情况,经与中国气象局联系发现原因是每天中午受日棱影响,出现2-8 分钟短暂失锁,之后又自动恢复。
图2 告警信息及日志记录
基于C#编写的CMACast 告警系统上线部署后运行情况良好,可视化配置功能实现根据业务实际动态更改系统参数,实时监控CMACast 系统文件接收情况,发现文件接收异常自动告知业务值班人员,大大的减
避免了因系统故障发现不及时,造成气象观测数据接收不完整、数据零接收的情况,提高了CMACast 系统文件接收的完整性和稳定性,使得预报员可以得到完整的气象观测数据,一定程度上提高了工作效率和天气预测的准确率。