国家气象站BUFR消息数据传输服务流程及典型故障分析
2022-05-18黄艳红姜娜娜徐晓庆韩格格陈增境
黄艳红,姜娜娜,徐晓庆,韩格格,陈增境
(1.中国气象局旱区特色农业气象灾害监测预警与风险管理重点实验室,宁夏 银川 750002;2.宁夏气象防灾减灾重点实验室,宁夏 银川 750002)
0 引言
为加快推进气象现代化建设,中国气象局参照WMO和国际通用气象数据格式标准,确定地面、高空、辐射、大气成分等气象数据的标准化格式[1](以下简称BUFR),优化调整业务流程,解决数据格式不统一导致的上下游业务系统衔接连动性薄弱等问题。2018年在全国气象部门开展了气象数据格式标准化业务切换,2019年标准格式数据实行单轨运行,原地面新Z格式文件停止传输。2020年,随着气象大数据云平台的上线,BUFR数据接入云平台,逐渐成为平台的主要数据编码格式。目前,由于宁夏气象局部分业务平台无法兼容BUFR数据,仍需新Z格式文件支撑,为适应这一需求,重塑了现有数据传输业务流程。本文以国家气象站地面BUFR数据传输为例进行分析。
1 数据传输流程
正常情况下,BUFR数据经台站收集[2],通过消息传输客户端上传至省级,省级消息传输服务端经数据收集与分发系统[3](以下简称CTS)快速质控(以下简称快控)后上行至国家级并在本地归档。
重塑流程后,在上述流程基础上,由BUFR转换模块提取归档的BUFR快控数据,转换成新Z格式文件,提供给用户使用。国家站BUFR数据传输服务流程具体见图1。
图1 国家站BUFR数据传输服务流程Fig.1 National station BUFR data transmission service process
1.1 台站传输
气象数据经台站ISOS软件采集收集编码后形成BUFR数据文件,写入接口目录(即ISOS写入消息数据文件目录)。台站消息传输客户端实时侦听接口目录,从中获取BUFR数据文件并封装成消息,再根据传输方式及省级服务器IP地址,上行至省级消息服务器。上传成功后备份至“消息数据备份”目录,若数据格式异常,则写入“传输客户端不能识别或未通过格检数据”目录。数据发送成功或失败均生成日志写入“传输客户端反馈给ISOS日志文件”目录。具体配置如图2。
图2 台站传输客户端配置界面Fig.2 Station transmission client configuration interface
1.2 省级传输
省级消息传输服务端接收台站上传的BUFR数据消息,经CTS快控后由消息处理程序封装成消息上行至国家级消息传输服务端,同时质控后的BUFR数据文件在本地归档。BUFR转换程序由定时任务定时启动,从归档目录读取快控后的BUFR数据,转换成新Z文件格式,写入CTS传输接口目录。CTS根据收发策略,将新Z文件格式数据转发至数据服务客户端CAWSAnyWhereServer接口目录,数据服务客户端从接口目录中获取新Z格式文件,处理后入库提供给用户。
2 故障分析
根据BUFR数据传输流程节点,可将故障分为台站传输故障、省级传输故障、CTS快控故障、数据归档故障、BUFR转换故障及数据转发故障。
图3 故障分析流程Fig.3 Failure analysis flow chart
2.1 台站传输故障
台站传输常见故障为IP、传输方式、监控目录设置错误,数据未生成或数据格式错误。台站消息客户端传输配置正确情况下,可通过查询运行日志定位故障点。
log/Main:主进程日志,主要检查客户端程序启动是否正常、通信端口是否被占用及与省级消息服务器连接是否正常;
log/PollingData: 目录轮询日志,用于监控接口目录是否正常,主要检查目录轮询记录是否正常;
log/[ RecvData| SavaData| SendData]:数据文件接收/备份/发送日志,用于记录数据接收、备份、发送是否正常。
若以上日志均正常,需检查ISOS软件运行是否正常。
2.2 省级传输故障
省级消息传输采用的消息中间件为RabbitMQ[4](简称RMQ)。常见故障为RMQ进程异常或RMQ消息队列[5]积压。当省级消息服务端未接收到BUFR数据消息时,需要查看RMQ管理界面是否正常、消息队列是否积压;若页面无法登陆,需要查看并重启RMQ进程;若消息队列积压,需查看CTS快控进程。
2.3 CTS快控故障
CTS快控程序实时侦听省级消息传输服务端广播的消息队列,获取数据消息进行质控并封装成消息[6]回写到快控消息队列。当CTS快控故障时,会导致省级消息传输服务端快控消息队列积压,此时应查看快控进程和日志,若进程异常需重启,则需在RMQ管理界面清除日志中不可消费的错误信息数据。
2.4 数据归档故障
数据归档由消息处理程序对快控后的BUFR数据消息进行处理后落地归档。当归档目录中无数据时,需检查消息处理进程是否正常,查看消息处理进程日志中是否有最新更新记录,若无,则判定其为僵尸进程,重启消息处理进程。
2.5 BUFR转换故障
BUFR转换模块常见故障为BUFR转换进程异常或定时任务故障。BUFR转换程序由定时任务定时启动,若程序未执行,首先检查定时任务服务进程是否正常,当进程不存在或存在僵尸进程,需重启定时任务进程;其次检查转换程序是否有日志输出,若无,则判定其为僵尸进程,重启BUFR转换进程。
2.6 数据转发故障
数据转发由CTS收发模块根据收发策略完成。收发策略包括数据收发源地址、目的地址、分发用户等信息,当数据转发异常时,需检查上述配置是否正确。
3 案例分析
在实际运维过程中一般采用逆向故障排查流程,同时还要根据故障现象和上下游节点情况定位具体故障节点。以下为实际运维过程中常见的典型故障案例。
3.1 案例1
故障现象:数据服务客户端无国家气象站数据。
故障分析:因近期未对数据转发模块中的收发策略配置进行更改,故直接检查BUFR转换模块。检查BUFR转换日志发现有启动程序输出,无消息数据处理记录,判定BUFR转换模块正常,上游归档目录无数据。检查消息处理进程,发现进程未启动,重启进程后,数据正常归档,数据服务客户端数据显示正常。
3.2 案例2
故障现象:省级消息服务器未接收到某一台站上传的国家气象站数据。
故障分析:由于只有一个台站的数据未接收到,初步判断省级消息服务器正常,可将故障定位到该台站。首先检查台站消息传输客户端备份目录,发现无当前时次数据。再检查接收日志,无当前时次接收记录。经检查传输客户端配置均正常,检查ISOS软件后,确定台站数据采集器异常,ISOS未生成数据。采集器故障恢复后,数据传输正常。
3.3 案例3
故障现象:所有消息类数据均未上行至国家级。
故障分析:因所有消息类数据均由省级消息服务器接收上行至国家级,根据故障现象,首先检查省级消息服务器,登录RMQ管理界面发现为空白页,后台检查消息进程(采用命令ps-ef|grep erlang)发现进程未启动。重启消息进程后,进程恢复,RMQ界面显示正常。消息类数据逐渐上行至国家级。
4 结束语
目前,基于消息传输的资料处理系统已经投入业务使用,提升了实时气象数据高时效传输能力的同时,也对运维保障人员提出更高的要求。本文对国家气象站BUFR数据消息传输服务流程所涉及的各节点故障进行梳理,给出故障排查流程图,分析典型故障案例。在实际运维中,运维人员可根据故障现象,结合故障排查流程图,快速定位故障节点,提高运维效率。