班 瑞 李 穎 鄒雨佳 郭旭芝 耿書鵬
1.中訊郵電咨詢設計院有限公司;2.北京航天航空大學
網絡管理是對硬件、軟件和人力的綜合使用,使得各個部分能夠協調高效地對網絡資源進行監視、測試、配置、分析、評價和控制,以保障網絡系統穩定正常的運行。另外,網絡運營中每天都會產生大量的網元告警。設備產生的告警信息數量龐大,種類繁多,且一次故障往往會在眾多互連設備上產生大量的告警。因此,當網絡出現故障時能及時對告警信息進行報告和處理,并協調、保持網絡系統的高效運行,在網絡管理中占據著至關重要的地位。
本文針對網元告警,提出一種基于5G虛擬化告警采集、大數據信息分類與存儲、松耦合式數據處理與分析的告警接收處理方法,大幅提高告警信息的處理效率與存儲能力,降低網絡運營維護的成本,盡量避免因告警發現和處理的不及時導致的網絡故障問題。
聯通傳統智能城域網采用SNMP trap來接收網元發送的告警。采集程序監聽指端口的告警報文,默認端口為162端口,接收到告警以后通過解析分析將其存儲到數據庫中。告警分析需要具備告警設備資源數據識別、合并、過濾等,通常程序使用并發的方式處理告警。這種利用SNMP trap來接受網元發送的告警,在通常情況下能夠滿足常用的告警分析,但是存在以下幾個缺點:
(1)采集規模不夠。告警采集分析程序一般為單機程序,能夠支撐的網元數在萬級別以內,這個規模可以支撐一般的企業網和城域網,但是在面對運營商級集中式管理的模式下,網元數量通常在十萬級,傳統方式難以支撐。
(2)告警分析的時效性差。傳統的實現方式中,為了提高采集性能,對分析的處理比較簡單。一般深入分析都是采用事后的方式,分析時效難以滿足日常的運維要求。告警采集數據以數據流的方式流入分析程序,分析的延時在10秒級。
(3)數據開放性不夠。傳統的數據方式原始告警采集分析完以后,一般直接入庫,對于第三方原始告警數據是封閉的。數據采集和分析是緊耦合的,原始數據無法進行共享。
隨著5G時代的到來,快速發展的云網業務、垂直行業的創新應用等都對承載網絡提出了新的要求,新型的網絡需要面臨數十萬的設備管理以及大量的業務開通,因而網元告警數量規模更是以億計量,傳統的告警分析系統難以支撐大規模的告警采集與大量數據的實時分析。針對傳統告警采集分析存在的不足,本文的網元告警采集分析系統從需求上要求技術架構需要滿足以下幾點:(1)大規模采集能力;(2)海量數據存儲能力;(3)實時數據處理能力;(4)集群資源利用最大化;(5)多系統大數據分析能力;(6)靈活的對外業務支撐服務能力。
結合以上特點,系統設計的方案以云計算的架構思路出發,提升系統的計算能力。采集使用DOCKER化,存儲使用分布式列式存儲的技術,有效地解決了網元規模限制的問題。這樣做不但可以實現采集的規模大幅度提高,而且還可以同時實現更多的告警數據儲存。
另一方面,新的采集和分析系統采用分布式計算方法。分布式計算與傳統的集中式計算相比,具有稀有資源可以共享、可以在多臺計算機上平衡計算負載的特點,更適合處理需要大量算力的告警數據的分析與采集。分布式計算可以極大地提升計算的效率,同時也為提高實時性的分析奠定了基礎。
系統將采集和分析分成兩塊獨立程序,中間通過轉發層進行數據鏈接,所以新告警的分析日志的數據是開放并支持第三方的。這樣不但可以節約中間處理數據的時間,而且為對外業務其他接口處理數據提供了便利。
本系統使用一種松耦合的方式完成告警的采集和分析。主要包括四個方面的內容,即告警采集、轉發、分析、存儲,整體架構如圖1所示。

圖1 總體技術架構
告警采集采用SNMP采集方式,并將告警采集的程序DOCKER化。DOCKER容器虛擬化技術可以實現應用程序的快捷部署,并且支持橫向擴展,以便應對5G時代帶來的更大規模的日志收集、存儲和分析。基于該系統架構,系統各層之間通過網絡傳輸方式進行交互,實現系統層級的獨立解耦。
告警轉發采用Kafka日志系統作為消息中間件,采用具有高吞吐率以及高可用性特點的消息中間件Kafka作為消息存儲與消費的底層技術支持,并在Kafka定義的Topic基礎上以邏輯Topic的概念作為消息發布訂閱的基本單元。
告警分析采用Spark分布式計算框架,在基于Spark Streaming的實時日志分析與信息管理系統中,利用基于Kafka和Spark Streaming的實時流處理,對海量日志數據進行實時分析處理。
告警存儲利用基于HDFS分布式系統框架的列式分布式數據庫實現,在集群節點間實現負載均衡算法,在保證副本跨交換機存儲的原則上,使新增節點之后數據存儲重新達到基于字段均衡的狀態,保證存儲的可靠性與數據量。
新型告警采集分析系統將傳統的告警采集程序DOCKER化,這樣原有的采集程序只需少量變更,即可完成虛擬化安裝。DOCKER化后可以支持多節點部署快速部署采集程序,極大提升采集能力。
告警采集主要的工作為適配各個廠家的告警定義,以統一的形式發送到消息中間件中。轉化后的告警格式如下:
告警ID(0)||告警時間(yyyy-MM-dd HH:mm:ss)(1)||告警設備IP(2)||告警原始時間戳(3)||廠家(4)||告警標題(5)||原始名稱(6)||原始OID(7)||廠家告警級別(8)||統一告警級別(9)||告警解釋(10)||MIB類型(11)||告警類別(12)||該事件對網元的影響(13)||該事件對業務的影響(14)||告警參數數量(15)||實際告警參數數量(16)||告警參數1序號(17)||告警參數1原始名稱(18)||告警參數1原始OID(19)||告警參數1原始類型(20)||告警參數1標題(21)||告警參數1詳細解釋(22)||告警參數1值(23)||告警參數2...
告警采集分析系統將傳統的告警采集和分析分離,使用日志轉發的方式將告警存儲到消息中間件中。常見的數據集成需要使用Flume作為日志收集系統,本文系統的告警存儲使用Kafka作為日志收集系統消息中間件,直接將消息寫入HDFS中。消息中間件以Kafka集群的方式部署,利用Kafka作為分布式發布訂閱消息系統的特性,對磁盤數據結構提供消息的持久化,長時間保持大量存儲的告警數據的穩定性能,保障數據轉發的可靠性與實時性。
將告警存儲到消息中間件Kafka的另一目的是為了原始數據的開放性,Kafka具有解耦特點,可以在告警信息處理過程中插入一個隱含的、基于數據的接口層,第三方系統可以通過實現Kafka接口完成與告警系統的通信操作。這種松耦合式的數據緩存,不僅僅使得網管自身的分析程序可以使用該數據,其他第三方的系統也可以通過消息中間件獲取告警原始數據進行分析加工。
基于電信網絡告警數據的特點,利用Spark分布式計算框架,實時分析技術消費消息中間件中的告警信息,通過算子、緩存等方式分析告警相關的網元信息、告警的過濾規則、合并規則等。實時計算模型采用Spark Streaming,可以把指定的時間片段的流數據積累為RDD,繼而對每個RDD進行微批次處理,實現大吞吐量實時處理大規模的流式數據,使得系統可以支持每秒千萬級的告警處理。同時Spark Streaming可以作為離線分析的計算模型,選用Spark Streaming進行實時分析可以只需要維護并監控Spark集群,降低系統的維護難度與成本。
告警分析從消息中間件中獲取數據后將數據轉成流的形式將獲取的告警日志信息轉成通用的實體類,通過分布式計算進行分析產生最終分析結果。常用算子包括map、reduce、map partition、for each等。實體類的字段定義如表1所示。通過分布式計算的算子對數據進行轉換分析最終產生分析結果。

表1 告警字段定義表

?
使用Kafka作為日志收集系統直接將消息寫入HDFS中,將分析后的告警數據存儲到分布式列式數據庫中。HDFS還有相應處理并發訪問的機制,通過這樣的機制使得內存讀取速度快的同時,還能夠適應多個客戶端同時訪問的壓力。
與傳統數據庫相比,分布式數據庫具有可擴展性和高可靠性兩個特點,分布式數據庫弱化了數據處理過程中的一致性,保障最終結果數據的一致性,這樣既可以擴展數據庫的規模,也滿足企業的應用需求。列式數據庫可以有效降低系統I/O流,充分發揮字段內部壓縮的優勢,為告警數據的存儲節省大量的空間。
本文的告警分析采集系統采用HDFS作為數據的存儲,列式分布式數據庫以集群的方式部署,支持存儲半年以上的告警數據,并且支持即時查詢。
中國聯通以5G建設及5G承載網絡構建為契機,構建了一張融合承載的智能城域網,告警采集分析系統目前已通過設備廠家互通測試,逐步投入到智能城域網網管系統運營場景中。
應用效果具備以下特點:(1)告警采集采用虛擬化技術,可以快速部署多個采集節點,有效地解決了傳統網管告警模塊告警采集規模的問題;(2)利用分布式計算的技術,可以滿足每秒千萬級告警的分析,有效地解決了告警分析的時效性;(3)引入消息中間件,支持告警轉發,有效地解決了數據開放性的問題;(4)利用分布式列式數據庫存儲大量告警信息,滿足半年內告警的數據隨查隨用,有效地解決了告警數據量大而導致不得不定期清除數據的問題。
智能城域網系統目前已納管全國超過3萬5千臺設備,在近一個月的網元告警采集分析實際運用中,網元平均每分鐘通過SNMP Trap傳送給網管的告警數量近5萬條。系統將告警流統一存儲在消息中間件Kafka中,并根據時間片段從Kafka讀取告警流數據積累為RDD,進而利用Spark快速分析處理告警數據。處理完成后的告警將展示在智能城域網網管系統的實時告警板上,實時告警板支持用戶自定義時間片段,最小粒度為10秒刷新一次告警數據展示。
系統所采取的告警采集分析方式,可以保障告警從網元發出至分析展示在系統頁面上所需的處理時間維持在1秒以內,可以滿足5G時代大規模的網元告警處理,具有良好的魯棒性與穩定性。
目前智能城域網網管系統月均系統使用人數超過5000人次,月處理數據量達200億。網管系統每日需處理千萬級以上的告警數據,月告警數據已達到3億以上,并實現每10秒近1萬告警數據的實時分析與展示,同時系統將儲存一年內的所有告警數據并保證數據的可靠性與完整性。網管系統已成功實現告警數據與數個第三方系統對接,實現大規模告警數據派單等功能,推動了網管系統中告警模塊的創新與發展。
本文提出的告警采集分析系統,在保障數據的穩定性的同時將告警采集流程簡化并虛擬化,利用分布式計算實現告警采集程序大規模快速部署,是未來提升網絡管理穩定的關鍵手段,目前已在現網應用成功并取得良好的運作效果。本系統的設計能夠更加可靠穩定、靈活快速滿足運維人員的配置需求,及時采集并分析5G網元告警,便于運維人員及時且準確地定位問題,維護網絡穩定,極大提升運維效率,減少人力成本。