劉昆佑, 王齊
(中國移動通信集團(tuán)廣東有限公司珠海分公司,珠海 519015)
隨著移動網(wǎng)絡(luò)的不斷發(fā)展,規(guī)模日漸龐大和復(fù)雜,移動網(wǎng)絡(luò)網(wǎng)管系統(tǒng)數(shù)量越來越多,告警的信息量也日漸增加,而這大量的告警信息數(shù)據(jù)中只有不到2%的告警是重要告警,且發(fā)生機(jī)率很低。從網(wǎng)絡(luò)維護(hù)的角度來看,網(wǎng)管系統(tǒng)給出的告警級別反映不出一個告警在網(wǎng)絡(luò)中的真實(shí)重要性,需進(jìn)行多方面核查,才能判斷該告警的嚴(yán)重性,需要有相關(guān)的告警標(biāo)準(zhǔn)化判斷方法支撐,保障和提高網(wǎng)絡(luò)監(jiān)控的效率。
本課題對一種告警標(biāo)準(zhǔn)化方法進(jìn)行了3方面的研究。第一部分通過打通多樣化網(wǎng)管接口,實(shí)現(xiàn)標(biāo)準(zhǔn)化的告警集中采集。第二部分將集中采集后的告警數(shù)據(jù)進(jìn)行分發(fā),實(shí)現(xiàn)終端告警信息的獲取標(biāo)準(zhǔn)化流程。第三部分對告警的類型、影響情況等多方面因素進(jìn)行告警級別標(biāo)準(zhǔn)化研究。通過以上3方面的研究,可實(shí)現(xiàn)可靠的告警標(biāo)準(zhǔn)化機(jī)制,高效的監(jiān)控方法。
網(wǎng)管系統(tǒng)間建設(shè)的大量“點(diǎn)對點(diǎn)”接口在滿足了部分?jǐn)?shù)據(jù)共享需求的同時,也帶來了許多問題,特別是隨著網(wǎng)管架構(gòu)轉(zhuǎn)型的開展,這些問題也將日益突出。為解決系統(tǒng)間集成的問題指明了方向:引入企業(yè)服務(wù)總線(ESB),通過標(biāo)準(zhǔn)的接口連接各網(wǎng)管系統(tǒng),實(shí)現(xiàn)系統(tǒng)間輕量級松耦合集成和無縫地數(shù)據(jù)共享。
ESB平臺主要用于各平臺及子系統(tǒng),如綜合監(jiān)控、綜合資源、EOMS、綜合分析等系統(tǒng)間的數(shù)據(jù)共享,如圖1所示,主要定位如下:
(1)ESB平臺作為網(wǎng)管系統(tǒng)之間集成樞紐,采用集中式總線型結(jié)構(gòu),實(shí)現(xiàn)OSS各系統(tǒng)互聯(lián)互通。
(2)應(yīng)用通過各個用戶的IS組件接入ESB平臺,與多個網(wǎng)管系統(tǒng)共享數(shù)據(jù)。
圖1 ESB集成框架圖
共享數(shù)據(jù)模式(Share Data Pattern)主要是為解決OSS系統(tǒng)間數(shù)據(jù)共享的問題, 將數(shù)據(jù)共享需求按照數(shù)據(jù)量、單向/雙向、實(shí)時/定時、同步/異步幾個維度歸類,并基于ESB平臺對每類需求分別構(gòu)建通用的實(shí)現(xiàn)模式。ESB平臺提供的共享數(shù)據(jù)模式固化了系統(tǒng)間各類數(shù)據(jù)共享需求的通用解決方案,力求通過配置和少量標(biāo)準(zhǔn)化的開發(fā)即可實(shí)現(xiàn)具體的數(shù)據(jù)共享需求,并可做到集中管理和監(jiān)控。
通過ESB平臺提供的接口,按照以下7個標(biāo)準(zhǔn)化步驟,可實(shí)現(xiàn)告警信息獲取和提醒。
由于ESB平臺提供的是Socket通信是比特流的通信,截聽比特流就要求通信過程具備實(shí)時性、有效性和截獲數(shù)據(jù)的完整性。實(shí)時截獲到的數(shù)據(jù)流具有連續(xù)性及容量較大的特點(diǎn)。根據(jù)需求,有必要對數(shù)據(jù)流進(jìn)行有效的拆分和整合。在數(shù)據(jù)的截獲測試過程中,為了保證比特流的獲取,故采用了基于令牌漏斗算法改進(jìn)的實(shí)時數(shù)據(jù)截獲模型。如圖3所示,設(shè)定一個緩沖池作為漏斗,持續(xù)的比特流進(jìn)入漏斗緩存中,設(shè)定漏斗容量B和允許產(chǎn)生的速率為Rbit/s。一個分組通過漏斗需要有等分長度的容量,容量以Rbit/s速率積累到漏斗中,通過定時關(guān)閉漏斗得到大小一致的數(shù)據(jù)塊,根據(jù)網(wǎng)絡(luò)情況通過設(shè)定緩沖池的大小和定時觸發(fā)的條件來保證分組會以恒定的速率進(jìn)而網(wǎng)絡(luò)。
緩沖池大小的設(shè)定,關(guān)于這個指標(biāo),需要在系統(tǒng)資源利用率和突發(fā)情況兩者之間尋求平衡點(diǎn)。經(jīng)過30次測試,系統(tǒng)資源利用率均值為30kbit/s,突發(fā)情況為58kbit/s。設(shè)B為漏斗容量,T為系統(tǒng)觸發(fā)時長,根據(jù)以下公式:
根據(jù)以上結(jié)果,系統(tǒng)觸發(fā)時長定為1s,緩沖池大小定為30kB,經(jīng)過30次程序測試,緩沖池沒有發(fā)現(xiàn)溢出的情況,緩沖池的平均利用率為50%,30kB大小的緩沖池保證資源利用率的同時也能夠處理突發(fā)情況數(shù)據(jù)流,實(shí)現(xiàn)1s就可以把截獲的告警消息進(jìn)行及時地存儲,可有效解決網(wǎng)絡(luò)擁塞的問題。
基于這個模型,選用VC編程可實(shí)現(xiàn)告警信息的截聽過程及拆分過程。而由于UTF-8編碼可以通過屏蔽位及移位操作快速讀寫。字符串比較時strcmp()和wcscmp()的返回結(jié)果相同,使排序變得容易實(shí)現(xiàn),故采用UTF8編碼。
圖2 令牌漏斗算法原理圖
要保證客戶端和服務(wù)端Socket連接的穩(wěn)定性。需要通過Socket心跳檢測來檢測客戶端的服務(wù)器是否發(fā)生斷鏈,可以在應(yīng)用層上通過編寫程序?qū)崿F(xiàn),讓服務(wù)器在timer事件中定時向客戶端發(fā)送一個心跳分組,設(shè)定時長為30s一次,一旦發(fā)現(xiàn)連接中斷,系統(tǒng)可在30s之內(nèi)就可以實(shí)現(xiàn)重新連接。
為下游程序提供固定大小的數(shù)據(jù)塊,之前測試數(shù)據(jù)流的速率在10kbit/s左右,設(shè)定每隔1s對漏斗內(nèi)的消息堆進(jìn)行判定,然后生成臨時文件,可以保證生成的文件大小是在設(shè)計值左右,也就是15kB上下,經(jīng)過30次測試驗(yàn)證,提供給下游程序的臨時文件均控制在15kB,并按照當(dāng)前時間對文件進(jìn)行命名方便下面的排序操作。
取到的文件數(shù)量大,由于文件會按時間順序命名,首先通過xml異步處理程序?qū)ξ募M(jìn)行監(jiān)測,對文件名時間最早的一個文件進(jìn)行解析處理,出于對節(jié)省空間和方便下次排序的考慮,會將處理完的文件進(jìn)行刪除,刪除完成后再等待下一次監(jiān)測、排序和處理。
每個文件包都包含了多條告警,每條告警都有固定開頭字符“
通過告警標(biāo)簽定義,對當(dāng)前告警進(jìn)行標(biāo)簽識別,根據(jù)告警級別重定義的方法得到二次定義的告警級別,對比定義的告警級別門限值,當(dāng)告警級別大于這個定義值的時候觸發(fā)自動彈出告警提示界面,并啟用短信提醒功能,通過引用webservice調(diào)用短信端口,將當(dāng)前重要告警以短信方式發(fā)送給相關(guān)人員。
解析并提取符合條件的重要告警信息之后需要將其存入數(shù)據(jù)庫中 ,需要選擇一種與C#兼容性好并且易于配置的數(shù)據(jù)庫。 而SQL Server數(shù)據(jù)庫本身就與C#良好的兼容性,非常適合Windows后臺數(shù)據(jù)庫的開發(fā),并具備高效的數(shù)據(jù)插入與查找算法,且管理與應(yīng)用的簡便性但同時能夠符合項(xiàng)目需求。
在本地終端上使用SQL Server中新建立一個新的數(shù)據(jù)庫,命名為important alarms,并設(shè)定用戶名和密碼。
在C#中則基于TCP/IP的sqlconnection實(shí)現(xiàn)與SQL實(shí)時建立連接并且插入數(shù)據(jù)。通過創(chuàng)建一個sqlconnection對象,指明數(shù)據(jù)庫所在終端的IP地址、數(shù)據(jù)庫名、連接方式使用SSPI方式登錄。再相應(yīng)的設(shè)置數(shù)據(jù)庫的用戶名和密碼,完成創(chuàng)建。
使用已經(jīng)創(chuàng)建好的sqlconnection,通過將sqlconnection實(shí)例化,接著打開連接,傳遞連接給command對象,即可使用連接對數(shù)據(jù)庫內(nèi)容進(jìn)行操作,即將解析好的告警的66個字段里的信息寫入到數(shù)據(jù)庫中進(jìn)行保存。
為能從獲取到的告警信息中篩選出真實(shí)的重要告警,通過對告警信息和網(wǎng)絡(luò)設(shè)備特性的研究構(gòu)建了告警級別的重新定義的標(biāo)準(zhǔn)化模型。
對應(yīng)不同的告警,根據(jù)不同的網(wǎng)絡(luò)情況,不易準(zhǔn)確判斷告警影響的情況,級別高的告警不一定有真實(shí)影響,而級別相對較低的告警,也有可能引起重大事故。通過對告警和告警網(wǎng)元制定多個標(biāo)簽,不同的標(biāo)簽反映了告警和網(wǎng)元不同的特性,通過判斷標(biāo)簽對告警級別進(jìn)行二次定義,起到通過告警級別可以真實(shí)反映告警重要性的目的。
根據(jù)圖4的算法模型,分別對不同專業(yè)網(wǎng)元針對性定制不同的多個標(biāo)簽,每個標(biāo)簽針對不同的條件判斷結(jié)果,設(shè)定不同的分值,根據(jù)各個標(biāo)簽的分值進(jìn)行加成,得到最終分值反映了的網(wǎng)元重要;同時對告警定義針對性條件判斷簽,由標(biāo)簽的參數(shù)對應(yīng)判斷告警是否為非隱性告警。由告警級別和網(wǎng)元級別得到最終告警二次定義的告警級別。
網(wǎng)元標(biāo)簽定義和業(yè)務(wù)類網(wǎng)元標(biāo)簽的分類如下:
4.2.1 BSC/RNC/HLR分為三級標(biāo)簽
第一級為業(yè)務(wù)狀態(tài),包括有業(yè)務(wù)和無業(yè)務(wù),對無業(yè)務(wù)狀態(tài)的標(biāo)簽分值設(shè)定為0,對有業(yè)務(wù)狀態(tài)的設(shè)定為1。
第二級為區(qū)域分級,根據(jù)BSC/RNC/HLR根據(jù)前3個月平均CP負(fù)荷的情況分為5個等級,分值分別為1、2、3、4、5,負(fù)荷越高對應(yīng)分值越高。
第三級為歷史時段分級,根據(jù)前3個月平均每天24h的CP負(fù)荷值分為5個等級,分值分別為1、2、3、4、5,負(fù)荷越高對應(yīng)分值越高。
4.2.2 基站分為三級標(biāo)簽
第一級為業(yè)務(wù)狀態(tài),包括有業(yè)務(wù)和無業(yè)務(wù),對無業(yè)務(wù)狀態(tài)的標(biāo)簽分值設(shè)定為0,對有業(yè)務(wù)狀態(tài)的設(shè)定為1。
第二級為站點(diǎn)級別,根據(jù)基站的重要性分為普通、VIP、VVIP 3種,對應(yīng)分值為1、2、3。
第三級為歷史時段分級,根據(jù)前3個月平均每天24h的話務(wù)量分為3個等級,分值分別為1、2、3,話務(wù)量越高對應(yīng)分值越高。
動力分為二級標(biāo)簽:第一級為告警點(diǎn),分為機(jī)房和基站兩種,對應(yīng)分值分別為3、1。第二級為電池續(xù)航能力,根據(jù)電池續(xù)航能力時間分為4個等級,對應(yīng)分值為1、2、3、4,續(xù)航能力越低分值越高。
表1 負(fù)荷分值表
圖3 告警標(biāo)簽算法模型
承載類網(wǎng)元標(biāo)簽的分類包括傳輸、MGW、IP承載網(wǎng)。
承載類網(wǎng)元分為一級:針對網(wǎng)元間鏈路是否有倒換保護(hù)機(jī)制分為有保護(hù)和無保護(hù),有保護(hù)分值為1,無保護(hù)分值為4。
告警標(biāo)簽分4種:
第一種為閃斷次數(shù)判斷,為某一時間段內(nèi)該告警出現(xiàn)次數(shù)超門限值時,判斷出現(xiàn)該告警;
表2 話務(wù)量分值表
第二種為出現(xiàn)時長判斷,告警出現(xiàn)時間超過門限時段時,判斷出現(xiàn)該告警;
第三種為伴隨告警判斷,在該告警出現(xiàn)的情況下需伴隨其他告警,才判斷出現(xiàn)該告警;
第四種為即時告警判斷,告警一出現(xiàn),立刻判斷出現(xiàn)該告警。
當(dāng)告警滿足告警標(biāo)簽的四種判斷時,告警生效。
二次定義告警級別如下:
當(dāng)告警為BSC/RNC/HLR告警時:告警級別=告警網(wǎng)元的業(yè)務(wù)狀態(tài)分值×告警網(wǎng)元區(qū)域分值×告警當(dāng)前時段網(wǎng)元對應(yīng)的歷史時段分值;
當(dāng)告警為基站告警時:告警級別=告警基站的業(yè)務(wù)狀態(tài)分值×告警站點(diǎn)級別分值×告警當(dāng)前時段基站對應(yīng)的歷史時段分值;
當(dāng)告警為動力告警時:告警級別=告警點(diǎn)分值×電池續(xù)航能力分值;
當(dāng)告警為外部告警時:告警級別=告警點(diǎn)分值×[(門禁告警分值8)∨(火警告警分值8)∨(溫度告警分值2)∨(水浸告警分值5)];
當(dāng)告警為承載類傳輸告警時:告警級別=保護(hù)倒換機(jī)制分值×[(傳輸承載基站數(shù)×基站退服告警二次定義告警級別)+(傳輸承載網(wǎng)元數(shù)×網(wǎng)元二次定義告警級別)];
當(dāng)告警為承載類MGW、IP承載網(wǎng)網(wǎng)元告警時:告警級別=保護(hù)倒換機(jī)制分值×(網(wǎng)元下帶BSC/RNC數(shù)×網(wǎng)元二次定義告警級別)。
在設(shè)計中,通過ESB平臺有效實(shí)現(xiàn)了多網(wǎng)管的告警信息統(tǒng)一標(biāo)準(zhǔn)化采集,通過令牌漏斗算法實(shí)現(xiàn)告警信息的獲取,也保證了告警信息獲取的實(shí)時性和可靠性,對告警進(jìn)行標(biāo)簽標(biāo)示的標(biāo)準(zhǔn)化定制,對從龐大的告警信息數(shù)據(jù)中篩選出不到2%的真實(shí)影響層面大,需及時處理的告警,該方法的實(shí)時性,準(zhǔn)確性很高,可以很好的保障監(jiān)控的效率和質(zhì)量。
該方法的告警獲取合理性較高,可以實(shí)現(xiàn)性較強(qiáng),實(shí)時性和穩(wěn)定性方面經(jīng)過測試,完全可以滿足網(wǎng)絡(luò)監(jiān)控的需要。在告警的篩選方面,告警標(biāo)簽的方法容易配置和實(shí)現(xiàn)。可作為一種網(wǎng)管告警標(biāo)準(zhǔn)化的方法,有較強(qiáng)的實(shí)用性和可拓展性。
[1] 朱輝生. VC中基于Socket的網(wǎng)絡(luò)編程[J]. 計算機(jī)應(yīng)用與軟件,2004,(4)
[2] 馬桂婷, 武洪萍, 袁淑玲主編. 數(shù)據(jù)庫原理及應(yīng)用[M]. 北京:北京大學(xué)出版社.
[3] 李建東. 信息網(wǎng)絡(luò)基礎(chǔ)[M]. 西安:西安電子科技大學(xué)出版社.
[4] 邊小凡, 代艷紅, 馬兵會. 基于ESB的企業(yè)內(nèi)部構(gòu)件與Web服務(wù)[J]. 計算機(jī)工程與設(shè)計, 2009,(04)