班 瑞 李 穎 鄒雨佳 郭旭芝 耿書鵬
1.中訊郵電咨詢?cè)O(shè)計(jì)院有限公司;2.北京航天航空大學(xué)
網(wǎng)絡(luò)管理是對(duì)硬件、軟件和人力的綜合使用,使得各個(gè)部分能夠協(xié)調(diào)高效地對(duì)網(wǎng)絡(luò)資源進(jìn)行監(jiān)視、測(cè)試、配置、分析、評(píng)價(jià)和控制,以保障網(wǎng)絡(luò)系統(tǒng)穩(wěn)定正常的運(yùn)行。另外,網(wǎng)絡(luò)運(yùn)營中每天都會(huì)產(chǎn)生大量的網(wǎng)元告警。設(shè)備產(chǎn)生的告警信息數(shù)量龐大,種類繁多,且一次故障往往會(huì)在眾多互連設(shè)備上產(chǎn)生大量的告警。因此,當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時(shí)能及時(shí)對(duì)告警信息進(jìn)行報(bào)告和處理,并協(xié)調(diào)、保持網(wǎng)絡(luò)系統(tǒng)的高效運(yùn)行,在網(wǎng)絡(luò)管理中占據(jù)著至關(guān)重要的地位。
本文針對(duì)網(wǎng)元告警,提出一種基于5G虛擬化告警采集、大數(shù)據(jù)信息分類與存儲(chǔ)、松耦合式數(shù)據(jù)處理與分析的告警接收處理方法,大幅提高告警信息的處理效率與存儲(chǔ)能力,降低網(wǎng)絡(luò)運(yùn)營維護(hù)的成本,盡量避免因告警發(fā)現(xiàn)和處理的不及時(shí)導(dǎo)致的網(wǎng)絡(luò)故障問題。
聯(lián)通傳統(tǒng)智能城域網(wǎng)采用SNMP trap來接收網(wǎng)元發(fā)送的告警。采集程序監(jiān)聽指端口的告警報(bào)文,默認(rèn)端口為162端口,接收到告警以后通過解析分析將其存儲(chǔ)到數(shù)據(jù)庫中。告警分析需要具備告警設(shè)備資源數(shù)據(jù)識(shí)別、合并、過濾等,通常程序使用并發(fā)的方式處理告警。這種利用SNMP trap來接受網(wǎng)元發(fā)送的告警,在通常情況下能夠滿足常用的告警分析,但是存在以下幾個(gè)缺點(diǎn):
(1)采集規(guī)模不夠。告警采集分析程序一般為單機(jī)程序,能夠支撐的網(wǎng)元數(shù)在萬級(jí)別以內(nèi),這個(gè)規(guī)??梢灾我话愕钠髽I(yè)網(wǎng)和城域網(wǎng),但是在面對(duì)運(yùn)營商級(jí)集中式管理的模式下,網(wǎng)元數(shù)量通常在十萬級(jí),傳統(tǒng)方式難以支撐。
(2)告警分析的時(shí)效性差。傳統(tǒng)的實(shí)現(xiàn)方式中,為了提高采集性能,對(duì)分析的處理比較簡單。一般深入分析都是采用事后的方式,分析時(shí)效難以滿足日常的運(yùn)維要求。告警采集數(shù)據(jù)以數(shù)據(jù)流的方式流入分析程序,分析的延時(shí)在10秒級(jí)。
(3)數(shù)據(jù)開放性不夠。傳統(tǒng)的數(shù)據(jù)方式原始告警采集分析完以后,一般直接入庫,對(duì)于第三方原始告警數(shù)據(jù)是封閉的。數(shù)據(jù)采集和分析是緊耦合的,原始數(shù)據(jù)無法進(jìn)行共享。
隨著5G時(shí)代的到來,快速發(fā)展的云網(wǎng)業(yè)務(wù)、垂直行業(yè)的創(chuàng)新應(yīng)用等都對(duì)承載網(wǎng)絡(luò)提出了新的要求,新型的網(wǎng)絡(luò)需要面臨數(shù)十萬的設(shè)備管理以及大量的業(yè)務(wù)開通,因而網(wǎng)元告警數(shù)量規(guī)模更是以億計(jì)量,傳統(tǒng)的告警分析系統(tǒng)難以支撐大規(guī)模的告警采集與大量數(shù)據(jù)的實(shí)時(shí)分析。針對(duì)傳統(tǒng)告警采集分析存在的不足,本文的網(wǎng)元告警采集分析系統(tǒng)從需求上要求技術(shù)架構(gòu)需要滿足以下幾點(diǎn):(1)大規(guī)模采集能力;(2)海量數(shù)據(jù)存儲(chǔ)能力;(3)實(shí)時(shí)數(shù)據(jù)處理能力;(4)集群資源利用最大化;(5)多系統(tǒng)大數(shù)據(jù)分析能力;(6)靈活的對(duì)外業(yè)務(wù)支撐服務(wù)能力。
結(jié)合以上特點(diǎn),系統(tǒng)設(shè)計(jì)的方案以云計(jì)算的架構(gòu)思路出發(fā),提升系統(tǒng)的計(jì)算能力。采集使用DOCKER化,存儲(chǔ)使用分布式列式存儲(chǔ)的技術(shù),有效地解決了網(wǎng)元規(guī)模限制的問題。這樣做不但可以實(shí)現(xiàn)采集的規(guī)模大幅度提高,而且還可以同時(shí)實(shí)現(xiàn)更多的告警數(shù)據(jù)儲(chǔ)存。
另一方面,新的采集和分析系統(tǒng)采用分布式計(jì)算方法。分布式計(jì)算與傳統(tǒng)的集中式計(jì)算相比,具有稀有資源可以共享、可以在多臺(tái)計(jì)算機(jī)上平衡計(jì)算負(fù)載的特點(diǎn),更適合處理需要大量算力的告警數(shù)據(jù)的分析與采集。分布式計(jì)算可以極大地提升計(jì)算的效率,同時(shí)也為提高實(shí)時(shí)性的分析奠定了基礎(chǔ)。
系統(tǒng)將采集和分析分成兩塊獨(dú)立程序,中間通過轉(zhuǎn)發(fā)層進(jìn)行數(shù)據(jù)鏈接,所以新告警的分析日志的數(shù)據(jù)是開放并支持第三方的。這樣不但可以節(jié)約中間處理數(shù)據(jù)的時(shí)間,而且為對(duì)外業(yè)務(wù)其他接口處理數(shù)據(jù)提供了便利。
本系統(tǒng)使用一種松耦合的方式完成告警的采集和分析。主要包括四個(gè)方面的內(nèi)容,即告警采集、轉(zhuǎn)發(fā)、分析、存儲(chǔ),整體架構(gòu)如圖1所示。
圖1 總體技術(shù)架構(gòu)
告警采集采用SNMP采集方式,并將告警采集的程序DOCKER化。DOCKER容器虛擬化技術(shù)可以實(shí)現(xiàn)應(yīng)用程序的快捷部署,并且支持橫向擴(kuò)展,以便應(yīng)對(duì)5G時(shí)代帶來的更大規(guī)模的日志收集、存儲(chǔ)和分析?;谠撓到y(tǒng)架構(gòu),系統(tǒng)各層之間通過網(wǎng)絡(luò)傳輸方式進(jìn)行交互,實(shí)現(xiàn)系統(tǒng)層級(jí)的獨(dú)立解耦。
告警轉(zhuǎn)發(fā)采用Kafka日志系統(tǒng)作為消息中間件,采用具有高吞吐率以及高可用性特點(diǎn)的消息中間件Kafka作為消息存儲(chǔ)與消費(fèi)的底層技術(shù)支持,并在Kafka定義的Topic基礎(chǔ)上以邏輯Topic的概念作為消息發(fā)布訂閱的基本單元。
告警分析采用Spark分布式計(jì)算框架,在基于Spark Streaming的實(shí)時(shí)日志分析與信息管理系統(tǒng)中,利用基于Kafka和Spark Streaming的實(shí)時(shí)流處理,對(duì)海量日志數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理。
告警存儲(chǔ)利用基于HDFS分布式系統(tǒng)框架的列式分布式數(shù)據(jù)庫實(shí)現(xiàn),在集群節(jié)點(diǎn)間實(shí)現(xiàn)負(fù)載均衡算法,在保證副本跨交換機(jī)存儲(chǔ)的原則上,使新增節(jié)點(diǎn)之后數(shù)據(jù)存儲(chǔ)重新達(dá)到基于字段均衡的狀態(tài),保證存儲(chǔ)的可靠性與數(shù)據(jù)量。
新型告警采集分析系統(tǒng)將傳統(tǒng)的告警采集程序DOCKER化,這樣原有的采集程序只需少量變更,即可完成虛擬化安裝。DOCKER化后可以支持多節(jié)點(diǎn)部署快速部署采集程序,極大提升采集能力。
告警采集主要的工作為適配各個(gè)廠家的告警定義,以統(tǒng)一的形式發(fā)送到消息中間件中。轉(zhuǎn)化后的告警格式如下:
告警ID(0)||告警時(shí)間(yyyy-MM-dd HH:mm:ss)(1)||告警設(shè)備IP(2)||告警原始時(shí)間戳(3)||廠家(4)||告警標(biāo)題(5)||原始名稱(6)||原始OID(7)||廠家告警級(jí)別(8)||統(tǒng)一告警級(jí)別(9)||告警解釋(10)||MIB類型(11)||告警類別(12)||該事件對(duì)網(wǎng)元的影響(13)||該事件對(duì)業(yè)務(wù)的影響(14)||告警參數(shù)數(shù)量(15)||實(shí)際告警參數(shù)數(shù)量(16)||告警參數(shù)1序號(hào)(17)||告警參數(shù)1原始名稱(18)||告警參數(shù)1原始OID(19)||告警參數(shù)1原始類型(20)||告警參數(shù)1標(biāo)題(21)||告警參數(shù)1詳細(xì)解釋(22)||告警參數(shù)1值(23)||告警參數(shù)2...
告警采集分析系統(tǒng)將傳統(tǒng)的告警采集和分析分離,使用日志轉(zhuǎn)發(fā)的方式將告警存儲(chǔ)到消息中間件中。常見的數(shù)據(jù)集成需要使用Flume作為日志收集系統(tǒng),本文系統(tǒng)的告警存儲(chǔ)使用Kafka作為日志收集系統(tǒng)消息中間件,直接將消息寫入HDFS中。消息中間件以Kafka集群的方式部署,利用Kafka作為分布式發(fā)布訂閱消息系統(tǒng)的特性,對(duì)磁盤數(shù)據(jù)結(jié)構(gòu)提供消息的持久化,長時(shí)間保持大量存儲(chǔ)的告警數(shù)據(jù)的穩(wěn)定性能,保障數(shù)據(jù)轉(zhuǎn)發(fā)的可靠性與實(shí)時(shí)性。
將告警存儲(chǔ)到消息中間件Kafka的另一目的是為了原始數(shù)據(jù)的開放性,Kafka具有解耦特點(diǎn),可以在告警信息處理過程中插入一個(gè)隱含的、基于數(shù)據(jù)的接口層,第三方系統(tǒng)可以通過實(shí)現(xiàn)Kafka接口完成與告警系統(tǒng)的通信操作。這種松耦合式的數(shù)據(jù)緩存,不僅僅使得網(wǎng)管自身的分析程序可以使用該數(shù)據(jù),其他第三方的系統(tǒng)也可以通過消息中間件獲取告警原始數(shù)據(jù)進(jìn)行分析加工。
基于電信網(wǎng)絡(luò)告警數(shù)據(jù)的特點(diǎn),利用Spark分布式計(jì)算框架,實(shí)時(shí)分析技術(shù)消費(fèi)消息中間件中的告警信息,通過算子、緩存等方式分析告警相關(guān)的網(wǎng)元信息、告警的過濾規(guī)則、合并規(guī)則等。實(shí)時(shí)計(jì)算模型采用Spark Streaming,可以把指定的時(shí)間片段的流數(shù)據(jù)積累為RDD,繼而對(duì)每個(gè)RDD進(jìn)行微批次處理,實(shí)現(xiàn)大吞吐量實(shí)時(shí)處理大規(guī)模的流式數(shù)據(jù),使得系統(tǒng)可以支持每秒千萬級(jí)的告警處理。同時(shí)Spark Streaming可以作為離線分析的計(jì)算模型,選用Spark Streaming進(jìn)行實(shí)時(shí)分析可以只需要維護(hù)并監(jiān)控Spark集群,降低系統(tǒng)的維護(hù)難度與成本。
告警分析從消息中間件中獲取數(shù)據(jù)后將數(shù)據(jù)轉(zhuǎn)成流的形式將獲取的告警日志信息轉(zhuǎn)成通用的實(shí)體類,通過分布式計(jì)算進(jìn)行分析產(chǎn)生最終分析結(jié)果。常用算子包括map、reduce、map partition、for each等。實(shí)體類的字段定義如表1所示。通過分布式計(jì)算的算子對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換分析最終產(chǎn)生分析結(jié)果。
表1 告警字段定義表
?
使用Kafka作為日志收集系統(tǒng)直接將消息寫入HDFS中,將分析后的告警數(shù)據(jù)存儲(chǔ)到分布式列式數(shù)據(jù)庫中。HDFS還有相應(yīng)處理并發(fā)訪問的機(jī)制,通過這樣的機(jī)制使得內(nèi)存讀取速度快的同時(shí),還能夠適應(yīng)多個(gè)客戶端同時(shí)訪問的壓力。
與傳統(tǒng)數(shù)據(jù)庫相比,分布式數(shù)據(jù)庫具有可擴(kuò)展性和高可靠性兩個(gè)特點(diǎn),分布式數(shù)據(jù)庫弱化了數(shù)據(jù)處理過程中的一致性,保障最終結(jié)果數(shù)據(jù)的一致性,這樣既可以擴(kuò)展數(shù)據(jù)庫的規(guī)模,也滿足企業(yè)的應(yīng)用需求。列式數(shù)據(jù)庫可以有效降低系統(tǒng)I/O流,充分發(fā)揮字段內(nèi)部壓縮的優(yōu)勢(shì),為告警數(shù)據(jù)的存儲(chǔ)節(jié)省大量的空間。
本文的告警分析采集系統(tǒng)采用HDFS作為數(shù)據(jù)的存儲(chǔ),列式分布式數(shù)據(jù)庫以集群的方式部署,支持存儲(chǔ)半年以上的告警數(shù)據(jù),并且支持即時(shí)查詢。
中國聯(lián)通以5G建設(shè)及5G承載網(wǎng)絡(luò)構(gòu)建為契機(jī),構(gòu)建了一張融合承載的智能城域網(wǎng),告警采集分析系統(tǒng)目前已通過設(shè)備廠家互通測(cè)試,逐步投入到智能城域網(wǎng)網(wǎng)管系統(tǒng)運(yùn)營場(chǎng)景中。
應(yīng)用效果具備以下特點(diǎn):(1)告警采集采用虛擬化技術(shù),可以快速部署多個(gè)采集節(jié)點(diǎn),有效地解決了傳統(tǒng)網(wǎng)管告警模塊告警采集規(guī)模的問題;(2)利用分布式計(jì)算的技術(shù),可以滿足每秒千萬級(jí)告警的分析,有效地解決了告警分析的時(shí)效性;(3)引入消息中間件,支持告警轉(zhuǎn)發(fā),有效地解決了數(shù)據(jù)開放性的問題;(4)利用分布式列式數(shù)據(jù)庫存儲(chǔ)大量告警信息,滿足半年內(nèi)告警的數(shù)據(jù)隨查隨用,有效地解決了告警數(shù)據(jù)量大而導(dǎo)致不得不定期清除數(shù)據(jù)的問題。
智能城域網(wǎng)系統(tǒng)目前已納管全國超過3萬5千臺(tái)設(shè)備,在近一個(gè)月的網(wǎng)元告警采集分析實(shí)際運(yùn)用中,網(wǎng)元平均每分鐘通過SNMP Trap傳送給網(wǎng)管的告警數(shù)量近5萬條。系統(tǒng)將告警流統(tǒng)一存儲(chǔ)在消息中間件Kafka中,并根據(jù)時(shí)間片段從Kafka讀取告警流數(shù)據(jù)積累為RDD,進(jìn)而利用Spark快速分析處理告警數(shù)據(jù)。處理完成后的告警將展示在智能城域網(wǎng)網(wǎng)管系統(tǒng)的實(shí)時(shí)告警板上,實(shí)時(shí)告警板支持用戶自定義時(shí)間片段,最小粒度為10秒刷新一次告警數(shù)據(jù)展示。
系統(tǒng)所采取的告警采集分析方式,可以保障告警從網(wǎng)元發(fā)出至分析展示在系統(tǒng)頁面上所需的處理時(shí)間維持在1秒以內(nèi),可以滿足5G時(shí)代大規(guī)模的網(wǎng)元告警處理,具有良好的魯棒性與穩(wěn)定性。
目前智能城域網(wǎng)網(wǎng)管系統(tǒng)月均系統(tǒng)使用人數(shù)超過5000人次,月處理數(shù)據(jù)量達(dá)200億。網(wǎng)管系統(tǒng)每日需處理千萬級(jí)以上的告警數(shù)據(jù),月告警數(shù)據(jù)已達(dá)到3億以上,并實(shí)現(xiàn)每10秒近1萬告警數(shù)據(jù)的實(shí)時(shí)分析與展示,同時(shí)系統(tǒng)將儲(chǔ)存一年內(nèi)的所有告警數(shù)據(jù)并保證數(shù)據(jù)的可靠性與完整性。網(wǎng)管系統(tǒng)已成功實(shí)現(xiàn)告警數(shù)據(jù)與數(shù)個(gè)第三方系統(tǒng)對(duì)接,實(shí)現(xiàn)大規(guī)模告警數(shù)據(jù)派單等功能,推動(dòng)了網(wǎng)管系統(tǒng)中告警模塊的創(chuàng)新與發(fā)展。
本文提出的告警采集分析系統(tǒng),在保障數(shù)據(jù)的穩(wěn)定性的同時(shí)將告警采集流程簡化并虛擬化,利用分布式計(jì)算實(shí)現(xiàn)告警采集程序大規(guī)模快速部署,是未來提升網(wǎng)絡(luò)管理穩(wěn)定的關(guān)鍵手段,目前已在現(xiàn)網(wǎng)應(yīng)用成功并取得良好的運(yùn)作效果。本系統(tǒng)的設(shè)計(jì)能夠更加可靠穩(wěn)定、靈活快速滿足運(yùn)維人員的配置需求,及時(shí)采集并分析5G網(wǎng)元告警,便于運(yùn)維人員及時(shí)且準(zhǔn)確地定位問題,維護(hù)網(wǎng)絡(luò)穩(wěn)定,極大提升運(yùn)維效率,減少人力成本。