支持 Cisco 模型驱动遥测技术
NorthStar 控制器支持 Cisco 模型驱动遥测 (MDT),作为 Cisco 设备的接口和 LSP 流量数据 SNMP 收集的替代方法。SNMP 收集相对较慢(轮询间隔大于 5 分钟)且成本高昂。NorthStar 的 MDT 收集器通过持续处理来自网络中 Cisco 设备的遥测流来执行网络监控。
NorthStar 控制器中的 SNMP 收集是通过在任务计划程序 (Administration > Task Scheduler中创建 SNMP 收集任务来启用的)。如果要使用 MDT 在网络中的 Cisco 设备上收集数据,并对网络中的其他设备使用 SNMP 收集,则可以创建一个 SNMP 收集任务,该任务指定要包含的选定设备或设备组,并取消选择那些支持 MDT 的设备或设备组。有关 SNMP 收集任务的更多信息,请参阅 使用 SNMP 收集 数据。
您不应同时为同一设备启用 SNMP 收集和 MDT。
以下部分介绍了 NorthStar MDT 收集器:
工作原理
MDT 收集器作为 NorthStar 分析 RPM 捆绑包的一部分提供,驻留在分析节点上。Supervisord 将 MDT 收集器进程作为 Analytics Supervisord 组的一部分进行管理。
管道作为第三方组件安装在 /opt/northstar/thirdparty/pipeline 中。管道日志文件位于 /opt/northstar/logs/pipeline.msg 中。
图 1 演示了使用 MDT 时的常规数据流。
以下是该过程的概述:
-
MDT 收集器由 bigmuddy-network-遥测管道(开源)和 NorthStar 的输出插件组成。管道的配置文件 (pipeline.yml) 驻留在 /opt/northstar/data/pipeline/config 中。
-
MDT 数据的流由路由器启动。
-
流的范围和时间表与设备上的配置一致。
注意:IOS-XR 设备必须运行 XR 6.1.1 或更高版本。
-
NorthStar MDT 支持 UDP 和 TCP 传输协议。对于编码,它支持 GPB、自描述 GPB (KV-GPB) 和 JSON。
-
当管道通过 UDP 或 TCP 接收到遥测数据时,它会对数据进行解码并将其推送到 NorthStar 输出插件进行处理。这发生在 MDT 收集器内部。
-
NorthStar 插件将数据转换为 JTI 格式,将其编码为 JSON 文档,然后通过 UDP 将其从 MDT 收集器推送到 Logstash。
-
Logstash 处理 JSON 文档,然后将信息推送到 Elasticsearch 和 RabbitMQ 供 NorthStar 控制器使用。
-
NorthStar 组件利用 NorthStar REST API 检索流量数据。
在 NorthStar 中配置 MDT
直接在 NorthStar 中配置的唯一 MDT 参数与起始日志级别有关。默认情况下,NorthStar 在“信息”日志级别启动 MDT 组件。如果您愿意,可以通过访问 cMGD CLI将级别修改为“调试”,如《NorthStar 控制器/Planner 入门指南》中的使用 NorthStar CLI配置 NorthStar 设置中所述。使用 cMGD 命令set northstar analytics model-driven-telemetry log-destination destination-name level log-level
调试日志将写入文件 /opt/northstar/logs/pipeline.log 中,除非您配置了不同的目标名称。
更改日志级别时,必须重新启动管道:
supervisorctl restart analytics:pipeline
在IOS-XR设备上配置MDT
必须在要为其收集数据的IOS-XR设备上配置MDT。此处显示了示例配置,但请将思科文档视为IOS-XR配置信息的最终来源。
telemetry model-driven destination-group Northstar address-family ipv4 collector-address port port encoding gpb | self-describing-gpb protocol tcp | udp ! ! sensor-group mdt sensor-path Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters sensor-path Cisco-IOS-XR-mpls-te-oper:mpls-te/signalling-counters/head-signalling-counters/head-signalling-counter subscription mdt sensor-group-id mdt sample-interval 60000 destination-id Northstar ! !
有关此配置的一些注意事项:
-
收集器地址变量是指运行 MDT 收集器的系统(分析节点)。
-
编码选择(gpb 或自描述 gpb)不会影响 or udp_northstar 部分中的tcp_northstar“封装”设置。
-
如果将 TCP 配置为协议,则 IOS-XR MDT 配置中的端口值必须与管道配置中的端口设置匹配。在 /opt/northstar/data/pipeline/config/pipeline.yml 中的部分中tcp_northstar查找参数listen。如果将 UDP 配置为协议,则端口值必须与部分udp_northstar中的端口值匹配。
-
设置 sample-interval (毫秒)指定发送遥测流的频率。
-
sensor-path Cisco-IOS-XR-mpls-te-oper:mpls-te/signalling-counters/head-signalling-counters/head-signalling-counter语句指示设备收集隧道名称和信号名称,并将其报告给MDT收集器。
-
使用该 sensor-path 配置,您可以根据指定的条件进行过滤。例如,要报告为 LSP 创建的隧道接口的统计信息:
sensor-path Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface [interface-name='tunnel-te*']/latest/generic-counters