淺談Telemetry網(wǎng)絡(luò)遙測(cè)流量分析技術(shù)
?·引言·
隨著云原生、云網(wǎng)融合、大數(shù)據(jù)的快速發(fā)展,網(wǎng)絡(luò)自動(dòng)化運(yùn)維也隨之興起,Telemetry網(wǎng)絡(luò)遙測(cè)技術(shù)特性變得越來越重要。Telemetry,顧名思義就是一種在遠(yuǎn)距離獲取網(wǎng)絡(luò)測(cè)量數(shù)據(jù)的技術(shù),例如在航天、地質(zhì)、海洋領(lǐng)域可通過遙測(cè)技術(shù)來獲取衛(wèi)星傳感器數(shù)據(jù)。當(dāng)Telemetry技術(shù)應(yīng)用到網(wǎng)絡(luò)中,同樣能從物理、虛擬網(wǎng)絡(luò)設(shè)備上遠(yuǎn)程高速采集獲取網(wǎng)絡(luò)數(shù)據(jù),為網(wǎng)絡(luò)分析提供可靠、實(shí)時(shí)、高精度數(shù)據(jù)。
根據(jù)網(wǎng)絡(luò)Telemetry數(shù)據(jù)源不同,可分為管理平面、控制平面及數(shù)據(jù)平面的Telemetry。管理平面基于GRPC/NETCONF等采集網(wǎng)絡(luò)管理數(shù)據(jù)、數(shù)據(jù)平面基于IOAM等采集數(shù)據(jù)平面數(shù)據(jù)、控制平面基于BMP(BGP Monitoring Protocol)上報(bào)控制協(xié)議數(shù)據(jù)。
本文重點(diǎn)對(duì)Telemetry 遙測(cè)技術(shù)進(jìn)行詳細(xì)介紹。
Telemetry優(yōu)勢(shì)特性
對(duì)比傳統(tǒng)網(wǎng)絡(luò)監(jiān)控技術(shù)
當(dāng)提及網(wǎng)絡(luò)設(shè)備管理監(jiān)控,大家首先想到的是SNMP。SNMP是簡單網(wǎng)絡(luò)管理協(xié)議,也是當(dāng)前廣泛使用的網(wǎng)絡(luò)監(jiān)控技術(shù)。以采集設(shè)備CPU占用率為例,SNMP和Telemetry采集網(wǎng)絡(luò)設(shè)備數(shù)據(jù)的交互原理如下:
由圖所示,兩者采集數(shù)據(jù)的交互過程主要有以下兩個(gè)區(qū)別:
1、從采集模型上,Telemetry占用網(wǎng)絡(luò)設(shè)備性能很小。SNMP采集器與設(shè)備之間采用一問一答的交互方式,采集器每次采集數(shù)據(jù)時(shí)下發(fā)SNMP get請(qǐng)求,設(shè)備需對(duì)每個(gè)get請(qǐng)求進(jìn)行響應(yīng),而Telemetry只需1次訂閱及解析請(qǐng)求即可完成訂閱,后續(xù)設(shè)備按照訂閱指定的采集周期,持續(xù)推送數(shù)據(jù)給采集器,對(duì)網(wǎng)絡(luò)設(shè)備的性能損耗很少;
2、從采集周期上,Telemetry擁有更高采集精度及頻率。SNMP get請(qǐng)求采集周期取決于網(wǎng)絡(luò)輪詢網(wǎng)內(nèi)所有監(jiān)控對(duì)象一次的整體時(shí)間,通常最短建議間隔5分鐘,而Telemetry采集間隔可為1秒,最高精度可達(dá)亞秒級(jí),精度細(xì)?;蛇_(dá)300-30000倍。
因此,在覆蓋采集相同監(jiān)控對(duì)象的情況下,SNMP協(xié)議采用“拉模式”,設(shè)備CPU需要響應(yīng)更多的get請(qǐng)求,而Telemetry采用“推模式”,只需要進(jìn)行1次訂閱請(qǐng)求,因此Telemetry對(duì)設(shè)備CPU的性能消耗更小。同時(shí),Telemetry采集頻率更高,精度從5分鐘到亞秒級(jí),能獲取更高精度的監(jiān)控?cái)?shù)據(jù),對(duì)設(shè)備性能的消耗可控,實(shí)現(xiàn)精準(zhǔn)監(jiān)控網(wǎng)絡(luò)狀態(tài)。
Telemetry和常見網(wǎng)絡(luò)監(jiān)控技術(shù)在工作模式、采集精度等方面的區(qū)別如下表所示:
由表可見,Telemetry的工作模式是推模式,設(shè)備側(cè)主動(dòng)推送數(shù)據(jù),并提供亞秒級(jí)精度,此外還有比較關(guān)鍵的一點(diǎn)是,Telemetry數(shù)據(jù)采用標(biāo)準(zhǔn)結(jié)構(gòu)和編碼,方便對(duì)接第三方設(shè)備,有助于提升網(wǎng)絡(luò)監(jiān)控效率和監(jiān)控質(zhì)量。SNMP Trap和SYSLOG雖然也是推模式,但是其推送的數(shù)據(jù)范圍有限,對(duì)于類似接口流量等監(jiān)控?cái)?shù)據(jù)不能實(shí)時(shí)采集。
技術(shù)優(yōu)勢(shì)
Telemetry的兩大亮點(diǎn)優(yōu)勢(shì)是對(duì)設(shè)備性能消耗小、數(shù)據(jù)采集精度高,可以解決傳統(tǒng)網(wǎng)絡(luò)監(jiān)控技術(shù)一直以來面對(duì)的一些痛點(diǎn)問題。
根據(jù)奈奎斯特采樣原理,采樣頻率大于信號(hào)頻率的2倍時(shí),才能完整保留原始信號(hào)中的信息。當(dāng)SNMP等傳統(tǒng)技術(shù)采用5分鐘采集周期時(shí),會(huì)有細(xì)節(jié)信息丟失的問題,如下圖所示:
當(dāng)SNMP等傳統(tǒng)運(yùn)維方式采用更快的數(shù)據(jù)采集周期解決這個(gè)問題時(shí),由于使用的是“拉模式”,更為密集的采集拉取可能會(huì)造成網(wǎng)絡(luò)設(shè)備CPU持續(xù)升高,甚至有癱瘓風(fēng)險(xiǎn)。因此SNMP為代表的運(yùn)維技術(shù)無法滿足當(dāng)前IT運(yùn)維實(shí)時(shí)和全程監(jiān)控的需求,也無法檢測(cè)網(wǎng)絡(luò)中大量微突發(fā)(Mirco Burst)造成的網(wǎng)絡(luò)問題。
微突發(fā)是指在很短時(shí)間(毫秒級(jí)別)內(nèi)收到很多的突發(fā)數(shù)據(jù),以至于瞬時(shí)突發(fā)速率達(dá)到平均速率的數(shù)十、百倍,甚至占滿端口帶寬的現(xiàn)象。網(wǎng)管設(shè)備或網(wǎng)絡(luò)性能監(jiān)測(cè)軟件通常是基于較長時(shí)間(數(shù)分鐘),通過計(jì)算這段時(shí)間內(nèi)的平均值來作為網(wǎng)絡(luò)實(shí)時(shí)帶寬。在這種情況下,看到流量速率通常會(huì)被“削峰填谷”,呈現(xiàn)出來是一條較為平穩(wěn)的曲線,但是實(shí)際設(shè)備可能已由于微突發(fā)導(dǎo)致丟包,并影響應(yīng)用系統(tǒng)。如下圖所示為采用分鐘級(jí)SNMP和亞秒級(jí)Telemetry采集數(shù)據(jù)的對(duì)比曲線。
從圖中可看出,以SNMP get方式查詢的端口流量統(tǒng)計(jì)是比較平滑的,而Telemetry方式流量統(tǒng)計(jì)明顯看到有微突發(fā)現(xiàn)象發(fā)生。通過Telemetry的高精度采樣,能檢測(cè)到這些微突發(fā)流量以及由于微突發(fā)導(dǎo)致的端口丟包問題。
Telemetry自動(dòng)化運(yùn)維系統(tǒng)組成及機(jī)制
運(yùn)維系統(tǒng)組件構(gòu)成
狹義Telemetry是一個(gè)網(wǎng)絡(luò)設(shè)備特性,廣義Telemetry能理解為一個(gè)閉環(huán)的自動(dòng)化運(yùn)維系統(tǒng),由網(wǎng)絡(luò)設(shè)備、采集器、分析器、控制器等四個(gè)部件組成,如下圖所示:
1、采集器
用于接收和存儲(chǔ)網(wǎng)絡(luò)設(shè)備上報(bào)的原始監(jiān)控?cái)?shù)據(jù),網(wǎng)絡(luò)設(shè)備依據(jù)采集器的配置要求,將采集完成的秒級(jí)或亞秒級(jí)監(jiān)控?cái)?shù)據(jù),上報(bào)給采集器存儲(chǔ)。
2、分析器
用于分析采集器接收到的監(jiān)控?cái)?shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行處理,以圖形化界面的形式將分析結(jié)果直觀展現(xiàn)給用戶。
3、控制器
通過 NETCONF等方式向設(shè)備下發(fā)配置,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)設(shè)備的控制??刂破鞲鶕?jù)分析器提供的分析數(shù)據(jù)向網(wǎng)絡(luò)設(shè)備下發(fā)配置,對(duì)網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)行為進(jìn)行調(diào)整,也可控制網(wǎng)絡(luò)設(shè)備對(duì)哪些數(shù)據(jù)進(jìn)行采樣和上報(bào)。
運(yùn)維系統(tǒng)工作機(jī)制
采集器、分析器、控制器都位于網(wǎng)管側(cè),網(wǎng)管側(cè)和網(wǎng)絡(luò)設(shè)備側(cè)協(xié)同運(yùn)作,如下圖所示:
在網(wǎng)絡(luò)設(shè)備側(cè),Telemetry按照YANG模型組織數(shù)據(jù),利用GPB(Google Protocol Buffer)格式編碼,并通過gRPC(Google Remote Procedure Call Protocol)協(xié)議傳輸數(shù)據(jù)。在網(wǎng)管系統(tǒng)側(cè),Telemetry完成數(shù)據(jù)的收集、分析、存儲(chǔ)功能,利用分析結(jié)果為網(wǎng)絡(luò)配置調(diào)整提供依據(jù),如下圖所示:
下面是網(wǎng)絡(luò)設(shè)備側(cè)涉及的一些概念和名詞的說明解釋:
原始數(shù)據(jù):Telemetry采樣的原始數(shù)據(jù)可來自網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)面、控制面和管理面,目前支持采集設(shè)備的接口流量統(tǒng)計(jì)、CPU或內(nèi)存數(shù)據(jù)等信息。
數(shù)據(jù)模型:Telemetry基于YANG模型組織采集數(shù)據(jù)。YANG是一種數(shù)據(jù)建模語言,用于設(shè)計(jì)可以作為各種傳輸協(xié)議操作的配置數(shù)據(jù)模型、狀態(tài)數(shù)據(jù)模型、遠(yuǎn)程調(diào)用模型和通知機(jī)制等。
編碼格式:支持GPB(Google Protocol Buffer)和 JSON(JavaScript Object Notation)編碼格式。Telemetry利用GPB編碼格式(GPB編碼格式的文件名后綴為.proto),提供一種靈活、高效、自動(dòng)序列化結(jié)構(gòu)數(shù)據(jù)的機(jī)制,GPB屬于二進(jìn)制編碼,性能好、效率高。
傳輸協(xié)議:支持gRPC協(xié)議(google Remote Procedure Call Protocol)和UDP協(xié)議(User Datagram Protocol)。gRPC協(xié)議是谷歌發(fā)布的一個(gè)基于HTTP2協(xié)議承載的高性能、通用的RPC開源軟件框架。通信雙方都基于該框架進(jìn)行二次開發(fā),從而使得通信雙方聚焦在業(yè)務(wù),無需關(guān)注由gRPC軟件框架實(shí)現(xiàn)的底層通信。需要說明的一點(diǎn)是,gRPC協(xié)議可以用于Telemetry靜態(tài)訂閱或動(dòng)態(tài)訂閱,而UDP僅可以用于Telemetry靜態(tài)訂閱。
Telemetry應(yīng)用場(chǎng)景
銀行數(shù)據(jù)中心網(wǎng)絡(luò)智能運(yùn)維場(chǎng)景
目前據(jù)了解,ZS銀行、BJ銀行、GS銀行等同業(yè)已在其數(shù)據(jù)中心的生產(chǎn)及測(cè)試網(wǎng)絡(luò)環(huán)境中試點(diǎn)部署智能運(yùn)維分析系統(tǒng),運(yùn)用Telemetry技術(shù)采集秒級(jí)運(yùn)維數(shù)據(jù),解決SNMP采集精度低的問題,實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)設(shè)備運(yùn)行狀況。在數(shù)據(jù)中心網(wǎng)絡(luò)中部署智能運(yùn)維系統(tǒng),采集器通過Telemetry采集設(shè)備性能數(shù)據(jù),分析器接收上送數(shù)據(jù)并進(jìn)行統(tǒng)計(jì)、分析和呈現(xiàn),配合ERSPAN遠(yuǎn)程流量鏡像等技術(shù),共同實(shí)現(xiàn)數(shù)據(jù)中心網(wǎng)絡(luò)的1-3-5智能運(yùn)維。
運(yùn)營商移動(dòng)承載網(wǎng)絡(luò)流量調(diào)優(yōu)場(chǎng)景
在運(yùn)營商移動(dòng)城載網(wǎng)中,當(dāng)流量路徑需要調(diào)優(yōu)時(shí),利用Telemetry技術(shù)收集設(shè)備數(shù)據(jù),發(fā)給分析器進(jìn)行綜合分析決策,分析器再將決策發(fā)送給控制器,然后由控制器調(diào)整設(shè)備的控制,進(jìn)而調(diào)整流量轉(zhuǎn)發(fā)路徑。詳細(xì)的部署過程如下:
1、配置Telemetry功能。
2、各設(shè)備主動(dòng)與智能運(yùn)維系統(tǒng)建立gRPC通道,在設(shè)備上配置訂閱。
3、各設(shè)備通過gRPC通道將訂閱的數(shù)據(jù)上報(bào)給采集器。
4、采集器接收、存儲(chǔ)、加工處理各設(shè)備上報(bào)的數(shù)據(jù)。
5、分析器基于大數(shù)據(jù)分析系統(tǒng)進(jìn)行分析。
6、控制器下發(fā)調(diào)優(yōu)指令對(duì)網(wǎng)絡(luò)進(jìn)行調(diào)優(yōu)。
總結(jié)
在云原生平臺(tái)、大數(shù)據(jù)應(yīng)用不斷落地背景下,Telemetry網(wǎng)絡(luò)遙測(cè)技術(shù)的廣泛應(yīng)用,帶來了顯著的優(yōu)勢(shì)就是較小的性能損耗,實(shí)時(shí)高精度監(jiān)測(cè)網(wǎng)絡(luò)數(shù)據(jù),發(fā)現(xiàn)和定位微突發(fā)(Mirco Burst)造成的網(wǎng)絡(luò)問題,為云網(wǎng)融合下的網(wǎng)絡(luò)運(yùn)維提供了新思路。