本文檔介紹如何在運行Cisco NX-OS的Cisco Nexus 9000交換機上實施和驗證流遙測。
思科建議您瞭解以下主題的基本知識:
本文中的資訊係根據以下軟體和硬體版本:
| 元件 | 平台/軟體 | 版本/值 | 目的 |
|---|---|---|---|
| N9K — 遙測 — SW1 | N9K-C9348GC-FXP | 10.6(4) | 遙測源 |
| 遙測接收器 | Ubuntu伺服器 | 22.04.5 | 外部遙測接收器 |
| 遙測應用程式 | Telegraf | 1.40.0 | Google通訊協定緩衝區(GPB)-over-gRPC遙測接收器 |
| 偵聽埠 | TCP | 57000 | 遙測接收器埠 |
| 接收器輸出格式 | JavaScript對象表示法(JSON) | — | 可讀遙測輸出 |
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
本實驗使用直接連線到Ubuntu伺服器的Cisco Nexus 9000交換機,該伺服器作為外部遙測接收器運行。

Nexus交換機和遙測接收器通過Ethernet1/10和ens192直接連線。
Ethernet1/10在Nexus交換機和Ubuntu接收器之間提供第3層連線。
介面組態如下:
N9K-TELEMETRY-SW1# show running-config interface ethernet1/10 interface Ethernet1/10 description TELEMETRY-COLLECTOR ip address 192.168.100.1/24 no shutdown
The Ubuntu receiver uses: Interface: ens192 IP address: 192.168.100.10/24
網路監控和可視性是瞭解網路運行狀況、識別異常行為和排除網路問題的基礎。
Cisco NX-OS提供多種機制來從Nexus交換機檢索或匯出操作資訊,包括CLI、簡單網路管理協定(SNMP)和系統日誌。傳統監控工作流程(如SNMP輪詢和基於CLI的收集)通常依賴拉式模型,在這種模型中,外部監控系統定期從網路裝置請求資訊。
流遙測引入推送模型,其中網路裝置根據配置的訂閱向外部接收器傳送選定的運算元據。這提供了一種用於收集網路資訊的結構化機制,而無需監控系統持續輪詢裝置。
在傳統的輪詢模式中,監控系統確定何時從網路裝置檢索資訊。
例如,網路管理系統(NMS)可以每60秒請求一次介面統計資訊。這樣可提供裝置狀態的定期快照;但是,監控應用的可見性直接與配置的輪詢間隔相關。
使用流遙測時,Nexus交換機根據配置的訂閱向遙測接收器傳送所選資訊。
基本差異可總結如下:
| 傳統輪詢 | 流遙測 |
|---|---|
| 客戶端發起請求。 | 網路裝置傳送資料。 |
| 拉模型 | 推送模型 |
| 根據輪詢間隔檢索資料。 | 資料根據遙測訂閱傳送。 |
| 通常提供定期快照。 | 支援定期和基於事件的收集。 |
| 監視系統向裝置請求資訊。 | 裝置將所選資訊流至接收器。 |
流遙測不一定代替傳統的監控機制。CLI、SNMP、系統日誌和遙測可以共存,並服務於不同的操作目的。
主要區別是資料收集模型。
在生產環境中,流遙測通常用於提供網路和系統運行狀況的連續可視性。
典型的使用案例包括監控介面計數器和狀態變更、系統資源(例如CPU和記憶體使用率)以及資料中心網狀架構資訊(例如虛擬可擴充區域網路(VXLAN)對等體和邊界閘道通訊協定(BGP)對等體狀態)。基於事件的遙測還可用於報告發生更改時的運行狀態更改。
匯出的遙測資料隨後可由外部監控和可觀察平台用於控制面板、警報、歷史分析和故障排除。
從較高層面來說,NX-OS上的流遙測可理解為四個主要階段:
+-----------------------+
| Data Collection |
+-----------+-----------+
|
v
+-----------------------+
| Data Encoding |
+-----------+-----------+
|
v
+-----------------------+
| Data Transport |
+-----------+-----------+
|
v
+-----------------------+
| Telemetry Receiver |
+-----------------------+
這些階段回答了四個基本問題:
第一階段決定必須從交換機收集哪些資訊。
對於本文檔中的示例,遙測資料是從資料管理引擎(DME)收集的。
資料管理引擎在NX-OS中維護配置和操作資訊的結構化表示。
DME不是將裝置資訊僅表示為CLI文本,而是將資訊組織為可通過分層路徑訪問的託管對象。
舉例來說:
sys/intf/phys-[eth1/10]
標識與Ethernet1/10關聯的DME對象。
本實驗中使用的其他DME路徑包括:
sys/intf/phys-[eth1/10]/dbgIfIn
sys/intf/phys-[eth1/10]/dbgIfOut
sys/intf/phys-[eth1/10]/phys
sys/intf/lb-[lo100]
每個路徑代表通過DME可用的不同對象或資訊部分。這些路徑與整個實驗配置中已使用的路徑相同。
DME資料庫由託管對象(MO)組成。
受管對象表示NX-OS管理模型中的實體,例如:
管理對象在管理資訊樹(MIT)中按層次進行組織。
本實驗中使用的對象的簡化表示為:
sys
|
+-- intf
|
+-- phys-[eth1/10]
| |
| +-- dbgIfIn
| +-- dbgIfOut
| +-- phys
|
+-- lb-[lo100]
此層次結構有助於瞭解遙測感測器路徑如何識別DME中的特定資訊。
每個受管對象都可以由唯一判別名(DN)唯一標識。
DN表示從DME樹的根到目標對象的層次路徑。
For example: sys/intf/lb-[lo100]
標識Loopback100託管對象。
類似地:
sys/intf/phys-[eth1/10]/dbgIfIn
標識與Ethernet1/10關聯的輸入統計資訊對象。
理解DN的一種簡單方法是將其視為DME層次結構中某個對象的完整地址。
感測器路徑標識NX-OS為遙測訂閱必須監控的資訊。
在最初的實驗示例中,DME可分辨名稱用作感測器路徑。稍後的示例演示了預定義的資源路徑標籤。
舉例來說:
sensor-group 2 path sys/intf/phys-[eth1/10]/dbgIfIn path sys/intf/phys-[eth1/10]/dbgIfOut path sys/intf/phys-[eth1/10]/phys
這些路徑提供Ethernet1/10的輸入統計資訊、輸出統計資訊和操作資訊。
在NX-OS收集請求的資訊後,必須先對資料進行編碼,然後才能傳輸資料。
本實驗中使用的編碼是Google協定緩衝區(GPB)。
目標配置指定:
ip address 192.168.100.10 port 57000 protocol gRPC encoding GPB
GPB定義了如何在消息中表示收集的遙測資訊。
編碼和傳輸是獨立的功能:GPB定義資料表示,而傳輸機制決定消息如何傳送。
本實驗中使用的傳輸協定是gRPC。
Nexus交換機將GPB編碼的遙測資料傳送到:
192.168.100.10:57000
使用gRPC。
因此:
GPB定義了如何對遙測資訊進行編碼。
gRPC提供傳輸機制,用於將遙測消息傳輸到接收器。
流遙測使用的gRPC傳輸不能與用於gRPC網路管理介面(gNMI)和gRPC網路操作介面(gNOI)等服務的NX-OS gRPC代理混淆。
遙測接收器是接收和處理遙測流的外部系統或應用程式。
在本實驗中,使用運行Telegraf的Ubuntu伺服器作為接收器。接收器在TCP埠57000上偵聽,並接受Nexus交換機生成的GPB-over-gRPC遙測流。
本實驗中使用的接收器實現將在稍後的「準備遙測接收器」一節中介紹。
目標組定義必須將遙測資料傳送到何處以及如何傳輸資料。
本實驗使用:
destination-group 1 ip address 192.168.100.10 port 57000 protocol gRPC encoding GPB use-vrf default
定義用於遙測交付的接收器地址、目標埠、傳輸協定、編碼以及虛擬路由和轉發(VRF)例項。
感測器組定義必須監視哪些資訊。
舉例來說:
sensor-group 2 path sys/intf/phys-[eth1/10]/dbgIfIn path sys/intf/phys-[eth1/10]/dbgIfOut path sys/intf/phys-[eth1/10]/phys
在本示例中,感測器組2會監視Ethernet1/10輸入統計資訊、輸出統計資訊和操作介面資訊。dbgIfIn路徑提供輸入介面統計資訊,dbgIfOut提供輸出介面統計資訊,phys提供介面的操作資訊。
一個感測器組可以包含多個相關的感測器路徑,因此可以回答以下問題:
收集哪些資料?
訂閱將感測器組與目標組關聯並定義收集行為。
舉例來說:
subscription 2 dst-grp 1 snsr-grp 2 sample-interval 60000
在此範例中:
因此,訂閱連線主要遙測配置元素:
感測器組+收集行為+目標組
Cisco NX-OS流遙測支援基於DME的訂閱的定期和基於事件的收集。
收集行為由訂閱內與感測器組關聯的取樣間隔控制。
使用定期遙感勘測,NX-OS按配置的間隔收集並傳送監控資訊。
以毫秒為單位指定取樣間隔。
For example: snsr-grp 2 sample-interval 60000
配置60秒的收集間隔。
定期遙測對於連續變化且通常隨時間推移而分析的資訊很有用,例如:
在本實驗中,訂購1和訂購2使用定期收集。
訂閱1每10秒收集一次Ethernet1/10介面對象,而訂閱2每60秒收集一次介面統計資訊和操作資訊。
對於基於事件的遙測,NX-OS不使用定期收集計時器。
對於基於DME的遙測,基於事件的行為配置為:
sample-interval 0
當受監控對象發生更改時,遙測可以生成與該更改關聯的更新。
此收集方法對於以下資訊非常有用:
在本實驗中,預訂3監控Loopback100 DME對象:
sys/intf/lb-[lo100]: snsr-grp 3 sample-interval 0
因此,本文檔後面會使用對受監控Loopback100對象的更改來演示基於事件的遙測。
初始實驗配置中使用的三個預訂可總結如下:
| 訂閱 | 監視的資訊 | 取樣間隔 | 收集行為 |
|---|---|---|---|
| 1 | Ethernet1/10介面對象 | 10000 ms | 定期 |
| 2 | Ethernet1/10統計資訊和運行狀態 | 60000 ms | 定期 |
| 3 | Loopback100對象 | 0 | 基於事件 |
主要區別在於用於生成遙測資料的觸發器:
| 定期遙測 | 基於事件的遙測 |
|---|---|
| 使用配置的計時器。 | 不使用定期計時器。 |
| sample-interval > 0 | sample-interval 0 |
| 生成重複樣本。 | 當受監控對象發生更改時生成更新。 |
| 常用於計數器和統計資訊。 | 常用於配置或狀態更改。 |
配置和驗證部分使用上述定義的訂閱演示這兩種收集行為。
流遙測需要能夠接收和處理Nexus交換機傳送的遙測資料的外部接收器。
對於本文檔中使用的GPB-over-gRPC傳輸,接收方必須能夠:
遙測接收器的實現獨立於本文檔中介紹的NX-OS遙測配置。
附註:第三方遙測接收器軟體的安裝、配置、操作和故障排除均不在本文檔的討論範圍之內。請參閱接收方供應商提供的文檔,瞭解配置和支援資訊。
出於演示目的,本實驗使用運行Telegraf的外部Ubuntu伺服器作為遙測接收器。
接收器的引數為:
| 參數 | 價值 |
|---|---|
| 接收方地址 | 192.168.100.10 |
| 傳輸 | gRPC |
| 偵聽埠 | TCP/57000 |
| 編碼 | GPB |
本檔案沒有說明接收方軟體組態。
附註:本文檔中顯示的接收器輸出示例經過過濾,以突出顯示與每個驗證步驟相關的欄位。
在Nexus交換機上配置流遙測之前,請驗證:
在本實驗中,Nexus交換機上的Ethernet1/10使用192.168.100.1/24,遙測接收器使用192.168.100.10/24。在對遙測特定行為進行故障排除之前,必須確認基本的第3層可達性。
一旦接收器可達並準備好接受TCP埠57000上的GPB-over-gRPC遙測後,即可應用NX-OS遙測配置。
該配置使用三個主要元件:
本實驗使用以下遙測目標:
| 參數 | 價值 |
|---|---|
| 目的地 | 192.168.100.10:57000 |
| 傳輸 | gRPC |
| 編碼 | GPB |
| VRF | 預設 |
初始實驗室配置使用三個預訂:
| 訂閱 | 感測器 | 集合型別 | 取樣間隔 |
|---|---|---|---|
| 1 | Ethernet1/10介面對象 | 定期 | 10000 ms |
| 2 | Ethernet1/10統計資訊和運行狀態 | 定期 | 60000 ms |
| 3 | Loopback100對象 | 基於事件 | 0 |
必須先全域性啟用流遙測功能。
N9K-TELEMETRY-SW1# configure terminal N9K-TELEMETRY-SW1(config)# feature telemetry
進入遙測配置模式:
N9K-TELEMETRY-SW1(config)# telemetry N9K-TELEMETRY-SW1(config-telemetry)#
剩餘遙測配置在此模式下執行。
目標組標識外部遙測接收器並定義用於傳送遙測資料的傳輸和編碼。
設定:
N9K-TELEMETRY-SW1(config-telemetry)# destination-group 1 N9K-TELEMETRY-SW1(conf-tm-dest)# ip address 192.168.100.10 port 57000 protocol gRPC encoding GPB N9K-TELEMETRY-SW1(conf-tm-dest)# use-vrf default
此配置定義:
由於遙測接收器可通過預設VRF中的Ethernet1/10到達,因此使用預設VRF。
為遙測傳輸選擇的VRF必須為已配置的接收器提供IP可達性。
感測器組1監控Ethernet1/10 DME介面對象。
N9K-TELEMETRY-SW1(config-telemetry)# sensor-group 1 N9K-TELEMETRY-SW1(conf-tm-sensor)# path sys/intf/phys-[eth1/10]
感測器路徑標識DME分層結構中的Ethernet1/10受管對象,並提供與該對象關聯的通用介面資訊。
將感測器組1與目標組1關聯:
N9K-TELEMETRY-SW1(config-telemetry)# subscription 1 N9K-TELEMETRY-SW1(conf-tm-sub)# dst-grp 1 N9K-TELEMETRY-SW1(conf-tm-sub)# snsr-grp 1 sample-interval 10000
以毫秒為單位指定取樣間隔。
10000 ms = 10秒
因此,訂閱1每10秒定期收集Ethernet1/10 DME對象並將遙測資料傳送到目標組1。
感測器組2收集Ethernet1/10的統計資訊和操作資訊。
設定:
N9K-TELEMETRY-SW1(config-telemetry)# sensor-group 2 N9K-TELEMETRY-SW1(conf-tm-sensor)# path sys/intf/phys-[eth1/10]/dbgIfIn N9K-TELEMETRY-SW1(conf-tm-sensor)# path sys/intf/phys-[eth1/10]/dbgIfOut N9K-TELEMETRY-SW1(conf-tm-sensor)# path sys/intf/phys-[eth1/10]/phys
感測器路徑提供:
| 感測器路徑 | 資訊 |
|---|---|
| sys/intf/phys-[eth1/10]/dbgIfIn | 輸入介面統計資訊 |
| sys/intf/phys-[eth1/10]/dbgIfOut | 輸出介面統計資訊 |
| sys/intf/phys-[eth1/10]/phys | 操作介面資訊 |
一個感測器組可以包含多個相關的感測器路徑,允許訂閱從同一個受監視的介面收集多種類別的資訊。
將感測器組2與目標組1關聯:
N9K-TELEMETRY-SW1(config-telemetry)# subscription 2 N9K-TELEMETRY-SW1(conf-tm-sub)# dst-grp 1 N9K-TELEMETRY-SW1(conf-tm-sub)# snsr-grp 2 sample-interval 60000
配置的取樣間隔為:
60000 ms = 60秒
因此,訂用2每60秒收集一次Ethernet1/10統計資訊和操作資訊。
此訂閱稍後將在文檔中用於驗證定期遙測行為。
環回介面用於演示基於事件的遙測,無需額外的物理連線。
設定:
N9K-TELEMETRY-SW1(config)# interface loopback100 N9K-TELEMETRY-SW1(config-if)# ip address 10.255.255.100/32
對應的DME對象為:
sys/intf/lb-[lo100]
環回介面提供了一種在基於事件的遙測驗證期間生成受控配置和管理狀態更改的簡單方法。
配置Loopback100 DME感測器路徑:
N9K-TELEMETRY-SW1(config-telemetry)# sensor-group 3 N9K-TELEMETRY-SW1(conf-tm-sensor)# path sys/intf/lb-[lo100]
感測器組3監控Loopback100託管對象。
將感測器組3與目標組1關聯並配置基於事件的收集:
N9K-TELEMETRY-SW1(config-telemetry)# subscription 3 N9K-TELEMETRY-SW1(conf-tm-sub)# dst-grp 1 N9K-TELEMETRY-SW1(conf-tm-sub)# snsr-grp 3 sample-interval 0
對於基於DME的訂閱,零的示例間隔可配置基於事件的行為。
因此,在受監控Loopback100對象下進行的更改可以生成遙測通知,而無需使用循環收集計時器。
以後將使用此訂閱演示說明和管理狀態更改。
完成配置後,使用以下命令驗證配置:
N9K-TELEMETRY-SW1# show running-config telemetry feature telemetry telemetry destination-group 1 ip address 192.168.100.10 port 57000 protocol gRPC encoding GPB use-vrf default sensor-group 1 path sys/intf/phys-[eth1/10] sensor-group 2 path sys/intf/phys-[eth1/10]/dbgIfIn path sys/intf/phys-[eth1/10]/dbgIfOut path sys/intf/phys-[eth1/10]/phys sensor-group 3 path sys/intf/lb-[lo100] subscription 1 dst-grp 1 snsr-grp 1 sample-interval 10000 subscription 2 dst-grp 1 snsr-grp 2 sample-interval 60000 subscription 3 dst-grp 1 snsr-grp 3 sample-interval 0
此時,交換機具有開始向已配置的接收器傳送遙測資料所需的目標、感測器組和訂閱。
下一部分驗證傳輸會話和Ethernet1/10訂閱生成的定期遙測資料。
在應用遙測配置之後,驗證傳輸會話是否建立、週期性感測器組是否處於活動狀態,並且正在收集遙測資料並將其傳送給接收器。
運行此命令:
N9K-TELEMETRY-SW1# show telemetry transport Session Id Dst Grp IP Address Port Encoding Transport Status -------------------------------------------------------------------------------- 0 1 192.168.100.10 57000 GPB gRPC Connected -------------------------------------------------------------------------------- Retry buffer Size: 10485760 Event Retry Messages (Bytes): 0 Timer Retry Messages (Bytes): 0 Total Retries sent: 0 Total Retries Dropped: 0 N9K-TELEMETRY-SW1#
「已連線」狀態確認已建立與已配置的遙測接收器的gRPC傳輸會話。
相關的傳輸引數也匹配已配置的目標組。
使用:
N9K-TELEMETRY-SW1# show telemetry control database Subscription Database size = 3 -------------------------------------------------------------------------------- Subscription ID Data Collector Type Reachability Configuration Method -------------------------------------------------------------------------------- 3 DME Reachable CONFIG_DME-ADMIN 2 DME Reachable CONFIG_DME-ADMIN 1 DME Reachable CONFIG_DME-ADMIN Sensor Group Database size = 3 ---------------------------------------------------------------------------------------------------- Row ID Sensor Group ID Sensor Group type Sampling interval(ms) Linked subscriptions SubID ---------------------------------------------------------------------------------------------------- 1 3 Event /DME 0/No Timer 1 3 Collection Time in ms (Cur/Min/Max): 0/0/0 Encoding Time in ms (Cur/Min/Max): 0/0/0 Transport Time in ms (Cur/Min/Max): 2/1/414 Streaming Time in ms (Cur/Min/Max): 2/1/414 Collection Statistics: collection_id_dropped = 0 last_collection_id_dropped = 0 drop_count = 0 Configuration method: CONFIG_DME-ADMIN 2 2 Timer /DME 60000/Running 1 2 Collection Time in ms (Cur/Min/Max): 0/0/1 Encoding Time in ms (Cur/Min/Max): 0/0/1 Transport Time in ms (Cur/Min/Max): 2/1/415 Streaming Time in ms (Cur/Min/Max): 3/2/416 Collection Statistics: collection_id_dropped = 0 last_collection_id_dropped = 0 drop_count = 0 Configuration method: CONFIG_DME-ADMIN 3 1 Timer /DME 10000/Running 1 1 Collection Time in ms (Cur/Min/Max): 0/0/1 Encoding Time in ms (Cur/Min/Max): 0/0/1 Transport Time in ms (Cur/Min/Max): 2/1/415 Streaming Time in ms (Cur/Min/Max): 3/2/417 Collection Statistics: collection_id_dropped = 0 last_collection_id_dropped = 0 drop_count = 0 Configuration method: CONFIG_DME-ADMIN ---------------------------------------------------------------------------------------------------- Row ID Subscribed Linked Groups Sec Groups Retrieve level Path(GroupId) : Query : Filter ---------------------------------------------------------------------------------------------------- 1 No 1 0 Self sys/intf/phys-[eth1/10](1) : NA : NA <snip> 2 No 1 0 Self sys/intf/phys-[eth1/10]/dbgIfIn(2) : NA : NA <snip> 4 No 1 0 Self sys/intf/phys-[eth1/10]/dbgIfOut(2) : NA : NA
Sensor Group Database(感測器組資料庫)確認週期性感測器組處於活動狀態:
| 感測器組 | 類型 | 取樣間隔 | 訂閱 |
|---|---|---|---|
| 1 | 計時器/DME | 10000 ms/運行 | 1 |
| 2 | 計時器/DME | 60000 ms/運行 | 2 |
感測器組1每10秒收集一次Ethernet1/10介面對象。
感測器組2每60秒收集一次Ethernet1/10統計資訊和操作資訊。
同一命令還顯示配置的感測器路徑:
sys/intf/phys-[eth1/10] sys/intf/phys-[eth1/10]/dbgIfIn sys/intf/phys-[eth1/10]/dbgIfOut sys/intf/phys-[eth1/10]/phys
對於本實驗中使用的感測器路徑,收集和編碼時間通常介於0和1毫秒之間,並且沒有觀察到遙測消息丟包。
使用:
N9K-TELEMETRY-SW1# show telemetry data collector brief ------------------------------------------------------------------------------------------------------------------- Row ID Collector Type Successful Payloads Failed Skipped Dropped ------------------------------------------------------------------------------------------------------------------- 1 YANG 0 0 0 0 0 2 DME 513 513 0 44 0 3 NX-API 0 0 0 0 0 N9K-TELEMETRY-SW1#
實驗報告如下:
DME Successful Collections: 513 Payloads: 513 Failed: 0 Skipped: 44 Dropped: 0
Successful和Payload計數器確認正在收集DME遙測資料並且正在生成遙測負載。
跳過的44個集合是實驗期間遙測目標暫時不可用時觀察到的歷史計數器。這些計數器將在稍後的「基本故障排除」部分中檢查。
有關每個感測器路徑的其他資訊,請使用:
N9K-TELEMETRY-SW1# show telemetry data collector details
此命令可以識別哪些配置的感測器路徑有助於成功、失敗、跳過或丟棄收集。
訂閱2每60秒收集一次Ethernet1/10統計資訊。
遙測接收器報告了以下輸入統計資料,協調世界時(UTC)21:44:45:
timestamp: 2026-09-17T21:44:45Z source: N9K-TELEMETRY-SW1 subscription: 2 path: sys/intf/phys-[eth1/10]/dbgIfIn broadcastPkts: 5074 discards: 0 errors: 0 multicastPkts: 143403 octets: 12870535 ucastPkts: 31256
一分鐘後,收到另一個示例:
timestamp: 2026-09-17T21:45:45Z source: N9K-TELEMETRY-SW1 subscription: 2 path: sys/intf/phys-[eth1/10]/dbgIfIn broadcastPkts: 5075 discards: 0 errors: 0 multicastPkts: 143430 octets: 12875428 ucastPkts: 31292
兩個樣本之間的計數器變化概述如下:
| 計數器 | 21:44:45 | 21:45:45 |
|---|---|---|
| 單播資料包 | 31,256 | 31,292 |
| 組播資料包 | 143,403 | 143,430 |
| 廣播資料包 | 5,074 | 5,075 |
| 八位元 | 12,870,535 | 12,875,428 |
| 錯誤 | 0 | 0 |
| 丟棄 | 0 | 0 |
時間戳之間大約相隔60秒,與為訂閱2配置的取樣間隔相匹配。
不斷增加的資料包和位元組計數器也確認正在收集更新的介面統計資訊並將其傳送給接收者。
dbgIfOut感測器路徑提供Ethernet1/10的輸出統計資訊。
UTC時間21:45:45採集的樣本報告如下:
broadcastPkts: 8 discards: 0 errors: 0 multicastPkts: 4712 octets: 2444721 ucastPkts: 4092
phys感測器路徑為同一介面提供操作屬性。
接收方報告:
adminSt: up operSt: up operSpeed: 1G operDuplex: full operMtu: 1500 operDescr: TELEMETRY-COLLECTOR
這些示例確認感測器組2通過其三個已配置的DME感測器路徑提供介面統計資訊和操作資訊。
定期遙測驗證確認:
| 驗證 | 結果 |
|---|---|
| gRPC傳輸會話 | 已連線 |
| GPB編碼 | 已確認 |
| 感測器組1 | 運行時間:10000毫秒 |
| 感測器組2 | 運行時間:60000毫秒 |
| DME集合 | 成功 |
| 失敗的集合 | 0 |
| 丟棄的負載 | 0 |
| 週期性接收器示例 | 已接收 |
| 介面計數器 | 在樣本之間更新 |
驗證定期遙測後,使用訂閱3通過生成對Loopback100託管對象所做的受控更改來驗證基於事件的遙測。
使用:
N9K-TELEMETRY-SW1# show telemetry control database Subscription Database size = 3
--------------------------------------------------------------------------------
Subscription ID Data Collector Type Reachability Configuration Method -------------------------------------------------------------------------------- 3 DME Reachable CONFIG_DME-ADMIN 2 DME Reachable CONFIG_DME-ADMIN 1 DME Reachable CONFIG_DME-ADMIN <snip> Sensor Group Database size = 3 ---------------------------------------------------------------------------------------------------- Row ID Sensor Group ID Sensor Group type Sampling interval(ms) Linked subscriptions SubID ---------------------------------------------------------------------------------------------------- 1 3 Event /DME 0/No Timer 1 3 <snip> Sensor Path Database size = 5 ---------------------------------------------------------------------------------------------------- Row ID Subscribed Linked Groups Sec Groups Retrieve level Path(GroupId) : Query : Filter ---------------------------------------------------------------------------------------------------- 4 Yes 1 0 Self sys/intf/lb-[lo100](3) : NA : NA <snip> Subscription Id: 3 Snapshot Stats: Sent = 1 Error = 0 Drops = 0 The Sensor Group Database reports: Sensor Group ID: 3 Sensor Group Type: Event / DME Sampling Interval: 0 / No Timer Subscription ID: 3 The Event / DME type and 0 / No Timer state confirm that Sensor Group 3 is configured for event-based collection. The associated sensor path is: sys/intf/lb-[lo100]
相同的遙測資料庫確認已通過訂閱3訂閱感測器路徑。
若要驗證事件產生,請修改Loopback100說明:
N9K-TELEMETRY-SW1(config)# interface loopback100 N9K-TELEMETRY-SW1(config-if)# description TELEMETRY-EVENT-DEMO
遙測接收器報告:
{
"timestamp": "2026-09-17T21:41:12Z",
"source": "N9K-TELEMETRY-SW1",
"subscription": "3",
"event": {
"descr": "TELEMETRY-EVENT-DEMO",
"dn": "sys/intf/lb-[lo100]",
"status": "modified"
}
}
dn標識監控的DME對象,descr屬性標識更改的屬性。
接下來,管理性停用並還原介面:
N9K-TELEMETRY-SW1(config)# interface loopback100 N9K-TELEMETRY-SW1(config-if)# shutdown
然後:
N9K-TELEMETRY-SW1(config-if)# no shutdown
接收方檢測到兩個狀態均發生更改。
| 時間戳 | 已更改的屬性 | 價值 |
|---|---|---|
| 21:41:12 | descr | 遙測事件演示 |
| 21:41:19 | adminSt | 關閉 |
| 21:41:24 | adminSt | up |
每個更新都引用了相同的受監視對象:
sys/intf/lb-[lo100]
它報告對象狀態為已修改。
這些結果證實,對受監控託管對象的不同屬性進行的更改可以生成單獨的遙測更新。
建立基於事件的訂閱後,NX-OS會生成受監控對象的初始快照。
感測器路徑資料庫報告:
快照統計資訊:
Sent = 1 Error = 0 Drops = 0
在三個受控更改之後,報告了相同的感測器路徑:
消息統計資訊:
Sent = 3 Error = 0 Drops = 0
因此,結果可以總結為:
| 集合 | 計數 |
|---|---|
| 初始快照 | 1 |
| 說明修改 | 1 |
| 管理狀態關閉 | 1 |
| 管理狀態啟動 | 1 |
| 總計 | 4 |
初始快照表示當預訂變為活動時,被監視對象的狀態,而隨後的消息對應於對象變化。
N9K-TELEMETRY-SW1# show telemetry event collector stats -------------------------------------------------------------------------------- Row ID Collection Count Latest Collection Time Sensor Path(GroupId) -------------------------------------------------------------------------------- 1 4 Thu Sep 17 21:41:24.045 UTC sys/intf/lb-[lo100](3) N9K-TELEMETRY-SW1#
實驗報告如下:
Collection Count: 4
Latest Collection Time: Thu Sep 17 21:41:24.045 UTC
Sensor Path: sys/intf/lb-[lo100]
收集計數與一個初始快照以及測試期間生成的三個更改相匹配。
N9K-TELEMETRY-SW1# show telemetry event collector errors -------------------------------------------------------------------------------- Error Description Error Count -------------------------------------------------------------------------------- Dme Event Subscription Init Failures - 0 Event Data Enqueue Failures - 0 Event Subscription Failures - 0 Pending Subscription List Create Failures - 0 Subscription Hash Table Create Failures - 0 Subscription Hash Table Destroy Failures - 0 Subscription Hash Table Insert Failures - 0 Subscription Hash Table Remove Failures - 0 N9K-TELEMETRY-SW1#
在測試期間未觀察到事件收集器錯誤。
基於事件的遙測驗證確認:
| 驗證 | 結果 |
|---|---|
| 感測器組 | 3 |
| 感測器路徑 | sys/intf/lb-[lo100] |
| 集合型別 | 活動/DME |
| 取樣間隔 | 0/無計時器 |
| 初始快照 | 已傳送 |
| 說明更改 | 已檢測 |
| 管理員關閉 | 已檢測 |
| 管理員設定 | 已檢測 |
| 總收款 | 4 |
| 事件收集器錯誤 | 0 |
成功檢測受控環回100更改可確認訂用3按預期運行。
下一節將檢查用於評估流遙測操作的主要驗證和故障排除命令。
如果沒有按預期接收遙測資料,請首先確定問題是否與傳輸會話、資料收集、感測器配置或外部接收器相關,從而進行故障排除。
此工作流程使用本實驗期間觀察到的一個問題,其中NX-OS報告了44個跳過收集和一個歷史gRPC傳輸錯誤。
N9K-TELEMETRY-SW1# show telemetry transport Session Id Dst Grp IP Address Port Encoding Transport Status -------------------------------------------------------------------------------- 0 1 192.168.100.10 57000 GPB gRPC Connected
-------------------------------------------------------------------------------- Retry buffer Size: 10485760 Event Retry Messages (Bytes): 0 Timer Retry Messages (Bytes): 0 Total Retries sent: 0 Total Retries Dropped: 0 N9K-TELEMETRY-SW1#
在最終驗證期間,遙測會話報告:
Session ID: 0
Destination Group: 1
IP Address: 192.168.100.10
Port: 57000
Encoding: GPB
Transport: gRPC
Status: Connected
「已連線」狀態確認當前已建立傳輸會話。
但是,當前會話狀態並不一定表示連線問題是否較早發生。因此,請同時檢視歷史收集和傳輸計數器。
N9K-TELEMETRY-SW1# show telemetry data collector brief
-------------------------------------------------------------------------------------------------------------------
Row ID Collector Type Successful Payloads Failed Skipped Dropped
-------------------------------------------------------------------------------------------------------------------
1 YANG 0 0 0 0 0
2 DME 513 513 0 44 0
3 NX-API 0 0 0 0 0
N9K-TELEMETRY-SW1#
實驗報告如下:
DME Successful Collections: 513
Payloads: 513
Failed: 0
Skipped: 44
Dropped: 0
Successful和Payload計數器確認已發生DME遙測收集和負載生成。
但是,「跳過」計數器指示未執行44個計畫收集。
要確定哪些感測器路徑受到了影響,請使用:
N9K-TELEMETRY-SW1# show telemetry data collector details
--------------------------------------------------------------------------------------------------------------
Row ID Successful Payloads Failed Skipped Dropped Sensor Path(GroupId)
--------------------------------------------------------------------------------------------------------------
1 414 414 0 29 0 sys/intf/phys-[eth1/10](1)
2 54 54 0 5 0 sys/intf/phys-[eth1/10]/dbgIfIn(2)
3 54 54 0 5 0 sys/intf/phys-[eth1/10]/dbgIfOut(2)
4 54 54 0 5 0 sys/intf/phys-[eth1/10]/phys(2)
N9K-TELEMETRY-SW1#
報告的詳細輸出為:
| 感測器路徑 | 已跳過 |
|---|---|
| sys/intf/phys-[eth1/10] | 29 |
| sys/intf/phys-[eth1/10]/dbgIfIn | 5 |
| sys/intf/phys-[eth1/10]/dbgIfOut | 5 |
| sys/intf/phys-[eth1/10]/phys | 5 |
| 總計 | 44 |
跳過的收集分佈於週期性感測器路徑中,表明問題沒有隔離到單個DME對象。
附註:收集計數器是累積的。非零歷史計數器並不一定表示當前存在相同情況。
N9K-TELEMETRY-SW1# show telemetry control stats
--------------------------------------------------------------------------------
Error Description Error Count
--------------------------------------------------------------------------------
<snip>
Collections skipped due to destination unreachable 44
<snip>
N9K-TELEMETRY-SW1#
此輸出直接標識跳過收集的原因:
目的地無法連線= 44
該值與DME資料收集器報告的44個跳過的集合相匹配。
這使得調查可以遠離感測器路徑本身,而轉向遙測目的地和運輸路徑。
使用show telemetry transport報告的會話ID:
N9K-TELEMETRY-SW1# show telemetry transport 0 errors
Session Id: 0
Connection Errors
Connection Error Count: 0
Transmission Errors
Tx Error Count: 1
Last Tx Error: Thu Sep 17 21:22:16.008 UTC
Last Tx Return Code: UNAVAILABLE
N9K-TELEMETRY-SW1#
實驗報告如下:
Connection Error Count: 0
Tx Error Count: 1
Last Tx Error: Thu Sep 17 21:22:16.008 UTC
Last Tx Return Code: UNAVAILABLE
UNAVAILABLE返回代碼記錄與遙測目標關聯的gRPC傳輸故障。
在本實驗中,外部接收器是在修改其配置時故意停止並重新啟動的。在該間隔期間,NX-OS無法到達遙測目標,該目標與上面觀察到的目標無法到達收集計數器相對應。
重要的相關性是:
| 觀察 | 結果 |
|---|---|
| 跳過的集合 | 44 |
| 目的地無法連線 | 44 |
| 傳輸Tx錯誤 | 1 |
| 最後一個Tx返回代碼 | 不可用 |
| 當前傳輸狀態 | 已連線 |
已跳過匹配和無法到達目標計數器提供了跳過收集原因的直接證據。
歷史傳輸錯誤提供有關在同一實驗練習中觀察到的傳輸故障的其他資訊。
恢復與接收方的連線後,使用:
N9K-TELEMETRY-SW1# show telemetry transport 0 stats
Session Id: 0
Connection Stats
Connection Count 3
Last Connected: Thu Sep 17 21:27:16.010 UTC
Disconnect Count 0
Last Disconnected: Never
Transmission Stats
Compression: disabled
Source Interface: not set()
Transmit Count: 603
Last TX time: Thu Sep 17 21:51:36.008 UTC
Min Tx Time: 1 ms
Max Tx Time: 414 ms
Avg Tx Time: 6 ms
Cur Tx Time: 1 ms
Flow Stats
Allowed Queued Msgs Size (bytes): 78643200
Current Queued Msgs Size (bytes): 0
Utilization (percent): 0
Max Queued Msgs Size (bytes): 3849
Total Queued Msgs Size (bytes): 865313
Current Msgs Held (# Msgs): 0
Total Msgs held (# Msgs): 604
Max Msgs Held (# Msgs): 5
Msgs Dropped (# Msgs): 0
Flow Control Apply Time (secs): 0
Flow Control Last Applied: Never
<snip>
N9K-TELEMETRY-SW1#
報告的最終實驗室驗證結果:
Connection Count: 3
Disconnect Count: 0
Transmit Count: 603
Average Transmission Time: 6 ms
Current Transmission Time: 1 ms
Current Queued Messages Size: 0
Transport Utilization: 0%
Messages Dropped: 0
Flow Control Last Applied: Never
這些值顯示傳輸會話已恢復並且正在主動傳輸遙測資料,沒有排隊或丟棄的消息。
最重要的當前狀態指標是:
| 指示器 | 結果 |
|---|---|
| 傳輸狀態 | 已連線 |
| 當前隊列 | 0 |
| 郵件已丟棄 | 0 |
| 流量控制 | 從未應用 |
在排除遙測計數器故障時,此區別非常重要:即使基本條件已解決,歷史錯誤仍可保持可見。
其他命令可用於驗證NX-OS是否報告配置或事件處理問題。
N9K-TELEMETRY-SW1# show telemetry config errors
--------------------------------------------------------------------------------
Row ID Path Sensor Group Error
--------------------------------------------------------------------------------
Transport Errors
--------------------------------------------------------------------------------
Destination group ID Source Interface Configured VRF Correct VRF
--------------------------------------------------------------------------------
N9K-TELEMETRY-SW1#
對於基於事件的遙測,請使用:
N9K-TELEMETRY-SW1# show telemetry event collector errors
--------------------------------------------------------------------------------
Error Description Error Count
--------------------------------------------------------------------------------
Dme Event Subscription Init Failures - 0
Event Data Enqueue Failures - 0
Event Subscription Failures - 0
Pending Subscription List Create Failures - 0
Subscription Hash Table Create Failures - 0
Subscription Hash Table Destroy Failures - 0
Subscription Hash Table Insert Failures - 0
Subscription Hash Table Remove Failures - 0
N9K-TELEMETRY-SW1#
所有事件收集器錯誤計數器也為零。
這些結果有助於在調查跳過的定期收集時排除配置和事件收集器故障。
調查期間使用的命令可總結如下:
| 指令 | 目的 |
|---|---|
| show telemetry transport | 檢查當前的傳輸會話狀態。 |
| show telemetry data collector brief | 標識成功、失敗、跳過或丟棄的集合。 |
| 顯示遙測資料收集器詳細資訊 | 確定哪些感測器路徑受到影響。 |
| 顯示遙測控制統計資訊 | 確定跳過收集的原因。 |
| show telemetry transport <session-id>錯誤 | 檢查傳輸故障。 |
| show telemetry transport <session-id>統計資訊 | 檢查傳輸恢復、隊列和丟棄。 |
| 顯示遙測配置錯誤 | 確定遙測配置錯誤。 |
| 顯示遙測事件收集器錯誤 | 確定事件收集器錯誤。 |
在本實驗中,故障排除順序確定了臨時遙測目標可達性條件,而不是DME感測器路徑或配置故障。
接收器重新可用後,遙測傳輸返回到「已連線」狀態,收集恢復,並且未觀察到當前隊列或消息丟棄情況。
系統資源監控是流遙測的常見用例。CPU和記憶體資訊可以定期從Nexus交換機匯出到外部監控平台,以進行歷史分析、控制面板、容量監控和警報。
Cisco NX-OS為常用監控資訊提供預定義的遙測路徑標籤。在此示例中,資源路徑標籤用於收集系統CPU和記憶體資訊。
使用資源路徑標籤建立新的感測器組:
N9K-TELEMETRY-SW1(config)# telemetry
N9K-TELEMETRY-SW1(config-telemetry)# sensor-group 4
N9K-TELEMETRY-SW1(conf-tm-sensor)# path resources
建立預訂4並將感測器組4與目標組1相關聯:
N9K-TELEMETRY-SW1(config-telemetry)# subscription 4
N9K-TELEMETRY-SW1(conf-tm-sub)# dst-grp 1
N9K-TELEMETRY-SW1(conf-tm-sub)# snsr-grp 4 sample-interval 10000
感測器組4使用預定義的資源路徑標籤。訂閱4將感測器組與現有遙測目標關聯,並配置具有非零取樣間隔的定期收集。
相關配置為:
telemetry
destination-group 1
ip address 192.168.100.10 port 57000 protocol gRPC encoding GPB
use-vrf default
sensor-group 4
path resources
subscription 4
dst-grp 1
snsr-grp 4 sample-interval 10000
運行此命令以檢查由資源路徑標籤表示的DME路徑:
N9K-TELEMETRY-SW1# show telemetry usability resources
1) label_name : resources
path_name : sys/proc
query_type : poll
<snip>
2) label_name : resources
path_name : sys/procsys
query_type : poll
<snip>
3) label_name : resources
path_name : sys/procsys/sysmem
query_type : event
query_condition : query-target-filter=and(updated(procSysMem.memstatus),ne(procSysMem.memstatus,"OK"))
輸出顯示,資源標籤表示多個基礎DME路徑。
sys/proc和sys/procsys路徑使用輪詢查詢並提供進程和系統資源資訊。sys/procsys/sysmem路徑使用事件查詢,該查詢可以在受監控記憶體狀態更新且不再正常時報告更改。
這說明了直接指定單個DME可分辨名稱和使用預定義遙測路徑標籤之間的區別。
舉例來說:
Individual DME path:
path sys/intf/phys-[eth1/10]
Predefined path label:
path resources
使用show telemetry control database驗證感測器組4和訂閱4的狀態。
感測器組資料庫報告:
Sensor Group ID Sensor Group type Sampling interval(ms) Linked subscriptions SubID ---------------------------------------------------------------------------------------------------- 4 Timer /DME 10000/Running 1 4
計時器/DME型別和10000/運行取樣間隔確認感測器組4作為週期性的DME遙測源運行。
感測器路徑資料庫還顯示與資源標籤關聯的基礎路徑。
舉例來說:
resources:sys/procsys(4) GPB Encoded Data size in bytes (Cur/Min/Max): 20221/20221/20229 Subscription Id: 4 Message Stats: Sent = 14 Error = 0 Drops = 0
與進程相關的路徑還報告活動的遙測收集:
resources:sys/proc(4)
GPB Encoded Data size in bytes (Cur/Min/Max): 82284/81262/85098
Subscription Id: 4
Message Stats:
Sent = 14
Error = 0
Drops = 0
這些計數器確認資源資訊正在被收集、編碼為GPB並在沒有消息錯誤或丟棄的情況下被傳輸。
傳統NX-OS CLI可用於顯示交換機的當前CPU和記憶體狀態:
N9K-TELEMETRY-SW1# show system resources Load average: 1 minute: 0.57 5 minutes: 0.58 15 minutes: 0.63 Processes : 854 total, 2 running CPU states : 14.64% user, 3.50% kernel, 81.85% idle <snip> Memory usage: 24530808K total, 9315248K used, 15215560K free Kernel buffers: 22104K Used Kernel cached : 6255520K Used Current memory status: OK
CLI提供系統資源的即時檢視。
流遙測允許將相同型別的CPU和記憶體資訊匯出到外部接收器,以便隨著時間的推移可以儲存和分析多個樣本。
CPU利用率可能會快速變化。因此,當在不同時間收集樣本時,CLI顯示的CPU值和通過遙測接收的值可能不同。
遙測接收器已成功解碼與訂閱4關聯的系統資源資訊。
此示例顯示來自一個遙測示例的CPU和記憶體資訊:
{
"timestamp": "2026-09-18T23:15:08Z",
"source": "N9K-TELEMETRY-SW1",
"cpu": {
"user": 11,
"kernel": 2,
"idle": 85,
"averageLast60Seconds": 7.099999904632568
},
"memory": {
"status": "OK",
"utilization": 38.18336486816406,
"usedKB": 9366688,
"freeKB": 15164120,
"totalKB": 24530808
}
}
接收方輸出確認正在成功解碼來自訂閱4的CPU和記憶體資訊並可用於外部監控。
為了進行比較,NX-OS CLI報告大約24.5 GB總記憶體中大約9.3 GB的已用記憶體,並且當前記憶體狀態為正常。遙測示例報告相同的總記憶體值、大約38%的記憶體利用率以及相同的OK記憶體狀態。
CPU值可能在CLI和遙測樣本之間變化,因為CPU利用率會動態變化,並且測量值不一定在同一時刻收集。
可以使用多個遙測樣本來觀察系統資源利用率隨時間的變化。
實驗期間從訂用4收到這些示例:
CPU平均使用率 — 過去60秒
10% |
9% | ●
8% | ●
7% | ●
6% |
+-------------------------------------
23:14:08 23:14:38 23:15:08
8.70% 8.50% 7.10%
Time
記憶體利用率
39% |
38% | ●-----------●-----------●
37% |
+-------------------------------------
23:14:08 23:14:38 23:15:08
37.82% 38.06% 38.18%
Time
這些示例說明了定期遙測如何提供基於時間的系統行為檢視,而不是單個瞬時測量。在生產環境中,監控或可觀察平台可以儲存大量樣本,並使用這些樣本來識別趨勢、生成警報和構建歷史控制板。
Cisco NX-OS流遙測提供了一種結構化機制,用於將操作資訊從Cisco Nexus 9000交換機匯出到外部遙測接收器。
本文檔演示了流遙測的基本元件,包括DME感測器路徑、GPB編碼、gRPC傳輸、目標組、感測器組和訂閱。
使用實驗室環境,配置和驗證定期遙測和基於事件的遙測。定期訂閱用於收集Ethernet1/10統計資訊和操作資訊,而基於事件的訂閱用於檢測對Loopback100託管對象的受控更改。
一個實際的系統資源監控示例還演示了預定義的資源路徑標籤如何用於向外部遙測接收器匯出CPU和記憶體資訊。
驗證和故障排除示例演示了NX-OS遙測命令如何用於驗證傳輸連線、資料收集、事件處理和歷史收集故障。
這些概念為瞭解、實施、驗證和故障排除Cisco Nexus 9000 NX-OS上的基本流遙測部署奠定了基礎。
| 修訂 | 發佈日期 | 意見 |
|---|---|---|
1.0 |
01-Oct-2026
|
初始版本 |