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