目录

简介

先决条件

要求

使用的组件

背景信息

有关模型驱动遥测的信息

遥测角色

订用概述

订用标识符

数据源规范

配置

使用YANG套件配置定期动态订用

获取XPath过滤器的步骤

创建定期NETCONF动态订用的步骤

使用YANG套件配置更改时动态订用

使用YANG套件配置定期配置的订用

使用YANG套件配置更改时配置的订用

验证

故障排除

相关信息

简介

本文档介绍如何使用YANG套件在Cisco IOS®-XE设备上配置模型驱动遥测，以执行示例遥测远程过程调用(RPC)。

先决条件

要求

Cisco 建议您了解以下主题：

- 要了解使用遥测时所需的数据，需要掌握YANG知识。

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

使用的组件

本文档中的信息基于以下软件和硬件版本：

- CSR1000V，带Cisco IOS XE 17.3.3

- 思科YANG套件版本2.8

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

相关产品

本文档还可用于以下硬件和软件版本：Cisco IOS XE设备，包括Cisco Catalyst 9000交换机、Cisco ASR 1000、ISR 4000和CSR 1000路由器。

背景信息

需要安装YANG Suite。有关YANG Suite安装的详细信息，请访问文档或Github存储库。

必须在设备上配置和运行NETCONF-YANG，即使不使用NETCONF也是如此。有关NETCONF配置的详细信息，请访问文档。

YANG套件中必须存在设备配置文件、YANG存储库和与相关设备关联的YANG模块集。有关如何创建设备配置文件的详细信息，YANG存储库和YANG模块集将访问“管理设备配置文件”下的YANG套件文档。

有关模型驱动遥测的信息

遥测是一种自动通信过程，通过该过程在远程或无法访问的点收集测量数据和其他数据，并将其发送到接收设备进行监控。模型驱动遥测提供了一种将YAN模型化数据流传输到数据收集器的机制。

通过使用基于标准的YANG数据模型(基于NETCONF、RESTCONF或gRPC网络管理接口(gNMI)协议)，应用程序可以订用所需的特定数据项。也可使用命令行(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中的流、xpath-filter和句点字段为必填字段。

当发送RPC时，发布者的RPC回复包含包含结果字符串元素的消息。

此表显示<rpc-reply>消息中的响应和原因：

可以从YANG Suite发送RPC来配置定期订阅。

获取XPath过滤器的步骤

要获取XPath过滤器，在定义需要流传输的数据后，可以利用YANG Suite。在本例中，内存统计信息是要传输的数据。

步骤1.在YANG Sait（协议）> NETCONF下，选择与正在使用的设备关联的YANG集。在本例中，YANG集称为CSR1000V。

步骤2.加载包含相关数据的YANG模块。在本例中，它是Cisco-IOS-XE-memory-oper。

步骤3.在YANG树中找到要获取XPath过滤器的节点，在本例中为memory-statistic，右键单击该节点并选择Properties。

步骤4.在显示的弹出窗口中，有2个属性共同定义XPath过滤器。这些值是Xpath和Prefix。

创建定期NETCONF动态订用的步骤

要创建定期NETCONF动态订用，需要使用IETF事件通知YANG模块。

步骤1.在YANG Sait（协议）> NETCONF下，选择与正在使用的设备关联的YANG集。在本例中，YANG集称为CSR1000V。

步骤2.加载IETF事件通知YANG模块。

步骤3.NETCONF操作必须是Other RPC。

步骤4.在Device下拉菜单中，选择感兴趣的设备，然后在新窗口或新选项卡中单击Open device window。

步骤5.在打开的单独窗口中，单击Start Session以与设备建立活动的NETCONF会话。这是已建立的NETCONF会话窗口的示例。

步骤6.返回上一个窗口。在ietf-event-notification树下的节点中，展开establish-subscription节点并选择输入。

步骤7.您需要定义流、过滤器和更新触发器值。

流：阳推。

过滤器：xpath-filter

XPath过滤器必须具有以下格式：

/prefix:xpath

在本示例中，使用步骤中获得的参数获取XPath过滤器部分。

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

提示：注意“/”在XPath过滤器中的位置

步骤8. update-trigger是以1厘秒（1/100秒）为单位的值。1000的时间段导致每10秒获取一次更新。

第9步。一旦提供了流、过滤器和更新触发器值，请单击“生成RPC”，此时将出现与此图像中显示的RPC类似的RPC。

步骤10.现在可以单击Run RPC并创建定期NETCONF拨入订用。

步骤11. RPC消息现在出现在NETCONF会话建立的窗口中。

此映像是RPC已发送的示例，并且收到RPC应答时显示OK消息，这表示订阅成功。

此映像是每10秒接收一次的内存统计数据的示例。

使用YANG套件配置更改时动态订用

使用YANG Suite配置定期订用一节中指出的所有步骤均适用于此部分，唯一的区别在于更新触发器值中必须定义值为0的阻尼期，不能有其他值。

这是RPC为CDP邻居数据建立更改时订阅的示例。

使用YANG套件配置定期配置的订用

配置的订用由控制器在发布服务器上的管理操作创建，并明确包括由订用定义的遥测数据接收器的规范。这些订用在发布者重新启动后会持续，因为它们是设备配置的一部分。

已配置的拨出订用在设备上使用以下方法之一进行配置：

- 使用配置CLI通过控制台/VTY更改为设备配置。

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

本文档不介绍如何使用CLI配置拨出订用，而是介绍如何从YANG Suite发送NETCONF RPC消息以配置拨出订用。

对于已配置的订用，gRPC协议可用，且只能与阳推流一起使用。gRPC传输协议仅支持密钥值Google协议缓冲区(kvGPB)编码。

您可以使用YANG套件作为接收器来测试示例拨出订用。

要创建定期配置的订用，您需要使用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.以下值用于本示例：

订用ID:100

流：阳推

编码：encode-kvgpb

期间：1000

xpath过滤器：/memory-ios-xe-oper:memory-statistics/memory-statistic

需要定义有关接收方的信息

地址 :<IP地址>

端口：<port>

协议：grpc-tcp

步骤8.单击“生成RPC”按钮。

步骤9.单击“运行RPC”。

步骤10.如果成功，则在Protocols > gRPC Telemetry下，现在将收到信息。

使用YANG套件配置更改时配置的订用

要配置更改时拨出订用，请遵循“使用YANG套件配置定期配置订用”一节中描述的相同过程，更改的唯一值是必须设置为false的无同步启动枝叶。

此映像是RPC示例，用于已配置更改的订阅。

验证

使用本部分可确认配置能否正常运行。

显示有关Cisco IOS XE上遥测订用的信息，并显示遥测ietf订用全部。

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 Amsterdam 17.3.x

- 技术支持和文档 - Cisco Systems