安衛士,張云彪,郭士鑫,胡永亮
(浙江省氣象信息網絡中心,杭州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 系統文件接收的完整性和穩定性,使得預報員可以得到完整的氣象觀測數據,一定程度上提高了工作效率和天氣預測的準確率。