盧煥卿 畢瑋 劉延瑞



摘要:為滿足用戶對青島市預警信息發布平臺高穩定性、高可用性的需求,該文在平臺中設計并應用了一套集數據采集、數據分析、數據存儲、數據校驗以及數據處理于一體的短信告警機制,其中數據處理包括了數據展示和短信發送。經測試證明,該短信告警系統監控能夠在采集到預警信息發布平臺故障信息時,通過使用手機短信這一成熟的數據傳輸方式向業務值班手機發送告警短信,確保值班人員第一時間得到提醒,及時地維護平臺安全與穩定、保障預警信息能及時進行發送。
關鍵詞:短信告警機制;數據采集;數據存儲;數據校驗;數據處理
中圖分類號:TP391? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)25-0114-04
開放科學(資源服務) 標識碼(OSID) :
近年來,隨著公眾對各類突發事件預警服務需求的逐漸提高,各先進省市對預警信息發布平臺的建設做了大量的研究工作[1-4]。青島市也吸取各優秀省市經驗,建設了青島市預警信息發布平臺。平臺建成后用于發布全市突發事件預警信息,因突發事件的突發性、偶然性以及發生后產生的危害性,平臺用戶對預警信息發布的時效性、平臺的穩定性和可用性都有著相當高的需求,預警信息發布平臺亟須一種安全保障機制確保在平臺出現故障后第一時間得到處理。
當預警發布平臺有故障出現時,運維值班人員應第一時間獲悉并處理。但在實際業務中,值班人員可能因就餐、臨時處理其他工作等原因暫時離開值班場所,未能及時得到故障信息,延遲了處理時間從而對有效防災減災造成不可預估的影響,為此國內氣象學者在平臺保障機制方面做了多方努力。
王宜明基于Java語言利用InetSocketAddress類的相關方法配合數據庫,實現了對網絡中硬件設備以及重要業務平臺和服務運行狀態的自動監測,并向相關人員發送短信[5]。王赟等基于WebService技術直接接入電信短信網關,實現了氣象預警短信的高效發布[6]。賈澤莘借鑒主流的廣播電視安全播出告警信息發布技術,設計了一套適用于廣播電視無線發射臺站安全播出的告警短信發布系統[7]。任川等基于CIMISS統一數據環境建設了遼寧省自動氣象站短信監控平臺,監控氣象資料傳輸情況,在傳輸異常時自動向管理人員、技術人員發送短信,以便盡快解決故障[8]。崔倩等設計了氣象綜合業務監控短信報警系統,能夠及時掌握自動氣象站、區域氣象站、網絡等設備的運行狀態,并迅速以短信形式通知相關人員做出相應反應[9]。甄廷忠研究了雷達業務短信預警的兩種方法,分別實現了通過郵件短信提醒和短信網關平臺短信提醒[10]。上述學者在相關業務平臺中引入短信機制分別實現了研究預期,較好地滿足了平臺需求與保障效果。
一套完善的預警發布平臺監控及其短信告警機制可對青島市預警發布平臺中的軟、硬件設備以及網絡鏈路進行實時監控。當采集到平臺故障信息時,立刻向業務值班手機發送短信,讓值班人員隨時、直觀、便捷地掌握平臺運行情況并及時采取處理措施,切實提高預警發布平臺的穩定性。
1 短信告警機制功能設計
依據減少資源投入和利舊原則,短信告警機制開發時充分考慮預警信息發布平臺現有的互聯網和MySQL數據庫條件,使用與平臺一致的Springboot框架、跨平臺Java開發語言進行開發。
1.1 告警機制結構設計
短信告警機制監控正在運行的渠道、網絡鏈路以及服務器等運行情況,共分為數據采集、數據分析、數據存儲、短信接口調用、數據校驗等過程。渠道模塊、網絡鏈路模塊和服務器模塊分別是預警發布平臺的功能模塊,并且有前臺顯示界面,數據采集服務與各功能模塊建立監控接口,監控內容主要包括網絡鏈路狀態、渠道狀態、服務器的CPU使用率、內存使用率、磁盤空間占用率等。當數據采集服務采集到符合條件的數據時,分別存儲到MySQL數據庫運行監控表中,并調用短信發布接口查詢數據庫中存儲的值班手機號碼進行短信發送(圖1) 。需要注意的是,短信發送前需經過數據校驗和加密技術加密。
1.2 告警機制功能設計
(1) 數據采集。數據是短信告警機制的核心,沒有數據的短信告警機制是無法進行短信發布的。渠道監控、網絡鏈路監控通過程序開發的心跳監測接口實時監測渠道狀態是否運行正常,網絡鏈路是否中斷;服務器模塊采用ZABBIX全面監控,ZABBIX AGENT安裝在被監視的目標服務器上,主要是采集內存占用率、磁盤空間占用率、CPU占用率等數據。
為避免短信重復和資源浪費,采集到的重復數據每24小時發送一次告警短信,如果24小時內重復采集到CPU使用率超過75%的數據,則只發布一次告警短信。另外數據采集頻率可根據具體業務靈活配置定時任務,以達到實際業務要求。
(2) 數據分析。從通過數據采集獲取的數據中提取、篩選有用的信息,切實發揮短信提醒的作用。渠道運行異常、網絡鏈路中斷為一次有效數據;服務器內存占用率、磁盤使用率、CPU占用率超過75%的閾值時為一次有效數據,有效數據進入數據存儲過程。
(3) 數據存儲。渠道運行異常數據、網絡鏈路中斷數據、經數據分析有效的服務器異常數據等應立即存儲到MySQL數據庫運行監控表中,為數據展示和報表處理提供基礎數據。當運行監控表中有新記錄存儲時,一方面進行前端數據展示,另一方面調用短信發送接口按照和運營商溝通的短信格式生成短信,通過查詢手機號管理表返回短信接收號碼,并進入下一過程。
(4) 手機號管理。為確定短信接收對象,告警機制在數據庫中建立手機號管理表記錄保存值班人員手機號碼。該表建立后,需將值班手機號碼提前錄入。手機號碼都是11位的,在MySQL中使用int會導致丟失精度。為方便處理,該字段使用varchar數據類型。
(5) 數據展示。為把運行監控表中的數據記錄可視化,數據展示過程將這些數據以醒目的紅色字體或紅色標記直觀地展示在綜合監控大屏上,便于值班人員察覺,能夠更快速地定位問題。
(6) 數據校驗。為保障數據安全性、有效性、準確性,短信發送之前告警機制會進行一系列校驗,對短信運營商提前分配的用戶名和密碼進行校驗、服務器IP白名單校驗、短信發布參數校驗、短信發布內容校驗、手機號格式校驗和去重、短信發送閾值校驗等。
(7) 短信發送。成功通過校驗的數據使用DES對稱加密技術進行加密,然后使用RSA非對稱加密技術加密DES密鑰,最后生成接口規定格式的數據包,該數據包將被直接發送到短信運營商網關,經運營商短信服務分析處理后進行短信發送,值班手機很快會接收到短信告警機制發出的短信,提醒值班人員第一時間關注平臺故障并進行分析處理。短信發送后自動進行日志存儲,記錄短信發送總條數、成功數及失敗數。
2 運營商協議接口
短信告警機制主要利用通信運營商提供的短信服務進行短信發送。運營商短信技術成熟且穩定,其性能符合預警發布平臺短信告警機制進行短信發送時及時、高效的基本要求。
2.1 通信協議
短信告警機制實現了與通信運營商短信服務的集成整合,預警發布平臺與運營商短信平臺之間的數據交互使用HTTP協議,采用Rest風格的HTTP接口。在數據傳輸中需要通過簽名驗證,對數據進行加密傳輸,確保數據保密性、真實性。
2.2 接口請求參數
經過和通信運營商溝通協商,提前約定了話術,獲取到個性化的話術碼,并根據話術確定接口請求參數,如表1。
2.3 Josn調用實例
{
"wordId":"D0411_",
"exeNo":"122",
"variableOne":"A",
"variableTwo":"B",
"variableThree":"C",
"variableFour":"D",
"variableFive":"E",
"dataList":
["7XriOZZjl53Cj4kqBqiWHQ==",
"7XriOZZjl52DH18y4pmx/A==",
"7XriOZZjl53DkmgYIM8BTg=="]
}
其中話術碼需提前向運營商申請,由運營商進行分配,并約定好短信格式,即話術;各變量標識為話術中可變部分,話術即由各變量標識組合而成;手機號為手機號管理表中存儲的值班手機號碼,需提前錄入數據庫手機號管理表中,為保障安全性和隱私性,此處手機號需通過DES特定密鑰加密發送。接收短信手機號可多個,因此該字段使用List數據結構。
2.4 接口響應參數
接口響應參數主要記錄短信發布成功或失敗的數量,并以此為依據在下月10號前和運營商核對短信數量、核算短信費用。
2.5 Json響應實例
{
"msg":"success",
"code":"02000",
"data":
{"failCount":0,
"successCount":3,
"resultList":[
{"contactId":"0629171330100000000081","tel":"7XriOZZjl53Cj4kqBqiWHQ=="},
{"contactId":"0629171330100000000082","tel":"7XriOZZjl52DH18y4pmx/A=="},
{"contactId":"0629171330100000000083","tel":"7XriOZZjl53DkmgYIM8BTg=="}
]
}
}
結果狀態碼表示本次短信發送的狀態,其中01000表示發送成功,02000表示發送失敗。結果描述是對結果狀態碼的中文描述,可以更直觀地了解和觀察短信發送結果。成功發送數據合集包含了短信發送成功的手機號(此處手機號傳輸過程中仍需加密) ,還包含了由通信運營商添加的流水號。
3 測試結果
測試階段主要從告警機制的功能性角度進行分析和測試,并給出最后測試結果。為保證信息安全性,凡涉及服務器IP地址以及手機號信息的,圖示中部分用*號代替或作模糊處理。
3.1 渠道模塊監控測試
當預警發布平臺的渠道模塊有任意渠道運行狀態出現異常時,如本次測試中設置虛擬演播室渠道異常(圖2) ,短信告警機制將立即發送告警短信到值班手機上,值班手機實際接收到短信如圖3所示。
3.2 鏈路模塊監控測試
當預警發布平臺網絡鏈路模塊出現鏈路中斷導致通信異常或服務異常時,如本次測試中設置氣象內網部分鏈路異常,用虛線進行表示(圖4) ,短信告警機制立即發送鏈路告警短信至值班手機,值班手機實際接收到短信如圖5所示。
3.3 服務器模塊監控測試
服務器磁盤使用率、CPU使用率、內存使用率的閾值均設置為75%,當各使用率大于該閾值時,如本次測試中設置139服務器內存使用率81.44%(圖6) ,短信告警機制立即發送內存告警短信到值班手機上,值班手機實際接收到短信如圖7所示。
4 結束語
通過測試證明在預警發布平臺應用短信告警機制切實發揮了提醒作用,能在預警發布平臺出現渠道、網絡鏈路、服務器故障時第一時間發送短信到值班手機上,提醒值班人員及時關注并作出下一步處理,使值班人員能夠方便、高效、可靠地展開平臺運維工作降低整體運維成本,同時提升預警發布平臺的穩定性、實用性、可用性。
參考文獻:
[1] 傅仁壯,吳坤悌,趙員春,等.市級突發事件預警信息發布平臺的實現及維護[J].科技傳播,2015,7(10):141-142.
[2] 李劍莉,羅永夔,蔣鎮.基于大數據技術的重慶市預警信息發布平臺研究與設計[J].數字技術與應用,2018,36(1):170-171.
[3] 張超華,劉建宏,張鑫,等.寧夏氣象災害預警信息發布平臺的設計與實現[J].長江信息通信,2021,34(9):126-128.
[4] 陳防.重慶市突發事件預警信息發布平臺設計[J].信息化建設,2015(11):20.
[5] 王宜明.局域網狀態自動監測及告警系統設計與實現[J].電腦知識與技術,2020,16(5):35-37,50.
[6] 王赟,段燕楠,姚愚,等.基于Web Service的氣象預警短信發布系統設計與實現[J].氣象科技,2012,40(3):384-387.
[7] 賈澤莘.廣播電視無線發射臺站安全播出告警信息短信發布系統[J].視聽,2019(5):16-17.
[8] 任川,時倩,陳雨,等.基于CIMISS數據環境的短信監控平臺的設計實現[J].電腦知識與技術,2018,14(3):48-49,58.
[9] 崔倩,崔萬里,李厚發,等.氣象綜合業務監控短信報警系統[J].現代農業科技,2012(20):265,267.
[10] 甄廷忠,江龍,康道俊.氣象雷達業務短信預警的兩種實現方法[J].電腦編程技巧與維護,2014(8):86-87,96.
【通聯編輯:代影】