简介
本文档介绍如何使用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工具的支持,请联系支持邮件或支持论坛。
相关信息