李杰 張攀翔
摘 要 伴隨當今通信技術的日益發(fā)展與完備,通信市場領域開始出現日漸激烈的競爭,對移動運營商網絡性能要求也越來越高,而在整個移動網絡系統(tǒng)中,為用戶提供接入服務的基站系統(tǒng)占據著重要地位。而基站的保障和高效運行,關鍵在于如何高效處理基站告警。
【關鍵詞】基站告警準實時統(tǒng)一監(jiān)控 基站告警預處理決策樹
隨著業(yè)務的發(fā)展,基站的運維管理越來越自動化,在各種的自動化監(jiān)控告警設備的加入,針對基站的告警信息越來越多,如何高效的管理這些告警信息,避免日常的運維陷入海量告警的汪洋之中,是本文要討論的要點 。
1 告警信息的壓縮
越來越多的自動化設備產生的監(jiān)控告警,在大量告警風暴來臨的情況下,要解決以下2個重要問題:
(1)如何在告警風暴時壓縮告警;
(2)如何快速從大量告警中找到故障根源。
壓縮告警風暴,可采用按照告警重要程度進行壓縮,基站故障告警信息按照重要緊急程度可分為一般不緊急告警、一般緊急告警、重要不緊急告警、重要緊急告警四大類,首先從告警的重要緊急程度收斂告警信息。
其次,告警信息是分層次的, 每一層的告警又可分為原子告警,衍生性告警。因此,故障告警的報告,以重要性從最高層往最低層報,每層中重要性從原子告警到衍生性告警報,從而減少告警風暴。如圖1所示。
2 告警故障樹自動化分析
如何快速從大量告警中找到故障根源,采用故障樹分析方法,從告警源頭按照安全手冊,利用運維經驗和故障案例,設定每個推理節(jié)點的判決條件,當告警信息出現時,利用故障樹自動化分析平臺,實現故障告警的預處理,協(xié)助運維人員快速找到故障根源。
故障樹分析(Fault Tree Analysis,簡稱FTA)又稱事故樹分析,是安全系統(tǒng)工程中最重要的分析方法。事故樹分析從一個可能的事故開始,自上而下、一層層的尋找頂事件的直接原因和間接原因事件,直到基本原因事件,并用邏輯圖把這些事件之間的邏輯關系表達出來。
構建基站故障樹分析的原則有以下:
原則一:告警從高層向底層,在邏輯層次上面,越根源性的告警越先判斷。
原則二:從原子到衍生告警。
原則三:推理樹的建立根據告警來定。
原則四:驗證規(guī)則,根據經驗和知識庫來定。
以IP相關的告警為例(如圖2所示)。
當創(chuàng)建的故障樹越全面的時候,對故障信息的預處理則越準確,為了準實時的自動化處理告警信息,使用spark streaming+hadoop處理告警和存儲告警,整個基站告警信息預處理的框架如圖3所示。
3 引入了消息隊列機制,確保故障信息不丟失
為何要引入消息隊列?因為基站的告警信息太多的時候,可能會因為后端處理能力不足,造成告警信息遺落,為了不丟失告警信息,這里我們采用kafka進行告警的緩存,避免還沒來得及被消費的告警信息丟失。如圖4所示。
Kafka is a distributed,partitioned,replicated commit logservice。它提供了類似于JMS的特性,但是在設計實現上完全不同,此外它并不是JMS規(guī)范的實現。kafka對消息保存時根據Topic進行歸類,發(fā)送消息者成為Producer,消息接受者成為Consumer,此外kafka集群有多個kafka實例組成,每個實例(server)成為broker。無論是kafka集群,還是producer和consumer都依賴于zookeeper來保證系統(tǒng)可用性集群保存一些meta信息。
kafka即使消息被消費,消息仍然不會被立即刪除,日志文件將會根據broker中的配置要求,保留一定的時間之后刪除,從根本上保障了告警信息的安全。
Kafka主要特點:
同時為發(fā)布和訂閱提供高吞吐量。據了解,Kafka每秒可以生產約25萬消息(50 MB),每秒處理55萬消息(110 MB)。
可進行持久化操作。將消息持久化到磁盤,因此可用于批量消費,例如ETL,以及實時應用程序。通過將數據持久化到硬盤以及replication防止數據丟失。
分布式系統(tǒng),易于向外擴展。所有的producer、broker和consumer都會有多個,均為分布式的。無需停機即可擴展機器。
消息被處理的狀態(tài)是在consumer端維護,而不是由server端維護。當失敗時能自動平衡。
支持online和offline的場景。
4 使用spark streaming+hadoop處理告警信息
如圖5所示,使用Spark流處理告警信息,包括對告、消除告警等操作,這里使用spark的好處在于吞吐量高,容易維護。
Spark是一個類似于MapReduce的分布式計算框架,其核心是彈性分布式數據集,提供了比MapReduce更豐富的模型,可以在快速在內存中對數據集進行多次迭代,以支持復雜的數據挖掘算法和圖形計算算法。Spark Streaming是一種構建在Spark上的實時計算框架,它擴展了Spark處理大規(guī)模流式數據的能力。如圖6所示。
Spark Streaming的優(yōu)勢在于:
(1)能運行在100+的結點上,并達到秒級延遲。
(2)使用基于內存的Spark作為執(zhí)行引擎,具有高效和容錯的特性。
(3)能集成Spark的批處理和交互查詢。
(4)為實現復雜的算法提供和批處理類似的簡單接口。
5 總結
綜上所述,搭建一個自動化基站告警預處理平臺,將告警按照重要緊急程度進行壓縮,盡量減少衍生性告警,突出原子性告警,使用運維經驗和故障手冊創(chuàng)建豐富的故障分析樹模型,在spark當中自動化分析查找告警的根源。利用kafka保障告警信息的高可用性,結合spark在流處理實現基站告警的自動化分析,每一條告警推送到運維人員之前,就已經通過機器算法尋找到故障根源,減少運維人員重復機械的勞動,協(xié)助運維人員快速尋找基站故障的根源和解除基站故障告警。
參考文獻
[1]甄云恒.基站告警監(jiān)控系統(tǒng)的設計與實現[D].大連理工大學,2013.
[2]姚仁捷.Kafka在唯品會的應用實踐[D].云計算,2014.
作者單位
中國移動通信集團廣東有限公司 廣東省廣州市 510623