徐冰珂,周宇喆,楊茂林,謝遠航,李曉瑜,雷 航
(1.電子科技大學 信息與軟件工程學院,成都 610054; 2.北京思特奇信息技術股份有限公司,北京 100046)(*通信作者電子郵箱maolyang@126.com)
電信網絡中軟硬件系統通過通信網絡相互連接,當某些網絡組件發生故障或存在故障隱患而發生告警時,與其相關聯的其他組件可能隨之發生告警,從而形成告警鏈。準確分析和定位告警根源成為智慧網絡運營面臨的重要課題[1]。然而,由于網絡組件間的調用關系復雜且網絡監控指標種類多樣,網絡監控中心可能持續接收大量告警信息。根據北京思特奇信息技術股份有限公司(http://www.si-tech.com.cn)所提供的數據,一個網絡監控中心可能涉及數萬個告警元(即:發生告警的最小單元),且每小時可能接收數百條告警信息。通過樣例分析發現,少數網絡組件頻繁發生告警,且這些告警往往由網絡負載變化所引發,并非嚴重的網絡故障。這些發生頻率高而重要程度低的告警信息對網絡故障分析與診斷造成較大干擾。為此,本文提出一種告警過濾算法對網絡告警進行預處理,以減少網絡監控中心處理的告警量,同時提高網絡告警根源定位的準確性。
網絡故障定位與診斷已有近30年研究歷史[1-2],相關研究主要包括:第一,基于網絡系統中抽象出的專家經驗,采用規則推理、神經網絡、決策樹、邏輯回歸等人工智能技術進行故障判定[3-6];第二,基于網絡拓撲結構信息,采用依賴圖、貝葉斯網絡等圖論技術進行故障溯源[7-9];第三,基于網絡組件間的調用關系,采用模型追溯技術進行網絡故障根源分析[10-11]。然而,在大規模電信網絡中,由于難以準確獲取和維護網絡拓撲、調用關系等專家信息,使得上述方法的應用受到不同程度的限制。不同于傳統研究方法,本文基于告警歷史數據采用規則過濾的方法研究告警過濾問題,本文算法不依賴于既有的物理網絡拓撲結構和網絡組件間的調用關系,因而具有更強的通用性。
在告警過濾相關研究方面,Wang等[12]根據各類告警的持續時間分布,提出一種動態閾值設定方法FTD(Flexible Transient flapping Determination)用于過濾持續時間相對短的告警。本文算法是對該方法的擴展,在分析告警持續時間分布的基礎上對告警頻率、影響力等進行綜合分析。閆生超等[13]結合貝葉斯模型,提出一種基于組合規則的告警過濾器模型。王保義等[14]針對全局網絡拓撲和告警特征構建依賴搜索樹模型,利用聚類關聯將一類告警節點用類中心代替,從而實現告警過濾。石永革等[15]與張現飛等[16]采用分層過濾機制構建告警過濾規則,通過逐層收斂確定需要過濾的告警。然而,文獻[13-16]側重于策略與框架研究,尚無數據實例支撐。本文在模型框架研究基礎上進一步設計并分析了告警過濾算法。
電信網絡中,由于網絡負載變化以及告警閾值設置等原因,使得網絡中出現大量頻繁發生且持續時間較短的告警。為了對網絡告警進行合理的預處理,對我國某省電信運營監控中心2016年連續4個月的約70萬條告警數據作量化分析(數據來源于北京思特奇信息技術股份有限公司)。分析發現告警數據具有如下特征:
首先,不同告警元所產生的告警量分布不均勻,大多數告警由少量告警元產生。由于告警閾值設置以及網絡負載動態變化等原因,一部分告警元可能頻繁發生告警。例如,為了監測CPU負載,設置CPU利用率高于95%時觸發告警,則當計算密集型應用執行或系統短暫過載時均可能觸發CPU利用率告警。與其他關鍵故障所觸發的告警(如硬盤損壞、數據庫故障等)相比,CPU利用率告警的數量明顯更高。通過統計各告警元的告警量,計算告警量最大的前x個告警元所產生的告警占總告警量的比例,得到告警量分布如圖1所示。統計分析發現,由約1.4萬個告警元所產生的告警中,告警量最大的2 000個告警元(約占15%)所產生的告警量占總告警量的約90%。

圖1 高頻告警示意圖Fig. 1 High-frequency alarm diagram
第二,對于告警量大的告警元所產生的告警,其持續時間(即:從告警入庫到消除的時間)往往較短。通過分析樣本集中所有告警的持續時間,算得告警平均持續時間約為302 min。取告警量最大的10個告警元,分別統計持續時間小于15 min、30 min、45 min的告警所占比例,如表1所示。以告警元A為例,在其發生的3 874次告警中,持續時間小于15 min的告警所占比例超過76%。從統計學的角度,該告警元所產生的告警在15 min內消除的概率超過76%,在45 min內消除的概率超過92%。由此可預測,告警元A未來發生告警時其持續時間小于平均持續時間302 min的可能性較大。

表1 告警量最大的10個告警元存活時間分布Tab. 1 Survival time distribution of 10 alarm element with maximum amount of alarms
進一步分析發現,這些高頻且短暫的告警通常為CPU利用率告警、內存使用率告警、日志類告警等。這些告警往往受網絡瞬時負載影響,當網絡負載趨于平穩時相應的告警會自動消失,因而通常不是網絡故障的根源。
第三,告警量大的告警元發生告警的時間密度較穩定。以表1中的告警元A為例,將告警元A的告警記錄按時間先后排序,并計算各個告警記錄離第一條告警記錄的時間間隔(以小時為單位),結果如圖2所示。可見,上述時間間隔呈現明顯的線性分布,這表明告警元A發生告警的時間密度(或頻率)比較穩定。

圖2 高頻告警時間分布Fig. 2 Time distribution of high-frequency alarms
第四,網絡告警量隨時間變化。系統運行期間動態的需求變化、業務增減、技術升級、系統更換等,使得網絡結構與應用邏輯不斷發生改變,因此,單位時間內的告警量也隨之變化。以連續5天內整個網絡系統發生的告警數量為一個統計單元,系統告警量隨時間變化的情況如圖3所示。可見,第一個月的告警量明顯大于隨后各個月的告警量。

圖3 告警量分布Fig. 3 Distribution of amount of alarms
綜合上述告警數據特征可知,少量告警元可能發生大量持續時間短的非關鍵告警,為此,設計告警過濾算法對這類告警進行合理篩除。為了更準確識別非關鍵告警,本章首先引入告警影響力和高頻瞬態告警的定義。
網絡系統中的軟硬件依賴關系使得網絡故障具有傳遞性,當一個網絡組件發生告警后,與其相關聯的其他軟硬件組件可能隨之發生告警。從時序角度,告警元A引發另一告警元B發生告警的必要條件是告警元A發生告警后告警元B發生告警。因此,通過分析一個告警發生后有多少告警隨之發生,以衡量一個告警的重要程度。如果一個告警發生后隨之發生的告警越多,則認為該告警越重要。為此,定義告警影響力如下。
定義1 若告警元A的一個告警實例A.a的持續時間為T,且在此期間有N個其他告警元發生告警,則A.a的影響力FA,a為:
FA.a=N/T
(1)
根據定義1,如果在一個告警存活期間發生告警的其他有效告警元越密集,則該告警的影響力越大。在一個樣本集內,如果告警元A發生了多次告警(有多個告警實例),則將告警元A在該樣本集內的影響力定義為其所有告警實例影響力的算術平均值。
定義2 若告警元A在一段時間內發生了m次告警,則告警元A在這段時間內的影響力FA為:
(2)
上述告警影響力定義是從數據統計的角度衡量告警的衍生性,因此不需要針對具體系統的專家知識。進行告警過濾時,應避免影響力大的告警元所產生的告警被過濾掉。
告警過濾的直接目的是減少告警量。根據告警數據特征可知少量高頻告警所產生的告警量較大,而持續時間短的瞬態告警往往重要程度偏低。因此,在告警過濾時優先考慮篩除發生頻率高,持續時間短,告警影響力低的告警以減少告警量。為此,定義如下高頻瞬態告警。
定義3 給定包含N個告警元的樣本集和參數組(α,β,χ,δ),假設所有告警實例的平均存活時間為W,若任意告警元A的一個實例A.a滿足以下條件,則稱A.a為高頻瞬態告警。
1)告警元A屬于告警量最大的前α%告警元之一;
2)告警元A的平均存活時間小于βW;
3)告警元A屬于影響力最小的前χ%告警元之一;
4)對于告警元A的所有告警實例,A.a屬于持續時間最小的前δ%之一。
根據定義3,對于任意給定樣本集,W可通過樣本統計獲得,參數組(α,β,χ,δ)可根據實際需要進行配置。
基于以上定義的高頻瞬態告警設計告警過濾算法。實際應用中,告警過濾可分為離線過濾和在線過濾,分別應用于數據樣本離線分析以及實時告警在線過濾。前者針對告警數據記錄進行預處理,可用于數據訓練等;后者針對實時告警信息,可用于告警屏蔽或延緩告警處理等。如圖4所示,在智能告警根源分析系統中,歷史告警數據通過數據清洗后進行離線過濾,將過濾后的數據樣本用于后續告警關聯、權重訓練等離線分析;同時,相應的過濾參數被存儲起來用于在線過濾——當一條實時告警信息傳入監控中心時,在線過濾部分用于判斷是否忽略或延遲處理該告警。

圖4 告警過濾框架Fig. 4 Alarm filtering framework
離線分析處理的數據為歷史告警記錄,因此每條告警數據均有確切的持續時間,可通過數據統計獲得告警平均持續時間W。通過逐條判斷定義3的各項條件,可以確定每條告警記錄是否屬于高頻瞬態告警。若屬于高頻瞬態告警,則將其從數據樣本中刪除,否則保留。離線分析算法偽代碼如下:
輸入 告警數據樣本集S,參數組(α,β,χ,δ)。
輸出 過濾后的告警數據集S′。
S′=S
W=ave_alive(S)
// 計算告警平均持續時間
FORA.ainS:
IF A_is_freq(A,α)==TURE:
// 符合定義3的條件1)
IF A_ave_alive(A) <βW:
// 符合定義3的條件2)
IF A_impact(A) <χ:
// 符合定義3的條件3)
IF alive(A.a,δ)==TURE:
// 符合定義3的條件4)
RemoveA.afromS′
// 過濾掉A.a
RETURNS′
以上離線分析算法中,統計各告警元的告警量、計算告警平均持續時間,以及計算所有告警元的影響力均需要遍歷所有告警實例一次,令n為告警數據樣本的告警記錄數,則時間復雜度為O(n)。在此基礎上,進行告警過濾需要重新遍歷所有告警實例一次,因此算法整體時間復雜度為O(n)。
對于在線分析,告警平均持續時間W需要由離線分析部分提供。同時,由于實時告警的持續時間是變量,因此需要周期性判斷當前告警的持續時間是否滿足定義3中的條件4)。對于某個告警實例A.a,若定義3的前三個條件均滿足而條件4)不滿足,則延遲處理A.a直到條件4)滿足;否則,觸發告警處理程序。在線過濾流程如圖5所示。
為了評估本文算法性能,設計單因素實驗分析參數組(α,β,χ,δ)中各參數對告警過濾量的影響;同時,將本文算法與FTD算法[12]進行比較。
將我國某省電信運營監控中心2016年連續4個月的約70萬條告警記錄作為測試數據,通過單因素實驗分別測試告警過濾量隨參數α、β、χ、δ增大的變化趨勢,將算法過濾掉的告警量占數據樣本告警總量的比例作為評估標準。令壓縮比Φ表示過濾掉的告警量與告警總量的比值,Φ值越大表示過濾掉的告警數量越多。為了統一參數量級,令α′=α/100,χ′=χ/100,δ′=δ/100。實驗參數設置如表2所示。

表2 實驗參數Tab. 2 Experimental parameters

圖5 在線過濾流程Fig. 5 Online filtering flow chart

圖6 參數變化對壓縮比的影響Fig. 6 Effect of parameter changes on compression ratio
從圖6所示的實驗結果可看出,在單因素實驗中壓縮比Φ隨各參數數值增大而增大。
1)參數α′。
Φ在α′∈[0.01,0.09]區間內迅速增長,在α′>0.11后趨于平緩。根據圖1所示告警數據特征,告警量最大的1%告警元所產生的告警量與告警量最大的9%告警元所產生的告警量分別占總告警量的約26.7%和79.7%。在這一區間,符合定義3條件1)的告警數量隨α′增長而迅速增加,因此可能被過濾的告警量也隨之增加。當α′>0.11,隨α′值增大而增加的總告警量明顯變少,可能被過濾的告警量增速也相應趨緩。
2)參數β和χ′。
Φ隨β和χ′的增長而持續增長,且增長幅度相似,這是因為提高告警平均持續時間閾值和提高告警影響力閾值都可能使得更多告警成為高頻瞬態告警,因而增加了被過濾的概率。
3)參數δ′。
Φ在δ′<0.11時增長變化較快,在δ′ > 0.11后增長速度趨于平緩。根據表1所示告警數據特征可推知,高頻告警元所產生的告警持續時間往往遠小于告警平均持續時間。表1數據顯示,告警量最大的前10個告警元所產生的告警中,持續時間小于平均告警時間10%(即:告警持續時間小于30 min)的告警超過70%。因此,在δ′<0.11時滿足定義3條件4)的告警量隨δ′增大而快速增加,被過濾掉的告警數量也相應快速增長。
為了驗證告警過濾算法的準確性,將本文算法與FTD算法[12]進行對比。首先,基于現有的行業應用數據,在實驗樣本數據所涉及的1.46萬類告警中標記出0.49萬個“重點關注類”告警(占比約為34%)。隨后,在兩種算法壓縮比接近的情況下,分別統計兩種算法過濾掉的告警中“重點關注類”告警所占比例。相對于其他告警,“重點關注類”告警更可能是潛在的告警根源,因此認為在過濾掉的告警中,該類告警所占的比例越低則算法的準確性越高。
表3為不同壓縮比條件下,本文算法與FTD算法過濾的告警中“重點關注類”告警的占比。實驗結果顯示,本文算法過濾的告警中“重點關注類”告警的占比均低于FTD算法。例如實驗三中,兩種算法的壓縮比均為0.17,FTD算法“重點關注類”告警占比為0.21,而本文算法占比為0.17。可見,本文算法在告警過濾的準確性上優于FTD算法。

表3 本文算法和FTD算法的對比實驗結果Tab. 3 Experimental results comparison of proposed algorithm and FTD algorithm
本文基于電信網絡告警數據分析了網絡告警的基本特點,并提出了告警影響力以及高頻瞬態告警概念。在此基礎上,提出了O(n)復雜度的告警過濾算法,該算法可應用于面向告警數據的離線分析和在線過濾。通過單因素實驗分析了算法中各參數對算法性能的影響。實驗結果顯示,算法各參數與告警過濾量正相關。對比實驗顯示,本文算法在壓縮比相同的條件下比FTD算法具有更高的準確性。后續工作將進一步研究過濾參數的優化配置與動態閾值調整等相關技術。
致謝 感謝北京思特奇信息技術股份有限公司徐慶洲,以及電子科技大學王自升、常煜、陳丹、李趙寧、楊開勇、張世俊、張子恒、張翔等同學對本文算法以及實驗工作的幫助與支持。