目錄

簡介

必要條件

需求

採用元件

背景資訊

有關模型驅動遙測的資訊

遙測角色

訂閱概述

訂閱識別符號

資料來源規範

設定

使用YANG套件配置定期動態訂閱

獲取XPath過濾器的步驟

建立定期NETCONF動態訂閱的步驟

使用YANG套件配置更改動態訂閱

使用YANG套件配置定期配置的預訂

使用YANG套件配置更改時配置的預訂

驗證

疑難排解

相關資訊

簡介

本文說明如何使用YANG Suite在Cisco IOS®-XE裝置上配置模型驅動的遙測，以執行遙測遠端過程呼叫(RPC)示例。

必要條件

需求

思科建議您瞭解以下主題：

- 需要瞭解YANG才能理解使用遙測時所需的資料。

- 瞭解NETCONF操作，例如get、get-config、edit-config。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- 採用Cisco IOS XE 17.3.3的CSR1000V

- Cisco YANG套件版本2.8

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

相關產品

本檔案也適用於以下硬體和軟體版本：Cisco IOS XE裝置，包括Cisco Catalyst 9000交換器、Cisco ASR 1000、ISR 4000和CSR 1000路由器。

背景資訊

需要安裝YANG套件。有關YANG Suite安裝的更多資訊，請訪問文檔或Github儲存庫。

即使未使用NETCONF，也必須配置並在裝置上運行NETCONF-YANG。有關NETCONF配置的詳細資訊，請訪問文檔。

裝置配置檔案、YANG儲存庫以及與感興趣的裝置關聯的YANG模組集必須存在於YANG套件中。有關如何建立裝置配置檔案、YANG儲存庫和YANG模組集的詳細資訊，請訪問管理裝置配置檔案下的YANG套件文檔。

有關模型驅動遙測的資訊

遙測是一個自動通訊過程，通過它可以在遠端或無法到達的點收集測量資料和其他資料，並將其傳送到接收裝置以進行監控。模型驅動遙測提供了一種將YANG模型資料流式傳輸到資料收集器的機制。

應用可以通過在NETCONF、RESTCONF或gRPC網路管理介面(gNMI)通訊協定上使用基於標準的YANG資料模型，訂閱所需的特定資料專案。也可以使用命令列(CLI)建立預訂。

根據訂閱條件和資料型別，按照定義的順序（定期）或變更發佈結構化資料。

遙測角色

在使用遙測的系統中，涉及不同的角色。本文檔介紹了以下遙測角色：

- 發佈者：傳送遙測資料的網路元素。

- 接收者：接收遙測資料。這也稱為收集器。

- 控制器：建立訂閱但不接收遙測資料的網路元素。與預訂相關聯的遙測資料，它建立的將轉至接收器。這也稱為管理代理或管理實體。

- 訂閱者：建立訂閱的網路元素。從技術上講，雖然不一定非得由這個接收者來完成，但在這份檔案中，兩者都是相同的。

訂閱概述

訂閱是建立遙測角色之間的關聯並定義在它們之間傳送的資料的專案。

在Cisco IOS XE系統的遙測中使用兩種型別的訂閱：動態訂閱和配置的訂閱。

動態訂閱由連線到發佈伺服器的客戶端（訂戶）建立，它們被視為撥入。配置的訂閱會導致發佈者啟動與接收者的連線，因此它們被視為撥出。

訂閱識別符號

預訂由32位正整數值標識。已配置訂閱的ID由控制器設定，動態訂閱的ID由發佈者設定。

資料來源規範

訂閱中的遙測資料來源通過使用流和篩選器指定。術語流是指相關的一組事件。RFC 5277將事件流定義為與某些轉發標準匹配的一組事件通知。

Cisco IOS XE支援兩個流：楊普斯和揚諾提夫人。

通常情況下，會過濾流中的事件集。不同的過濾器型別用於不同的流型別。

本文檔使用yang-push作為流型別，並利用XPath過濾器。

設定

使用YANG套件配置定期動態訂閱

動態訂閱由連線到發佈伺服器的訂閱者建立，並使用該連線（通常是RPC）內的機制呼叫訂閱建立。訂閱的生存時間被限製為訂閱伺服器和發佈伺服器之間的連線的生存時間，遙測資料僅傳送到該訂閱伺服器。如果發佈伺服器或訂閱伺服器重新啟動，這些訂閱不會持續。您可以使用帶內<establish-subscription>RPC建立動態訂閱。<establish-subscription>RPC從IETF遙測使用者傳送到網路裝置。RPC中的stream、xpath-filter和period欄位是必填欄位。

傳送RPC時，發佈者的RPC回覆包含一條消息，該消息包含一個包含結果字串的元素。

此表顯示<rpc-reply>消息中的響應和響應原因：

可以從YANG Suite傳送RPC來配置定期訂閱。

獲取XPath過濾器的步驟

要獲取XPath篩選器，可以在定義需要流式傳輸的資料後利用YANG Suite。在此示例中，記憶體統計資訊是要傳輸的資料。

步驟1.在Protocols > NETCONF下的YANG套裝中，選擇與正在使用的裝置關聯的YANG集。在此範例中，YANG設定稱為CSR1000V。

步驟2.載入包含感興趣資料的YANG模組。在本例中，它是Cisco-IOS-XE-memory-oper。

步驟3.在YANG樹中查詢要為其獲取XPath過濾器的節點，在此示例中為memory-statistic，按一下右鍵該節點，然後選擇「屬性」。

步驟4.在出現的彈出視窗中，有兩個屬性共同定義了XPath篩選器。這些值為Xpath和Prefix。

建立定期NETCONF動態訂閱的步驟

要建立定期NETCONF動態訂閱，需要使用IETF-event-notification YANG模組。

步驟1.在Protocols > NETCONF下的YANG套裝中，選擇與正在使用的裝置關聯的YANG集。在此範例中，YANG設定稱為CSR1000V。

步驟2.載入IETF-event-notifications YANG模組。

步驟3. NETCONF操作必須為Other RPC。

步驟4.在「裝置」下拉選單中，選擇所需的裝置，然後在新的視窗或新的頁籤中按一下「開啟裝置視窗」。

步驟5.在開啟的單獨視窗中，按一下Start Session以與裝置建立活動的NETCONF會話。以下是已建立NETCONF作業階段視窗的範例。

步驟6.返回上一個視窗。在ietf-event-notification tree下的節點中，展開establish-subscription節點並選擇input。

步驟7.您需要定義流、過濾和更新觸發器值。

資料流：楊推。

filter: (篩選條件：)xpath-filter

XPath篩選器必須採用以下格式：

/prefix:xpath

在本示例中，使用在獲取XPath過濾器的步驟中獲取的引數。

/memory-ios-xe-oper:memory-statistics/memory-statistic

提示：注意「/」在XPath篩選器中的位置

步驟8. update-trigger是一個以厘秒為單位的值（1/100秒）。1000的時段導致每10秒獲取一次更新。

步驟9.一旦提供了流、篩選器和更新觸發值，請按一下「生成RPC」，將會顯示一個類似此影象所示的RPC。

步驟10.現在您可以按一下「運行RPC」並建立定期NETCONF撥入訂閱。

步驟11. RPC消息現在顯示在NETCONF會話建立的視窗中。

此影象是已傳送RPC的示例，並且已收到帶有OK消息的RPC-reply表示訂閱成功。

此影象是每10秒接收的記憶體統計資料的示例。

使用YANG套件配置更改動態訂閱

使用YANG套件配置定期訂閱一節中指示的所有步驟均適用於此部分，唯一的區別在於更新觸發值，其中必須定義值為0的抑制期，否則將無法使用其他值。

以下是RPC為CDP鄰居資料建立更改訂閱的示例。

使用YANG套件配置定期配置的預訂

配置的訂閱由控制器在發佈伺服器上執行管理操作建立，並明確包含訂閱定義的遙測資料的接收方規範。當這些訂閱成為裝置配置的一部分時，它們會在發佈伺服器的重新啟動中持續存在。

已配置的撥出訂閱使用以下任何方法在裝置上配置：

- 使用配置CLI通過控制檯/VTY更改為裝置配置。

- 使用NETCONF/RESTCONF配置所需的訂閱。

本文檔不介紹如何使用CLI配置撥出訂閱，而是介紹如何從YANG Suite傳送NETCONF RPC消息以配置撥出訂閱。

對於已配置的訂閱，gRPC協定可用，且只能與yang-push流一起使用。gRPC傳輸協定僅支援鍵值Google協定緩衝區(kvGPB)編碼。

您可以使用YANG Suite作為接收器來測試示例撥出訂閱。

要建立定期配置的訂閱，需要使用Cisco-IOS-XE-mdt-cfg YANG模組。

步驟1.在YANG Suite中，在Protocols > gRPC Telemetry下，輸入IP地址和埠，然後按一下Start telemetry receiver for YANG Suite，開始偵聽指定的IP地址和埠。

附註：如果gRPC遙測選項不可用，可以通過YANG Suite中的Admin > Manage plugins頁面安裝外掛

步驟2.在Protocols > NETCONF下，選擇與正在使用的裝置關聯的YANG集。在此範例中，YANG設定稱為CSR1000V。

步驟3.載入Cisco-IOS-XE-mdt-cfg YANG模組。

步驟4. NETCONF操作必須為edit-config。

步驟5.選擇感興趣的裝置。

步驟6.在Cisco-IOS-XE-mdt-cfg樹下，需要在mdt-subscription節點中定義以下值：subscription-id、stream、encoding、period和xpath-filter。另外，關於接收方的資訊：IP地址、埠和協定。

步驟7.以下值用於此範例：

subscription-id:100

資料流：楊推

編碼：encode-kvgpb

期間：1000

xpath過濾器：/memory-ios-xe-oper:memory-statistics/memory-statistic

需要定義有關接收者的資訊

地址：<IP地址>

連接埠:<port>

通訊協定:grpc-tcp

步驟8.單擊Build RPC按鈕。

步驟9.單擊「運行RPC」。

步驟10.如果成功，則在Protocols > gRPC Telemetry下收到資訊。

使用YANG套件配置更改時配置的預訂

要配置更改時撥出的訂用（與使用YANG套件配置定期配置的訂用一節中所述的過程相同），唯一更改的值是必須設定為false的no-sync-on-start leaf。

此映像是已配置更改訂閱的RPC示例。

驗證

使用本節內容，確認您的組態是否正常運作。

使用show telemetry ietf subscription all顯示Cisco IOS XE上有關遙測訂閱的資訊。

Device# show telemetry ietf subscription all

Telemetry subscription brief

ID               Type        State       Filter type

--------------------------------------------------------

100              Configured  Valid       xpath

2147483651       Dynamic     Valid       xpath

使用show telemetry ietf <subscriptionID> detail列出有關訂閱的詳細資訊。

Device#show telemetry ietf 100 detail

Telemetry subscription detail:

Subscription ID: 2147483651

Type: Dynamic

State: Valid

Stream: yang-push

Filter:

Filter type: xpath

XPath: /memory-ios-xe-oper:memory-statistics/memory-statistic

Update policy:

Update Trigger: periodic

Period: 10000

Encoding: encode-xml

Source VRF:

Source Address:

Notes:

Receivers:

Address                                    Port     Protocol         Protocol Profile

-----------------------------------------------------------------------------------------

10.88.246.10                                 57344    netconf

使用show telemetry internal connection驗證與接收器的連線狀態。

Device# show telemetry internal connection

Telemetry connection

Peer Address    Port  VRF Source Address  Transport  State         Profile

--------------- ----- --- --------------- ---------- ------------- -------------

10.88.246.10   57344   0 10.88.246.2    grpc-tcp   Active

疑難排解

本節提供的資訊可用於對組態進行疑難排解。

案例1.如果遙測訂閱的狀態有效，且您在接收器中未收到流。

驗證與接收器的連線的狀態。

Device#show telemetry internal connection

Telemetry connection

Peer Address    Port  VRF Source Address  Transport  State         Profile

--------------- ----- --- --------------- ---------- ------------- -------------

10.88.246.10    57350   0 10.88.247.86    grpc-tcp   Connecting

如果狀態為Connecting，請確保發佈伺服器和接收器之間保持正確的連線。

Device# ping

確保所使用的埠是開啟的。

Device# telnet

Trying 10.88.246.10, 57350 ... % Connection refused by remote host

在此範例中，連線埠無法開啟/連線。驗證沒有防火牆可以阻止該埠並確保指定的埠正確。

在使用VRF的裝置中，需要在RPC中為已配置的訂閱指定源VRF/源地址。此圖顯示指定源VRF的RPC。

案例2.如果遙測訂閱的狀態無效。

Device# show telemetry ietf subscription all

Telemetry subscription brief

ID               Type        State       Filter type

--------------------------------------------------------

200              Configured  Invalid     xpath

驗證訂閱詳細資訊。

Device# show telemetry ietf subscription 200 detail

Telemetry subscription detail:

Subscription ID: 200

Type: Configured

State: Invalid

Stream: yang-push

Filter:

Filter type: xpath

XPath: /memory-ios-xe-oper:/memory-statistics/memory-statistic

Update policy:

Update Trigger: periodic

Period: 1000

Encoding: encode-kvgpb

Source VRF:

Source Address:

Notes: XPath parse error 'Invalid expression: offset(21)' 58.

Receivers:

Address                                    Port     Protocol         Protocol Profile

-----------------------------------------------------------------------------------------

10.88.247.89                               57344    grpc-tcp

請注意XPath過濾器的語法，它在「：」後有一個額外的「/」，正確的XPath過濾器為：

/memory-ios-xe-oper:memory-statistics/memory-statistic

任何語法錯誤（例如XPath篩選器中缺少字母或額外的字元）都可能導致無效的訂閱。

如果您需要對YANG Suite工具的支援，請聯絡支援郵件或支援論壇。

相關資訊

- 型號驅動遙測，可程式設計性配置指南，Cisco IOS XE阿姆斯特丹版17.3.x

- 技術支援與文件 - Cisco Systems