了解 Junos 遥测
Junos 遥测是瞻博网络开发的一个框架,支持将操作数据从 Junos 设备导出到外部收集器。分析这些数据以进行实时设备监控。本主题介绍模型驱动遥测、遥测模式、传输协议、遥测传感器、传感器路径和 Junos 遥测使用的数据模型的概念。
网络遥测
网络遥测是从网络设备收集、传输和分析数据的过程。这些数据可以包括有关流量模式、设备状态、错误率以及其他指标的信息,从而洞察网络的运行状况和行为。利用这些数据,您可以获得有用的见解,并应用这些信息来有效地监控和管理网络性能和安全性。网络管理员可以使用遥测数据来排除网络问题、检测异常并优化整个网络的资源利用率。网络遥测的主要优势之一是能够提供对网络运维的实时可见性。
网络遥测在增强网络安全方面也发挥着至关重要的作用。通过分析遥测数据,安全团队可以识别可能预示着网络攻击或其他安全威胁的异常模式,从而更快地检测和响应潜在的安全事件,并有助于保护网络及其数据。
Junos 遥测
Junos遥测是 瞻博网络 为流遥测数据而开发的遥测解决方案。它具有高度的可扩展性,可以支持在网络中远程监控设备。此外,它还有助于改进故障排除、主动管理网络和降低运维成本。
Junos 遥测技术可用于各种网络场景:
- 性能监控: 监控接口利用率、延迟和数据包丢失等关键指标,以确保最佳网络性能。
- 安全性监控: 跟踪安全事件、分析流量模式并识别潜在的安全威胁。
- 应用性能管理: 通过将网络数据与应用数据相关联,深入了解应用性能。
- 网络容量规划: 分析历史和实时数据,识别潜在瓶颈并规划未来的容量需求。
其他瞻博网络应用也利用Junos遥测来提供实时数据,支持网络元素与外部控制器(如 瞻博网络 的 Mist、瞻博网络 的 Routing Director 和 Apstra)之间的操作状态同步。
模型驱动遥测
Junos 遥测采用模型驱动遥测 (MDT) 架构。模型驱动型网络遥测系统是一种先进的网络监控方法,它利用数据模型来定义并收集来自网络设备的遥测数据。在这个系统中,数据模型使用 YANG(另一种下一代)语言来定义,以指定要收集或流式传输的数据的结构和类型。
瞻博网络目前支持以下不同的数据模型:
-
瞻博网络原生数据模型
-
OpenConfig 数据模型
-
Genstate 模型
所有模型都使用 YANG 来指定要流式传输的数据结构和数据类型,更多信息请参见数据模型。
选择正确的数据模型取决于具体需求。您可以同时订阅任何型号的传感器。原生传感器在支持各种用例方面具有优势。
按照以下步骤设置模型驱动的遥测解决方案:
设置瞻博网络设备以流式传输遥测数据:确保瞻博网络设备运行的兼容 Junos OS 版本支持 Junos 遥测,并且瞻博网络设备与收集器之间存在网络连接。
- 设置数据收集器:配置收集器以收集和解码数据。有关详细信息,请参阅 遥测数据收集器。
- 建立传输协议:选择并配置适当的数据传输协议。有关详细信息,请参阅 传输协议。
- 配置传感器:传感器配置文件定义要监控和流式传输的系统资源的参数。您只能启用一个系统资源来监视每个传感器配置文件,或者为每个系统资源配置不同的传感器配置文件。但是,您可以配置多个传感器来监视同一系统资源。有关详细信息,请参阅 传感器和传感器路径。
- 创建订阅:为需要监控的数据流设置订阅。可以在拨入模式或拨出模式下建立遥测会话,具体取决于设备或接收器是否配置为启动订阅。有关详细信息,请参阅 遥测模式。
传感器和传感器路径
遥测传感器是遥测解决方案的重要组件。它们测量各种物理、环境和性能参数,并将其转换为数据,通过 TCP 或 UDP 连接传输到收集器,以进行远程监控和分析。一些例子是温度传感器、接口传感器、流量传感器等。遥测传感器路径是数据模型中使用 YANG 定义的特定路由,用于指定要从网络设备收集和流传输的确切数据。瞻博网络支持 Openconfig、原生和 Genstate 两种型号的传感器。Openconfig 传感器可以跟踪基于计数器或基于状态的指标,而本机传感器可以有效地跟踪事件驱动的指标,因为这些传感器可以访问深入的设备数据。您可以配置基于 Openconfig 的传感器路径以以供应商中立的格式检索传感器信息,也可以配置本机传感器路径以以本机格式检索瞻博网络专有信息。有关详细信息,请参阅 探索传感器路径。
遥测数据收集器
遥测采集器是一种专门的工具或软件,用于执行遥测数据的数据收集、处理、传输和存储遥测数据。它是生成遥测数据的 Junos 设备与存储、分析和可视化数据的后端系统之间的中介。
数据收集器的功能:
- 数据收集:收集器通过 gRPC 或 UDP 连接从瞻博网络设备接收遥测数据。
- 数据处理:收集器通过聚合和规范化来处理收集的数据,以过滤掉不必要的信息、聚合指标并执行初始分析。这种处理有助于减少数据量并专注于最关键的指标。
- 数据传输:确保可靠的数据传输和低延迟。
- 数据存储:然后将处理后的数据导出到各种后端系统,以进行进一步分析、可视化和存储。它可以存储在数据湖中,用于长期分析和历史比较。该收集器支持多种数据格式和协议,使其与不同的监控和分析工具兼容。分析的数据可以通过交互式仪表板和报告显示,为网络管理员提供可操作的见解。
遥测模式
Junos 遥测支持两种模式下的遥测会话:
瞻博网络设备可以在拨入和拨出模式下运行。您可以根据网络拓扑以任一模式配置瞻博网络设备。两种模式使用相同的数据模型,并通过网络流式传输相同的遥测数据。两种模式之间的差异取决于收集器还是瞻博网络设备启动和维护连接。
订阅类型
Junos 遥测支持多种订阅模式,支持根据特定需求和条件收集量身定制的数据。订阅模式使用 CLI 命令在设备上配置,或者根据遥测类型成为订阅请求的一部分。这些模式决定了数据流的行为。流式传输间隔决定了设备和收集器之间遥测数据传输的频率。当满足某些条件或发生启动遥测数据收集和流式处理的事件时,将触发数据收集和流式处理。这些触发器可确保在满足特定标准时收集数据。例如,当检测到数据包丢失时,可以收集和流传输遥测数据。支持以下订阅模式:
- 一次:这是对遥测数据的一次性请求。当需要订阅数据的当前状态快照时,可以配置此订阅类型。设备将遥测数据发送到收集器一次,然后停止。
- 轮询:是遥测数据的定期按需检索。此配置适用于以特定时间间隔监控传感器。在拨入方案中,收集器通过这种类型的订阅订阅遥测数据,然后根据需要轮询信息。
- 流:当配置的触发器发生时,此持续订阅会持续流式传输数据。
注意: 并非所有传感器(OpenConfig 或本机)都支持所有类型的订阅。
订阅模式
Junos 遥测支持以下订阅模式:
- ON_CHANGE: 仅当受监控的数据发生变化(例如,接口计数器递增或状态翻转)时,设备才会发送更新。此模式适用于事件驱动的指标,而不是时间驱动的。
- 图样: 系统会根据配置的时间间隔,定期对遥测更新进行流式传输。此模式适用于随时间推移对数据包计数或传输字节数等指标进行采样。
- TARGET_DEFINED:设备根据监控的传感器或资源决定最佳模式(SAMPLE 或 ON_CHANGE)。瞻博网络的实现可能默认为 SAMPLE,除非传感器明确支持ON_CHANGE。
-
注意:配置路径的TARGET_DEFINED订阅请求仅被视为ON_CHANGE请求。
-
确定适合您的网络的遥测配置
您的网络拓扑和数据需求决定了适当的传感器、订阅类型和订阅模式。例如,将 OpenConfig 传感器与 SAMPLE 订阅模式配合使用,可以实现标准化的定期监控,例如支持多供应商仪表板。如需特定于瞻博网络或事件驱动的洞察(如硬件故障排除),请在ON_CHANGE订阅模式下使用原生传感器。
传输协议
传输协议定义了遥测数据在 Junos 设备和遥测采集器之间传输的方式。
支持以下协议:
-
传输控制协议 (TCP)
-
用户数据报协议 (UDP)
TCP
TCP 是 Junos 遥测支持的主要协议。TCP 具有面向连接、有状态且安全(支持 TLS)的特点,因此能够可靠地传输数据。拨入和拨出遥测模式支持 TCP。它构成了预 gNMI(瞻博网络专有)和 gNMI 等遥测机制的基础层。
| 拨号。 | 拨出 | |
|---|---|---|
| 传输 | TCP | TCP |
| 会议 | HTTP/2 | HTTP/2 |
| RPC 框架 | gRPC | gRPC |
| 遥测 API | gNMI | gNMI |
| 数据模型 |
|
|
要配置遥测和解码遥测消息,请参阅 gNMI 订阅、配置 gRPC 服务、支持的数据类型、瞻博网络 GitHub 存储库和 Protobuf 紧凑消息格式(瞻博网络专有)。
UDP
UDP 是由 Junos 遥测技术支持的轻量级无连接传输协议。拨出遥测模式下支持 UDP。
| 拨号。 | 拨出 | |
|---|---|---|
| 传输 | - | UDP |
| 会议 | - | - |
| RPC 框架 | - | gRPC |
| 遥测 API | - | - |
| 数据模型 | - |
|
在 UDP 遥测中,需要原型文件来解码遥测消息结构。要配置和解码遥测消息,请参阅通过 UDP 流式遥测数据、传感器数据封装格式、支持的数据类型、瞻博网络 GitHub 存储库和 Protobuf 紧凑消息格式(瞻博网络专有)。
数据模型
Junos 遥测数据模型使用 YANG(新一代技术)定义从网络设备收集的遥测数据的结构。YANG 是一种基于标准的可扩展数据建模语言,用于 Junos 遥测,用于定义网络设备的配置、操作状态数据和远程过程调用 (RPC)。在 Junos 遥测中,YANG 模型表示包含传感器的数据模型的结构和详细信息,如接口统计信息。YANG 标准在 RFC 6020 和 RFC 7950 中定义。
瞻博网络发布了适用于 Junos 设备的 YANG 模块,这些模块可从 瞻博网络 GitHub 存储库下载。从 23.4 版开始,配置和遥测 YANG 模型将合并并发布在 瞻博网络 GitHub 存储库中。其中包含配置、RPC 和遥测模型的 YANG 定义。
OpenConfig 工作组定义了 OpenConfig 数据模型。它是一种供应商中立的数据模型,用于配置和管理网络。OpenConfig 数据模型以通用键/值格式将数据生成为 Google Protocol Buffers (GPB) 消息。借助 Junos 遥测技术,您可以利用 OpenConfig 模型获取更广阔且不受供应商限制的网络视图。Openconfig 传感器路径用于根据 Openconfig 数据模型从传感器中检索传感器信息。有关详细的 Openconfig 资源路径探索,请参阅 Junos YANG 数据模型浏览器。
瞻博网络原生数据模型是由瞻博网络开发的开放且可扩展的框架。该模型用于流式传输有关瞻博网络设备上独特功能的遥测数据。其中包括接口统计信息、路由信息、安全指标等。此外,本机模型允许定义特定于企业的传感器。要访问来自瞻博网络或企业专用传感器的信息,请订阅瞻博网络原生传感器。本机传感器路径用于基于本机数据模型从传感器检索传感器信息。有关瞻博网络原生传感器的 YANG 模块,请访问 GitHub 上的瞻博网络 YANG 存储库。
Genstate 模型是根据操作状态数据派生的自动生成的 YANG 模型。genstate YANG 模型通过 gNMI 订阅 RPC 公开 show 命令数据的子集。gNMI 遥测采集器可以订阅已发布模型中定义的资源路径,以获取特定的状态数据。要配置 gNMI 订阅,请参阅 gNMI 订阅。收集器使用genstate模型来发出资源路径查询,以检索特定的操作状态数据。每个根标记对应于一个 genstate 模型(即每个根标记一个 YANG 文件)。
探索传感器路径
遥测传感器路径描述了需要监控的数据点或指标的分层路径。它用于识别、激活和流相关数据。Junos 遥测支持 Openconfig、Genstate 和原生传感器路径:
-
Openconfig 传感器路径
要配置从 Openconfig 传感器收集的数据,请定义订阅和传感器路径(例如,
/interfaces/interface/state/counters),设置数据收集器,然后从瞻博网络支持页面下载 Junos 遥测协议缓冲区文件。在收集器上捕获并解码捕获的数据。 -
原生传感器路径
特定于 Junos OS 的本机传感器路径(例如
/junos/system/line card/interface/),并提供对特定于设备指标的精细化、瞻博网络优化的访问。订阅模式使用 CLI 命令在设备上配置,或者根据遥测类型成为订阅请求的一部分。使用协议缓冲区的文件对收集器上的传感器数据进行解码。
-
Genstate 传感器路径
Genstate 资源路径用于从网络设备检索通过 genstate YANG 数据模型暴露的状态数据。genstate YANG 模型通过 gNMI 订阅 RPC 公开 show 命令数据的子集。genstate 模型资源路径附加
/genstate/.例如,收集器发送以下查询来检索 mpls lsp 名称:genstate:/genstate/mpls-lsp-information/rsvp-session-data/rsvp-session/mpls-lsp/name注意:有关 genstate YANG 模块以及如何发现给定 show 命令的相应模块和可用资源路径的更多信息,请参阅 Junos Genstate YANG 数据模型。
请参阅 Genstate YANG数据模型, 查看支持的show命令和根路径。
所有路径类型都支持以 JSON 或 XML 等格式结构化输出数据,确保与外部收集器的兼容性,以实现高效的监控和分析。
传感器路径浏览器
瞻博网络 Junos YANG 数据模型浏览器 是一个在线工具,用于查看所有受支持的资源路径、它们的相应分叶以及支持它们的设备平台。它使您能够探索或比较各种数据模型属性。使用基于软件版本号或产品的筛选选项查看每个平台上的资源路径和传感器列表。
选择遥测传感器路径
在模型驱动的遥测系统中,可以将传感器路径配置为在数据模型容器层次结构中的任何级别结束。根据所需的遥测信息,您可以配置传感器路径以检索广泛的数据集,也可以非常具体地检索特定传感器的目标信息。例如,传感器路径可能指向包含路由器上所有接口统计信息的容器,也可以更加精细,侧重于单个指标,如特定接口上的数据包丢失。
例如,要接收有关设备上生成的告警的遥测数据(使用 OpenConfig 数据模型),您可以根据所需的传感器数据粒度配置以下任一资源路径:
/system/alarms/alarm/id:此路径仅检索告警 ID。/system/alarms/alarm/config:此路径检索详细告警信息。
配置正确的传感器路径可确保高效的遥测系统。每个资源路径都支持全局(即系统范围)系统资源的数据流。您可以修改每个资源路径以指定逻辑接口或物理接口。资源路径 “/interfaces/interface/config” 在全局物理接口级别检索可配置项列表,而路径 “/interfaces/interface/config/name” 指定接口的名称,设备可能会根据接口类型限制此叶的允许值。
传感器路径的重要准则和命名约定
在大多数情况下,应在配置传感器时提供完整且直接的资源路径。提供部分资源路径(如“/components/component/”)可能会导致配置不完整和潜在错误。此类资源路径可能会给设备带来很大的负载,因为它必须检索和显示该层次结构中的所有可用选项。为防止这种情况发生,请始终验证并使用完整的资源路径,以确保精确和高效的传感器配置。
对系统组件使用分层组件命名约定。这种约定允许使用从根节点开始的完整路径(例如 CHASSIS0:REx 路由引擎和 CHASSIS0:FPCx:PICy:NPUz 网络处理单元 (NPU))来进行精确的组件识别。
下表包含组件名称如何更改的示例:
| 组件类别 |
旧名称 |
新名称 |
|---|---|---|
| 机箱 |
|
|
| 控制板(控制板) |
|
|
| 风扇托架 |
风扇托架,风扇托架 0 |
|
| 风扇 |
风扇托架 0,风扇 0 |
|
| FPC |
|
|
| RE CPU |
|
|
| FPC CPU(逻辑) |
|
|
| FPC CPU(内核) |
|
|
| PIC |
|
|
| 抄送 |
|
|
| NPU |
|
|
| DP |
|
|
| 端口 |
|
|
| XCVR |
|
|
| OCH |
|
|
| 车道 |
|
|
| FPM |
|
|
| 中置背板 |
|
|
| PSM |
|
|
| 路由引擎 (RE) |
|
|
| 联邦贸易委员会 |
|
|
| SIB |
|
|
| RE 引导加载程序 |
|
|
| 回复 BIOS |
|
|
| 2 月 |
|
|
例如,一个完整路径示例 fpc 是 /components/component[name="CHASSIS0:FPC0"]/state/parent : CHASSIS0。
有关组件命名约定的更多信息,请参阅 接口命名
传感器路径示例
| 完整的传感器路径 | 部分传感器路径 |
|---|---|
/interfaces/interface/subinterfaces/subinterface/state/counters/out-pkts |
/interfaces/interface |
/junos/system/linecard/interface/logical/ usage/的订阅路径
/interfaces/interface/报告键名叶
parent_ae_name
init_time 和(叶名称中带有下划线)。生成流式传输路径
/ junos/system/linecard/interface/queue/ 的订阅路径
/interfaces/interface/state/报告键名 leaves
parent-ae-name 和
init-time (在叶名中带有连字符)。
Junos Evolved 设备的性能通过基于服务的架构进行优化,其中某些进程或守护程序会根据服务配置进行激活。在配置服务之前,这些进程将保持非活动状态。如果遥测订阅面向非活动服务,则不会生成遥测输出。
传感器数据封装格式
Junos 遥测支持两种以协议缓冲区 (gpb) 格式导出数据的方法。本部分介绍本机传感器在通过 UDP 导出遥测数据时使用的数据格式。这些数据被封装到 UDP 报头中,然后进一步封装在 IPv4 有效负载中。这种遥测模型遵循分布式架构,其中配置的传感器生成的数据直接从数据平面导出。通过绕过控制平面,此方法有助于为其他关键功能节省控制平面资源。
本机传感器使用 UDP 导出靠近源的数据。可以导出各种类型的遥测数据,例如物理接口统计信息、防火墙过滤器计数器统计信息或标签交换路径 (LSP) 统计信息。传感器在启用后立即开始发射数据。
传感器数据表示为单个结构化协议缓冲区消息,名为 TelemetryStream。消息或.proto 文件(如下所示)包括标识数据源的多个属性,如线卡、数据包转发引擎或路由引擎。还包括配置的传感器的名称。有关如何配置传感器的详细信息,请参阅浏览传感器路径。有关受支持的本机传感器列表,请参阅传感器(Junos 遥测接口)。
还必须下载.proto 流式处理服务器或收集器支持的所有传感器的文件。要下载 OpenConfig 和 YANG 模型文件,请打开 Web 浏览器并导航到 https://www.hpe.com/us/en/networking/hpe-juniper-networking.html,然后单击“支持”以打开 https://support.juniper.net/support/ 的 瞻博网络 支持门户。选择“下载”选项卡,在“键入产品名称”字段中输入产品名称,单击“查找产品”,搜索并选择所需的产品,然后从下拉列表中选择相应的 Junos OS和软件版本。在同一页面上向下滚动,展开 + 工具部分,然后下载所需文件:用于 OpenConfig 模型的 JUNOS 遥测接口数据模型文件和用于 YANG 文件的 YANG 模块。有关配置流式服务器的详细信息,请参阅流式服务器(Junos 遥测接口)。
Protobuf 紧凑消息格式(瞻博网络专用)
流式传输到收集器的信息是使用 (遥测_top.proto 文件) 的TelemetryStream顶级消息结构发送的。该消息包含正在流式传输的传感器数据的元数据 (例如,传感器路径、发送数据的系统、发送数据的节点等) 。实际传感器数据作为顶级消息的扩展发送。为传感器数据发送单独的原型文件。遥测_top.proto文件和传感器proto文件用于对收集器处的传感器数据进行解码。
遥测_top.proto文件的结构
message TelemetryStream {
required string system_id = 1
[(telemetry_options).is_key = true];
optional uint32 component_id = 2
[(telemetry_options).is_key = true];
optional string sensor_name = 4
[(telemetry_options).is_key = true];
….
optional EnterpriseSensors enterprise = 101;
}
message EnterpriseSensors {
extensions 1 to max;
}
extend EnterpriseSensors {
// re-use IANA assigned numbers
optional JuniperNetworksSensors juniperNetworks = 2636;
}
message JuniperNetworksSensors {
extensions 1 to max; → ends with the extension message
}
此文件以消息结 extension 尾。
传感器原型文件的结构
此文件以消息开 extension 头。
extend JuniperNetworksSensors { → begins with the extension message
optional Port jnpr_interface_ext = 3;
}
message Port {
repeated InterfaceInfos interface_stats = 1;
}
message InterfaceInfos {
required string if_name = 1
[(telemetry_options).is_key = true];
optional uint64 init_time = 2;
…..
}
该 TelemetryStream 消息还包括携带不同类型数据的可选嵌套结构。嵌套结构还可以携带私有定义的传感器数据,例如 EnterpriseSensors. 请参见以下示例:
//
// This file defines the top level message used for all Juniper
// Telemetry packets encoded to the protocol buffer format.
// The top level message is TelemetryStream.
//
import "google/protobuf/descriptor.proto";
extend google.protobuf.FieldOptions {
optional TelemetryFieldOptions telemetry_options = 1024;
}
message TelemetryFieldOptions {
optional bool is_key = 1;
optional bool is_timestamp = 2;
optional bool is_counter = 3;
optional bool is_gauge = 4;
}
message TelemetryStream {
// router name or export IP address
required string system_id = 1 [(telemetry_options).is_key = true];
// line card / RE (slot number)
optional uint32 component_id = 2 [(telemetry_options).is_key = true];
// PFE (if applicable)
optional uint32 sub_component_id = 3 [(telemetry_options).is_key = true];
// configured sensor name
optional string sensor_name = 4 [(telemetry_options).is_key = true];
// sequence number, monotonically increasesing for each
// system_id, component_id, sub_component_id + sensor_name.
optional uint32 sequence_number = 5;
// timestamp (milliseconds since 00:00:00 UTC 1/1/1970)
optional uint64 timestamp = 6 [(telemetry_options).is_timestamp = true];
// major version
optional uint32 version_major = 7;
// minor version
optional uint32 version_minor = 8;
optional IETFSensors ietf = 100;
optional EnterpriseSensors enterprise = 101;
}
message IETFSensors {
extensions 1 to max;
}
message EnterpriseSensors {
extensions 1 to max;
}
extend EnterpriseSensors {
// re-use IANA assigned numbers
optional JuniperNetworksSensors juniperNetworks = 2636;
}
message JuniperNetworksSensors {
extensions 1 to max;
}
个别公司(如瞻博网络)会定义并维护企业传感器生成的属性。每家公司都分配了一个唯一的属性标识符。当前约定是对每个属性使用 IANA 分配的企业 MIB 标识符。对于瞻博网络,此分配的标识符为 2636。
建议:要验证是否已导出和接收特定消息类型,请检查 gpb 消息中的这些属性 TelemetryStream.enterprise.juniperNetworks 。
有关传感器数据收集的每个元素的描述,包括语义和相应的模式,请参见 表 5 。
| 元素类型 |
描述 |
|---|---|
| 计数器 |
单调递增的无符号整数。当它达到最大值时,它又从零开始。 |
| 仪表 |
可以增加或减少值的无符号 32 位或 64 位整数。此元素表示的数据的一个示例是特定资源的瞬时值,例如队列深度或温度。 |
| 速率 |
基本指标(如计数器或仪表)变化的速率。对于此元素类型,将明确定义测量单位(例如位/秒)以及收集速率的间隔。 |
| 平均 |
基本指标的多个样本的平均值。例如, 平均队列深度 数据元素将通过对队列深度的多个元素进行平均来计算。对于此元素类型,强烈建议定义用于计算平均值的测量次数以及测量之间的时间间隔。否则,您应该显式定义计算此平均值的方法。 |
| 峰值 |
基本指标的多个样本中的最大值。例如,峰值 队列深度 元素将通过比较队列深度的多个测量值并选择最大值来计算。对于此数据元素类型,强烈建议定义用于计算峰值的测量次数,以及测量之间的时间间隔。否则,请明确定义此峰值的定义方式。您还必须知道此值是否永远不会被清除,从而表示所有时间段内的总体最大值。 |
每个数据元素类型还包括元素子集。例如,数据元素 Counter 和 Gauge 将包括 、 average和 度peak量值的rate子集。
支持的数据类型
当收集器客户端启动 Get RPC 以接收遥测数据时,将发送 GetRequest。在 GetRequest 中指定的是目标应使用的数据元素将数据返回到收集器,包括数据类型。数据类型是指定数据传递形式的变量。
表 6 列出了 Junos 遥测支持的数据类型。除非另有说明,否则使用远程过程调用 (gRPC) 服务、gRPC 网络管理接口 (gNMI) 服务或通过 UDP 导出 Junos 遥测数据支持该数据类型。
| 类型 |
value |
描述 |
|---|---|---|
| 字符串 |
|
字符串值。 |
| INT64 |
|
整数值。 |
| uint64 |
|
无符号整数值。 |
| 布尔值 |
|
布尔值。 |
| 浮点 |
|
浮点值。
注意:
此数据类型已被弃用。Use |
| 双人 |
|
double 值是一个 64 位浮点值。 |
| 十进制 64 |
|
Decimal64 编码值。仅受 gNMI 服务支持。使用 decimal64 对固定精度十进制数进行编码。该值表示为一组数字,其精度指定数字集中小数点后面的位数。例如: message Decimal64 {
int64 digits = 1; // Set of digits.
uint32 precision = 2; // Number of digits following the decimal point.
注意:
此数据类型已被弃用。Use |
| 标量阵列 |
|
混合类型标量数组值。混合数据类型(string、int64、uint64、bool float 或 decimal64)值的同构数组。仅受 gNMI 服务支持。 |
| 类型 | value | 描述 |
|---|---|---|
| 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 数据类型为“字节”。在 gNMI 响应中,错误地从设备接收了float_val格式的数据,并显示了不合规错误。已纳入更改以以bytes_val格式返回数据。这四个字节(表示浮点值)按网络字节顺序发送。在解释值之前,请确保按主机字节顺序对它们重新排序。
|
有关数据类型的详细信息,请参阅 github 和 http://www.openconfig.net/。
使用 Junos 遥测进行性能监控
Junos 遥测的一个主要功能是性能监控。将数据以流方式传输至性能管理系统,使网络管理员可测量链路和节点利用趋势,以及实时诊断网络拥塞等问题。
在典型的部署中,网络元素或设备会将重复数据流式传输到两台目标服务器,这两个服务器充当性能管理系统收集器。将数据流式传输到两个收集器可提供冗余。有关性能管理系统收集器如何请求数据以及设备如何流数据的说明,请参见 图 1 。设备配置传感器,以便使用命令行界面 (CLI)、通过 NETCONF 进行配置或 gRPC 订阅调用来收集和导出数据。收集器通过启动遥测订阅来请求数据。数据仅请求一次,并定期流式传输。
的遥测流
Junos 遥测的其他应用包括提供实时数据,以支持网络元素与外部控制器(如 Northstar 控制器)之间的操作状态同步,该控制器可在网络内自动创建流量工程路径。NorthStar 控制器可以订阅有关某些网络元素的遥测数据,例如标签交换路径 (LSP) 统计信息。