Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解 Junos 遥测

Junos 遥测是瞻博网络开发的一个框架,支持将作数据从 Junos 设备导出到外部收集器。对这些数据进行分析,以便进行实时设备监控。本主题介绍模型驱动遥测、遥测模式、传输协议、遥测传感器、传感器路径和 Junos 遥测使用的数据模型的概念。

网络遥测

网络遥测是从网络设备收集、传输和分析数据的过程。这些数据可以包含有关流量模式、设备状态、错误率和其他指标的信息,这些指标可以深入了解网络的运行状况和行为。利用这些数据,您可以得出有用的见解,并应用这些信息来有效地监控和管理网络性能和安全性。网络管理员可以使用遥测数据来解决网络问题、检测异常情况并优化整个网络的资源利用率。网络遥测的主要优势之一是能够提供对网络运维的实时可见性。

网络遥测在增强网络安全方面也发挥着至关重要的作用。通过分析遥测数据,安全团队可以识别可能预示着网络攻击或其他安全威胁的异常模式,从而能够更快地检测和响应潜在的安全事件,并帮助保护网络及其数据。

Junos 遥测

Junos Telemetry 是瞻博网络的遥测解决方案,专为流遥测数据而开发。它具有高度的可扩展性,可以支持远程监控网络中的多个设备。它还有助于改进故障排除、主动管理网络并降低运维成本。

Junos 遥测技术可应用于多种网络场景:

  • 性能监控: 监控接口利用率、延迟和数据包丢失等关键指标,以确保最佳的网络性能。
  • 安全监控: 跟踪安全事件,分析流量模式,并识别潜在的安全威胁。
  • 应用性能管理: 通过将网络数据与应用数据相关联,深入了解应用性能。
  • 网络容量规划: 分析历史和实时数据,以确定潜在的瓶颈,并为未来的容量需求做出规划。

其他瞻博网络应用还利用 Junos 遥测提供实时数据,支持网络元素与外部控制器(如瞻博网络的 Mist、瞻博网络的 Routing Director 和 Apstra)之间的作状态同步。

模型驱动遥测

Junos 遥测采用了模型驱动遥测 (MDT) 架构。模型驱动网络遥测系统是一种先进的网络监控方法,可利用数据模型定义并收集来自网络设备的遥测数据。在这个系统中,数据模型是使用 YANG(Yet Another Next Generation)语言定义的,用于指定要收集或流式传输的数据的结构和类型。

瞻博网络目前支持两种不同的数据模型:

  • 瞻博网络原生数据模型

  • OpenConfig 数据模型

两种模型都使用 YANG 来指定要流式传输的数据结构和数据类型,有关更多信息,请参阅 数据模型

选择正确的数据模型取决于具体需求。您可以同时订阅 OpenConfig 和原生传感器。

按照以下步骤设置模型驱动遥测解决方案:

  1. 设置数据收集器:配置网络设备以收集数据并对其进行编码。有关详细信息,请参阅 遥测数据收集器
  2. 建立传输协议:为数据传输选择并配置适当的传输协议。有关详细信息,请参阅 遥测协议
  3. 配置传感器:传感器配置文件定义要监控和流式传输的系统资源的参数。您只能启用一个系统资源来监视每个传感器配置文件,也可以为每个系统资源配置不同的传感器配置文件。但是,您可以配置多个传感器来监视同一系统资源。有关详细信息,请参阅 传感器和传感器路径
  4. 创建订阅:为需要监控的数据流设置订阅。可以在拨入模式或拨出模式下建立遥测会话,具体取决于设备或接收方是否配置为发起订阅。有关详细信息,请参阅 遥测模式

传感器和传感器路径

遥测传感器是遥测解决方案的重要组成部分。它们测量各种物理、环境和性能参数,并将其转换为数据,通过 gNMI 或 UDP 连接传输到收集器,以进行远程监控和分析。例如温度传感器、接口传感器、流量传感器等。遥测传感器路径是数据模型中的特定路由,使用 YANG 定义,用于指定要从网络设备收集和流式传输的确切数据。瞻博网络支持 Openconfig 和原生传感器。Openconfig 传感器跟踪基于计数器或基于状态的指标,而原生传感器可有效地跟踪事件驱动的指标,因为这些传感器可以访问深入的设备数据。您可以配置基于 Openconfig 的传感器路径,以与供应商无关的格式检索传感器信息,也可以配置原生传感器路径,以原生格式检索瞻博网络专有信息。有关更多信息,请参阅 探索传感器路径

遥测数据收集器

遥测收集器是一种专用工具或软件,用于执行遥测数据的数据收集、处理、传输和存储。它是生成遥测数据的 Junos 设备与存储、分析和可视化遥测数据的后端系统之间的中介。

数据收集器的功能:

  • 数据收集:收集器通过 gRPC、gNMI 或 UDP 连接接收来自瞻博网络设备的遥测数据。
  • 数据处理:收集器通过聚合和规范化收集的数据来处理收集的数据,以过滤掉不必要的信息、聚合指标并执行初始分析。这种处理有助于减少数据量并专注于最关键的指标。
  • 数据传输:确保可靠的数据传输和低延迟。
  • 数据存储:然后将处理后的数据导出到各种后端系统,以进行进一步的分析、可视化和存储。可以存储在数据湖中,进行长期分析和历史比较。该收集器支持多种数据格式和协议,使其与不同的监控和分析工具兼容。分析的数据可以通过交互式仪表板和报告呈现,为网络管理员提供可作的见解。

遥测模式

Junos 遥测支持两种模式下的遥测会话:

瞻博网络设备可以在拨入和拨出模式下运行。您可以根据网络拓扑在任一模式下配置瞻博网络设备。两种模式使用相同的数据模型,并通过网络流传输相同的遥测数据。这两种模式之间的区别取决于是收集器还是瞻博网络设备发起并维护连接。

订阅类型

Junos Telemetry 支持多种订阅模式,能够根据特定需求和条件进行定制化的数据收集。订阅模式在设备上配置,并决定数据流的行为。订阅模式的实现取决于您使用的是拨出连接还是拨入连接。流式间隔决定了设备和收集器之间遥测数据传输的频率。当满足某些条件或发生启动遥测数据收集和流的事件时,将触发数据收集和流式传输。这些触发器可确保在满足特定标准时收集数据。例如,当检测到数据包丢失时,可以收集并流传输遥测数据。拨入和拨出遥测都支持以下订阅模式:

  • 一次:这是对遥测数据的一次性请求。当需要订阅数据的当前状态快照时,可以配置此模式。它在拨入和拨出连接中均受支持,但主要用于拨入连接。设备将数据发送到收集器一次,然后停止进行拨出连接。收集器通过具有 ONCE 模式的“订阅”RPC 请求拨入连接。在拨出连接中,必须将传感器和订阅配置为仅触发一次,这种情况并不常见。在拨入连接中,它类似于“获取”RPC,但框架为订阅。
  • 轮询:定期按需检索遥测数据。此配置适用于以特定时间间隔监控传感器。拨入方案支持 POLL,其中收集器启动与设备的 gNMI 服务器的连接。这不是典型的拨出流模式,因为 Junos 遥测流式处理是由设备驱动的。它要求设备运行 gNMI 服务器。收集器使用 POLL 订阅,然后根据需要轮询。
  • :此持续订阅在发生配置触发器时持续流式传输数据。

注意: 并非所有传感器(OpenConfig 或本机)都支持所有模式。

这种订阅形式有三个子模式:

  • ON_CHANGE: 仅当受监控的数据发生变化(例如,接口计数器递增或状态翻转)时,设备才会发送更新。此模式适用于事件驱动的指标,而不是时间驱动的指标。在事件驱动指标的背景下,原生传感器比 Openconfig 传感器更具优势。
  • 样本: 根据配置的时间间隔,定期流式传输遥测更新。此模式适用于随时间推移进行采样的数据包计数或传输的字节数等指标。
  • TARGET_DEFINED:设备根据受监控的传感器或资源决定最佳模式(SAMPLE 或 ON_CHANGE)。除非传感器明确支持ON_CHANGE否则瞻博网络的实施可能默认为 SAMPLE。
    • 注意: 配置路径的TARGET_DEFINED订阅请求仅被视为ON_CHANGE请求。

确定适合您网络的遥测配置

在选择适合您的网络拓扑的遥测传感器、连接方式(拨入或拨出)和订阅模式之前,请考虑以下准则:

  • OpenConfig 传感器和订阅模式 SAMPLE 的组合非常适合标准化的定期监控(例如,多供应商仪表板)。
  • 原生传感器和ON_CHANGE订阅模式的组合适用于特定于瞻博网络和事件驱动的洞察(例如,硬件故障排除)。

要确定适合网络的遥测会话,以下信息总结了拨入和拨出遥测模式之间的比较:

拨入与拨出

  • 拨入(带有 gNMI 的 gRPC)从任一传感器类型(Openconfig 或本机)中提取快照。

    示例:Collector 使用 gNMI over gRPC 来拉取 OpenConfig 统计信息 (/interfaces) 或本机 PFE 统计信息 (/junos/system/linecard

  • 拨出(带有 gNMI 或 UDP 的 gRPC)流式更新,gNMI/gRPC 支持结构,而 UDP 适合原生简单性。

    示例:设备通过 gNMI over gRPC 流式传输 OpenConfig BGP 统计信息,或通过 UDP 上的本机防火墙计数器流式传输 OpenConfig BGP 统计信息。

遥测协议

Junos 遥测支持 gNMI 和 UDP 协议,以收集遥测数据并将其从瞻博网络设备流式传输到数据收集器。

gRPC 网络管理接口 (gNMI)

gNMI 是一种基于 gRPC 的协议,用于配置和监控网络设备。网络运营商可以检索和修改设备配置数据,并订阅来自网络设备的实时遥测数据。gNMI 支持 ONCE、POLL 和 STREAM 等订阅模式,用于遥测更新。gNMI 使用数据编码格式,如协议缓冲区 (protobuf),并使用 TLS 确保安全通信。有关详细信息,请参阅 gNMI 服务使用 gNMI 订阅遥测数据

用户数据报协议 (UDP)

通过 UDP 流式传输遥测数据基于拨出机制。传感器路径通过 CLI 进行配置,设备通过 UDP 将已配置传感器路径的数据发送到收集器的目标地址。目标地址通过 CLI 进行配置。从本地传感器通过 UDP 进行流式遥测时,数据会通过 UDP 以 protobuf 格式发送到收集器。UDP 适用于导出无状态数据。有关详细信息,请参阅 通过 UDP 流式传输遥测数据

数据模型

Junos 遥测数据模型使用 YANG(Yet Another Next Generation)定义从网络设备收集的遥测数据的结构。YANG 是一种基于标准的可扩展数据建模语言,用于 Junos 遥测中,用于定义网络设备的配置、作状态数据和远程过程调用 (RPC)。在 Junos 遥测中,YANG 模型支持配置传感器,以便使用原生或 OpenConfig 数据模型收集和导出遥测数据,例如接口统计数据。YANG 标准在 RFC 6020RFC 7950 中定义。

瞻博网络发布了适用于 Junos 设备的 YANG 模块,这些模块可以从 瞻博网络 GitHub 存储库 下载或在设备上生成。

OpenConfig 工作组定义 OpenConfig 数据模型。它是用于配置和管理网络的供应商中立数据模型。OpenConfig 数据模型以通用的键/值格式将数据生成为 Google Protocol Buffers (GPB) 消息。借助 Junos 遥测技术,您可以利用 OpenConfig 模型更广泛地了解您的网络,而不受供应商限制。Openconfig 传感器路径用于基于 Openconfig 数据模型从传感器中检索传感器信息。有关 Openconfig 资源路径探索的详细信息,请参阅 Junos YANG Data Model Explorer

瞻博网络原生数据模型是瞻博网络开发的开放且可扩展的框架。此模型用于流传输有关瞻博网络设备上的独特功能的遥测数据。其中包括接口统计信息、路由信息、安全指标等。此外,本机模型允许定义企业特定的传感器。要访问来自瞻博网络或企业特定传感器的信息,请订阅瞻博网络原生传感器。原生传感器路径用于基于原生数据模型从传感器中检索传感器信息。瞻博网络用于原生传感器的 YANG 模块可在瞻博网络的 Telemetry GitHub 存储库中找到。

探索传感器路径

遥测传感器路径描述了指向需要监视的数据点或指标的层次结构路径。流式传输所需的传感器数据并激活传感器并识别相关的传感器路径。Junos 遥测支持 Openconfig 传感器路径和原生传感器路径:

  • Openconfig 传感器路径

    要配置从 Openconfig 传感器收集的数据,请定义订阅和传感器路径(例如, /interfaces/interface/state/counters),设置数据收集器,然后从瞻博网络支持页面下载 Junos 遥测协议缓冲区文件。在收集器上捕获并解码捕获的数据。

  • 原生传感器路径

    原生传感器路径特定于 Junos OS(例如 /junos/system/line card/interface/),并提供对设备特定指标的精细、瞻博网络优化访问。

    要配置从本地传感器收集数据,请使用 Junos CLI 配置用于收集特定数据的本地传感器。将 Junos 遥测配置为使用 gRPC 或 UDP 流式传输数据。使用协议缓冲区的文件对收集器上的流数据进行解码。

这两种路径类型都支持以 JSON 或 XML 等格式结构化输出数据,从而确保与外部收集器的兼容性,从而实现高效的监视和分析。

传感器路径浏览器

瞻博网络 Junos YANG 数据模型资源管理器 是一个在线工具,可用于查看所有受支持的资源路径、其对应的分叶以及支持它们的设备平台。它使您能够浏览或比较各种 OpenConfig 和原生数据模型属性。使用基于软件版本号或产品的筛选器选项查看每个平台上的资源路径和传感器列表。

注意: Junos YANG 数据模型资源管理器是在 23.2R2-S2 版本中引入的。从 20.2R1 版到 23.1R1 版, Junos 遥测传感器资源管理器中提供了传感器信息。

选择遥测传感器路径

在模型驱动遥测系统中,传感器路径可以配置为在数据模型的容器层次结构中的任意级别结束。根据所需的遥测信息,您可以将传感器路径配置为检索广泛的数据集,或者非常具体地检索特定传感器的目标信息。例如,传感器路径可能指向包含路由器上所有接口统计信息的容器,或者可以更精细,专注于单个指标,如特定接口上的数据包丢失。

例如,要接收有关设备上生成的告警的遥测数据(使用 OpenConfig 数据模型),您可以根据所需传感器数据的粒度配置以下资源路径之一:

  • /system/alarms/alarm/id:此路径仅检索告警 ID。
  • /system/alarms/alarm/config:此路径检索详细的告警信息。

配置正确的传感器路径可确保遥测系统高效。每个资源路径都启用全局(即系统范围)系统资源的数据流。您可以修改每个资源路径以指定逻辑接口或物理接口。资源路径 “/interfaces/interface/config” 检索全局物理接口级别的可配置项列表,而路径 “/interfaces/interface/config/name” 指定接口的名称,设备可以根据接口类型限制此叶的允许值。

选择传感器路径的重要准则

  • 配置传感器时,您必须始终提供完整且直接的资源路径。提供部分资源路径(如“/components/component/”)会导致配置不完整和潜在错误。此类资源路径可能会给设备带来很大的负载,因为它必须检索并显示该层次结构中的所有可用选项。为防止这种情况,请始终验证并使用完整的资源路径,以确保精确高效的传感器配置。

    注意:不允许在 “ /”(root) 和 “ /junos/” 处创建订阅和传感器配置。
    表 1:传感器路径示例
    完整传感器路径(推荐)、 部分传感器路径(不推荐)
    /interfaces/interface/subinterfaces/subinterface/state/counters/out-pkts /interfaces/interface
  • 逻辑和物理数据包转发引擎接口传感器向收集器报告某些叶子不一致。例如,生成流式路径/junos/system/linecard/interface/logical/ usage/的订阅路径/interfaces/ 115 interface/会报告密钥名称、叶parent_ae_name叶和init_time(叶名称中带有下划线)。生成流式传输路径/ junos/system/linecard/interface/queue/ 的订阅路径/interfaces/interface/state/报告密钥名称、叶叶parent-ae-nameinit\u0002time(叶名称中带有连字符)。

注意:

Junos Evolved 设备的性能通过基于服务的架构进行优化,其中一些进程或守护程序会根据服务配置激活。在配置服务之前,这些进程将保持非活动状态。如果遥测订阅以非活动服务为目标,则不会生成遥测输出。

传感器数据封装格式

Junos 遥测支持以协议缓冲区 (gpb) 格式导出数据的两种方式。本节介绍原生传感器在通过UDP导出遥测数据时使用的数据格式。数据被封装到 UDP 报头中,该报头进一步封装在 IPv4 有效负载中。此遥测模型遵循分布式架构,其中由配置的传感器生成的数据直接从数据平面导出。通过绕过控制平面,此方法有助于为其他关键功能节省控制平面资源。

本地传感器使用 UDP 在靠近源的地方导出数据。可以导出各种类型的遥测数据,例如物理接口统计信息、防火墙过滤器计数器统计信息或标签交换路径 (LSP) 的统计信息。传感器在启用后立即开始发射数据。

传感器数据表示为单个结构化协议缓冲区消息,名为 TelemetryStream。如下所示的消息或.proto 文件包含多个用于标识数据源的属性,例如线卡、数据包转发引擎或路由引擎。配置的传感器的名称也包括在内。有关如何配置传感器的详细信息,请参阅浏览传感器路径。有关受支持的本机传感器列表,请参阅传感器(Junos 遥测接口)。

您还必须将支持的所有传感器的文件下载.proto 到流式处理服务器或收集器。从 Web 浏览器导航到 瞻博网络 页面上的所有 Junos 平台软件下载 URL:https://www.juniper.net/support/downloads/。选择 Junos OS 平台的名称和版本号后,请转到“工具”部分并下载 Junos 遥测接口数据模型文件包。有关配置流式处理服务器的详细信息,请参阅流式处理服务器(Junos 遥测接口)。

本机协议缓冲区 (protobuf) 消息结构

流式传输到收集器的信息是使用 (telemetry_top.proto 文件) 的顶级消息结构TelemetryStream发送的。该消息包含正在流式传输的传感器数据的元数据(例如,传感器路径、从中发送数据的系统、从中发送数据的节点等)。实际的传感器数据将作为顶级消息的扩展发送。为传感器数据发送一个单独的原型文件。telemetry_top.proto 文件和传感器原型文件用于对收集器上的传感器数据进行解码。

telemetry_top.proto 文件的结构

注意:

此文件以 extension 消息结尾。

传感器原型文件的结构

此文件以 extension 消息开头。

TelemetryStream 消息还包括携带不同类型数据的可选嵌套结构。嵌套结构还可以携带专用定义的传感器数据,例如 EnterpriseSensors. 请参阅以下示例:

各个公司(如瞻博网络)会定义并维护企业传感器生成的属性。为每个公司分配一个唯一的属性标识符。目前的惯例是为每个属性使用 IANA 分配的企业 MIB 标识符。对于瞻博网络,此分配的标识符为 2636。

注意:

建议:要验证是否已导出和接收特定消息类型,请检查 gpb 消息中的 TelemetryStream.enterprise.juniperNetworks 这些属性。

有关传感器数据收集的每个元素的描述,包括语义和相应的模式,请参见 表 2

表 2:gpb 消息中的单个数据元素类型

元素类型

描述

计数器

单调递增的无符号整数。当它达到其最大值时,它从零开始。

轨距

一个无符号的 32 位或 64 位整数,其值可以增加或减少。此元素表示的数据的一个示例是特定资源的瞬时值,例如队列深度或温度。

基本指标变化的速率,例如计数器或仪表。对于此元素类型,明确定义了度量单位(如位/秒)以及收集速率的时间间隔。

平均

基本指标的几个样本的平均值。例如, 平均队列深度 数据元素将通过对队列深度的几个元素进行平均来计算。对于此元素类型,强烈建议定义用于计算平均值的测量值数以及测量值之间的时间间隔。否则,应显式定义计算此平均值的方法。

基本指标的多个样本中的最大值。例如,峰值 队列深度 元素将通过比较队列深度的多个测量值并选择最大值来计算。对于此数据元素类型,强烈建议您定义用于计算峰值的测量值数,以及测量之间的时间间隔。否则,请明确定义此峰值的定义方式。您还必须知道此值是否从未被清除,从而表示所有时间内的总体最大值。

注意:

每个数据元素类型还包括元素子集。例如,数据元素 CounterGauge 将包括 、 averagepeak 度量的子集rate

支持的数据类型

当收集器客户端启动 Get RPC 以接收遥测数据时,将发送 GetRequest。在 GetRequest 中指定的是目标应使用的数据元素将数据返回给收集器,包括数据类型。数据类型是指定数据传递形式的变量。

表 3 列出了 Junos 遥测支持的数据类型。除非指定,否则使用远程过程调用 (gRPC) 服务、gRPC 网络管理接口 (gNMI) 服务或通过 UDP 导出 Junos 遥测数据支持数据类型。

表 3:数据类型

类型

价值

描述

字符串

string_val = 1

字符串值。

int64

int_val = 2

整数值。

uint64

uint_val = 3

无符号整数值。

布尔

bool_val = 4

布尔值。

float_val = 6

浮点值。

注意:

此数据类型已弃用。请 double_val 代替此数据类型。

double_val

双精度值是一个 64 位浮点值。

十进制64

decimal_val = 7)

Decimal64 编码值。仅受 gNMI 服务支持。使用 decimal64 对固定精度十进制数进行编码。该值表示为一组数字,精度指定数字集中小数点后面的位数。例如:

message Decimal64 {
  int64 digits = 1;         // Set of digits.
  uint32 precision = 2;     // Number of digits following the decimal point.
注意:

此数据类型已弃用。请 double_val 代替此数据类型。

标量数组

leaflist_val = 8

混合类型标量数组值。混合数据类型值(string、int64、uint64、bool float 或 decimal64)的齐次数组。仅受 gNMI 服务支持。

表 4:Open Config 数据类型
类型 说明
IEEEFLOAT32 二进制,长度 = 4

IEEE 32 位浮点数。这是 Open Config 模型数据类型。

此编号的格式为:

 1-bit  sign
        8-bit  exponent
        23-bit fraction
      The floating point value is calculated using:
        (-1)**S * 2**(Exponent-127) * (1+Fraction)";
注意:与二进制格式等效的 gNMI 数据类型为“byte”。 在 gNMI 响应中,错误地以float_val格式从设备接收数据,并显示不合规错误。已合并更改,以bytes_val格式返回数据。四个字节(表示浮点值)按网络字节顺序发送。确保在解释值之前按主机字节顺序对它们重新排序。

有关数据类型的更多信息,请参阅 githubhttp://www.openconfig.net/

使用 Junos 遥测进行性能监控

Junos 遥测的一个主要功能是性能监控。将数据流式传输到性能管理系统中,使网络管理员能够测量链路和节点利用率的趋势,并实时排除网络拥塞等故障。

在典型的部署中,网络元素或设备将重复数据流式传输到两个充当性能管理系统收集器的目标服务器。将数据流式传输到两个收集器可提供冗余。请参见 图 1 ,了解性能管理系统收集器如何请求数据以及设备如何流传输数据。设备配置传感器,以使用命令行界面 (CLI)、通过 NETCONF 进行的配置或 gRPC 订阅调用来收集和导出数据。收集器通过发起遥测订阅来请求数据。只需请求一次数据,并定期流式传输。

图 1:用于性能管理 Telemetry Streaming for Performance Management的遥测流

从 Junos OS 18.1R1 版开始,可以使用新的传感器,该传感器允许将系统日志数据流式传输到网络遥测收集器系统。 /junos/events/ 使用传感器和 0 reporting-rate 的导出配置文件,您现在可以将事件数据和统计数据流式传输到遥测收集系统。

Junos 遥测的其他应用包括提供实时数据以支持网络元素与外部控制器(如 Northstar 控制器)之间的作状态同步,该控制器可自动创建跨网络的流量工程路径。NorthStar 控制器可以订阅有关某些网络元素的遥测数据,如标签交换路径 (LSP) 统计信息。