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