简介
本文档介绍如何使用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套件。有关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和yang-notif-native。
通常情况下,会过滤流中的事件集。不同的过滤器类型用于不同的流类型。
本文档使用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步:在YANG Suit中的“协议”>“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-event-notification YANG模块。
第1步:在YANG Suit中的“协议”>“NETCONF”下,选择与正在使用的设备关联的YANG集。在本示例中,YANG集称为CSR1000V。
步骤2.加载IETF-event-notifications YANG模块。
步骤3. NETCONF操作必须为Other RPC。
第4步:在Device下拉菜单中,选择所需的设备,然后在新的窗口或新的选项卡中点击Open device window。
步骤5.在打开的单独窗口中,单击Start Session以与设备建立活动的NETCONF会话。这是已建立的NETCONF会话窗口的示例。

步骤6.返回上一个窗口。在ietf-event-notification树下的节点中,展开establish-subscription节点并选择input。
步骤7.您需要定义流、过滤器和更新触发器值。
数据流:杨推。
过滤器:xpath-filter
XPath过滤器必须采用以下格式:
/prefix:xpath
在本示例中,使用在获取XPath过滤器的步骤中获取的参数。
/memory-ios-xe-oper:memory-statistics/memory-statistic
提示:注意“/”在XPath过滤器的位置
步骤8. update-trigger是一个以厘秒为单位的值(1/100秒)。1000的时段导致每10秒获取一次更新。
步骤9.一旦提供了流、过滤器和更新触发值,请点击Build RPC(生成RPC),将会显示一个类似本图所示的RPC。

步骤10.现在您可以点击Run RPC(运行RPC)并创建定期NETCONF拨入订阅。
步骤11. RPC消息现在显示在NETCONF会话创建的窗口中。
此映像是已发送RPC的示例,收到的RPC-reply消息中包含OK消息,表示订阅成功。

此图像是每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 Telemetry选项不可用,可以通过YANG套件中的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
数据流:yang-push
编码: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枝叶。
此映像是已配置更改订阅的RPC示例。

验证
使用本部分可确认配置能否正常运行。
使用show telemetry ietf subscription all显示有关思科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套件工具的支持,请联系支持邮件或支持论坛。
相关信息