本页内容
了解 Junos 遥测接口上的 OpenConfig 和 gRPC
从 Junos OS 16.1R3 版开始,您可以使用一组远程过程调用 (RPC) 接口配置 Junos 遥测接口,并使用 gRPC 框架流传输遥测数据。OpenConfig 支持使用不受供应商制约的数据模型来配置和管理多供应商网络。gRPC 是一个开源框架,可提供安全可靠的数据传输。
从 Junos OS 16.1R3 版开始,仅在 MX 系列和 PTX 系列路由器上的 MPC 上支持 OpenConfig。
从 Junos OS 17.2R1 版开始,QFX10000 交换机、QFX5200 交换机和 PTX1000 路由器也支持 OpenConfig 和 gRPC。
从 Junos OS 17.3R1 版开始,PTX3000 路由器、QFX5110 交换机以及 EX4600 和 EX9200 交换机的路由控制和板 (RCB) 支持 Junos 遥测接口。 MX80 和 MX104 路由器不支持 OpenConfig 和 gRPC。
从 Junos OS 17.4R1 版开始,支持 MX2008 路由器。
从 Junos OS 18.3R1 版开始,MX 系列和 PTX 系列路由器的 gRPC 支持ON_CHANGE LLDP 遥测传感器信息流。
从 Junos OS 18.3R1 版开始,还支持 QFX5120-48Y 和 EX4650 交换机。
从 Junos OS 18.4R1 版开始,还支持 EX4600 交换机。
从 Junos OS 18.4R1 版开始,MX480、MX960、MX2010、MX2020、MX2008 和 MX-ELM 路由器也受支持。
从 Junos OS 19.1R1 版开始,还支持运行 MS-MIC 和 MS-MPC 的 MX 系列路由器、QFX10002 交换机和 PTX10002 路由器。
从 Junos OS 演化版 19.1R1 开始,支持 OpenConfig (OC) 和 Junos 遥测接口 (JTI)。gRPC API 和面向客户的 CLI 与 Junos OS 相同。作为 Junos OS 的标准,网络代理 (NA) 和 OC 软件包属于 Junos OS 演化版映像。
从 Junos OS Evolved 19.1R1 开始,还支持 PTX10003 路由器上的数据包转发引擎传感器。
从 Junos OS 19.2R1 版、SRX4100、SRX4200、SRX4600、SRX5400、SRX5600、SRX5800 和 vSRX 系列服务网关开始。
从 Junos OS 19.2R1 版开始,MX960、MX2008、MX2010 和 MX2020 路由器、PTX1000 和 PTX10000 路由器以及 QFX5200 交换机支持 gNMI 服务,用于流数据包转发引擎统计信息。
从 Junos OS 19.2R1 版开始,QFX5110、QFX5120、QFX5200 和 QFX5210 交换机支持用于流统计信息的 gNMI 服务。
从 Junos OS 19.3R1 版开始,托管 MPC10E-10C-MRATE 和 MPC10E-15C-MRATE 线卡的 MX 系列路由器支持用于导出统计信息的 gRPC 服务。
从 Junos OS 演化版 19.3R1 开始,QFX5220-128C 和 QFX5220-32CD 交换机支持用于导出统计信息的 gRPC 服务。
从 Junos 19.4R1 版开始,EX4300-MP 交换机支持用于流数据包转发引擎和路由引擎统计信息的 gRPC 服务。
Junos OS Evolved 19.4R1 版记录了对 PTX10008 路由器的 JTI 支持,但不支持。
从 Junos 20.R1 版开始,MX2010 和 MX2020 路由器上的 MX2K-MPC11E 线卡支持用于数据包转发引擎统计信息的流遥测传感器的 gNMI 服务。
从 Junos OS 20.1R1 版开始,JTI 支持 gRPC 服务版本 v1.18.0。此版本包括 gRPC 的重要增强功能。在早期 Junos OS 版本中,JTI 支持 gRPC 版本 v1.3.0。
从 Junos OS 演化版 20.2R1 开始,PTX10001 路由器支持用于流 NDP 统计信息的 gRPC 服务。
从 Junos OS 20.2R1 版开始,EX2300、EX2300 和 EX3400 交换机支持用于流数据包转发引擎和路由引擎统计信息的 gRPC 服务。
从 Junos OS 20.2R1 版开始,支持容器化路由协议进程 (cRPD) 的任何平台系列均支持用于流 BGP 路由信息库 (RIB) 和 BGP 对等统计信息的 gRPC 服务。cRPD 是瞻博网络的路由协议进程 (rpd) 与 Junos OS 分离后打包为 Docker 容器,可在基于 Linux 的环境中运行。
从 Junos OS 20.2R1 版开始,MX960、MX2008、MX2010、MX2020、PTX1000、PTX5000、PTX1000、PTX10000、PTX10000 路由器以及 QFX5100 和 QFX5200 交换机支持使用 gRPC 服务和 gNMI 服务ON_CHANGE BGP 对等统计数据导出。
从 Junos OS 20.2R1 版开始,EX2300、EX3400、EX4300、EX4600 和 EX9200 交换机支持使用 gRPC 服务的流式传输 BGP 全局、对等方和 perr 组统计信息。
从 Junos OS 20.2R1 版开始,SRX5400、SRX5600 和 SRX5800 服务网关支持通过数据包转发引擎传感器的流式收入接口统计信息,以及使用 gRPC 服务和 gNMI 服务的路由引擎传感器实现的流式收入接口统计信息。
从 Junos OS 20.2R1 版开始,SRX5400、SRX5600 和 SRX5800 服务网关支持通过数据包转发引擎传感器的流收入接口统计信息,以及使用 gRPC 服务和 gNMI 服务的路由引擎传感器进行流式收入接口统计信息。
MX480、MX960、MX10003、MX2010 和 MX2020 路由器支持从 Junos OS 20.2R1 版开始,以流式传输备用路由引擎统计信息。
从 Junos OS 20.2R1 传感器开始,QFX5100、QFX5110、QFX5120、QFX5200、QFX10002-60C、QFX10002、QFX10008 和 QFX10016 交换机支持。
网络代理软件
如果您的瞻博网络设备正在运行具有升级版 FreeBSD 的 Junos OS 版本,则通过 gRPC for Junos 遥测接口实施 OpenConfig 时,您需要下载并安装一个称为网络代理的软件包。对于所有其他版本的 Junos OS,软件中嵌入了网络代理功能。网络代理充当 gRPC 服务器并终止 OpenConfig RPC 接口。它还负责根据 OpenConfig 规范流传输遥测数据。要查看遥测的 OpenConfig 规格,请参阅 OpenConfig 遥测规格。有关适用于 Junos OS 的 OpenConfig 的更多信息,请参阅 OpenConfig 用户指南。
网络代理组件还支持基于服务器的安全套接字层 (SSL) 身份验证。不支持基于客户端的 SSL 身份验证。您必须在瞻博网络设备上安装 SSL 证书。
有关安装网络代理软件包的信息,请参阅 安装网络代理软件包。
使用适用于 Junos OS 的 OpenConfig 启用 Junos 遥测接口
Junos OS 的 OpenConfig 指定用于启用 Junos 遥测接口的 RPC 模型。您必须在瞻博网络设备上下载并安装适用于 Junos OS 的 OpenConfig 软件包此软件包还包括必需的 YANG 型号。使用 Web 浏览器,在瞻博网络网页:https://www.juniper.net/support/downloads/ 上导航至所有 Junos 平台软件下载 URL 。 从 “网络管理 ”选项卡中,向下滚动以选择 OpenConfig。选择 “软件 ”选项卡。选择相应版本的 OpenConfig 模块。共有两个版本,一个版本适用于运行具有升级版 FreeBSD 的 Junos OS 的设备,另一个版本适用于运行所有其他 Junos OS 版本的设备。有关更多信息,请参阅 安装 OpenConfig 软件包 和 了解 Junos OS YANG 模块。
由网络代理软件包安装的编程接口 OpenConfigTelemetry
定义遥测 gRPC 服务。RPC 指定 telemetrySubscribe
以下订阅参数:
OpenConfig 路径,用于识别要流传输遥测数据的系统资源,例如:
/interfaces/interface/state/counters/
报告数据并将其流式传输至收集器服务器的间隔(以毫秒为单位),例如:
sample_frequency = 4000
telemetrySubscribe
流服务器或收集器使用 RPC 请求指定路径上数据的内联订阅。然后,设备应该在与订阅请求相同的连接上发送遥测数据。
GitHub 资源
GitHub 是用于版本控制和协作的代码托管平台。您可以借助它与其他人随时随地协同工作,共同处理项目。瞻博网络是 OpenConfig 社区的一员,使用 GitHub 开发遥测代码和存储文档。通过在 GitHub 上创建帐户,为瞻博网络遥测开发做出贡献。
遥测资源 |
描述 |
---|---|
瞻博网络遥测模型、增强和偏差。 |
|
瞻博网络协议缓冲区文件,由 Junos OS 版本组织。 |
|
瞻博网络 gNMI 协议缓冲区文件,按 Junos OS 版本组织。 |
使用 gRPC 传输数据
根据 OpenConfig 规范,流数据仅支持基于 gRPC 的传输。由网络代理软件包安装的 gRPC 服务器将从运行客户端的管理系统终止 gRPC 会话。RPC 调用会触发 Junos OS 传感器的创建,传感器可以定期传输数据或报告事件,然后网络代理将这些传感器分流到相应的 gRPC 通道。
从 Junos OS 18.2R1 版开始,当外部流服务器或收集器配置传感器以在运行 Junos OS 的设备上通过 gRPC 导出数据时,传感器配置会提交到 junos-analytics
瞬时配置数据库实例中,并且可以使用操作命令查看 show ephemeral-configuration instance junos-analytics
配置。在早期版本中,传感器配置将提交到临时配置数据库的默认实例中。
作为更新的一部分导出的瞻博网络遥测报头现在导出为扩展标头。GnmiJuniperTelemetryHeadyHeadyEr.proto 用于对运行 Junos OS 19.3 或更低版本的瞻博网络设备的更新进行解码,GnmiJuniperTelemetryHeaderExtension.proto 用于运行 Junos OS 19.4 或更高版本的设备。
有关为支持 Junos 遥测接口而实施的 RPC 列表和说明,请参阅 表 2 。
RPC 名称 |
描述 |
---|---|
|
为指定的 OpenConfig 路径列表指定遥测参数和流数据。 |
|
检索通过 |
|
取消订阅通过 |
通过 gRPC 传输的数据以协议缓冲区 (gpb) 消息中的 OpenConfig 键/值对格式化。在这种通用格式下,密钥是与受监控设备的 OpenConfig 模式中系统资源路径对应的字符串。这些值对应于用于标识系统资源(如接口计数器)和资源状态的整数或字符串。
从 Junos OS 18.2R1 版开始,除了基于 OpenConfig 的路由引擎 (RE) 传感器的键/值对外,还可以通过 gRPC 传输的数据格式化为 protobuf。这些传感器是数据包转发引擎 (PFE) 传感器的补充。
下面显示了通用键/值格式:
message KeyValue { string key = 1 [(telemetry_options).is_key = true]; uint64 int_value = 2; string str_value = 3; string prefix_str = 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]; // timestamp (common to all entries in the kv array) optional uint64 timestamp = 4 [(telemetry_options).is_timestamp = true]; // key / value pairs repeated KeyValue kv; }
以下示例说明了如何表示接口的一组计数器:
key = “/interfaces/counters/rx-bytes”, int_value = 1000 key = “/interfaces/counters/tx-bytes”, int_value = 2000 key = “/interfaces/counters/rx-packets”, int_value = 10 key = “/interfaces/counters/rx-bytes” , int_value = 20 key = “/interfaces/counters/oper-state”, str_value = “up”
网络代理软件包提供一个映射表,用于将字段名称映射到 OpenConfig 密钥字符串。
导出数据包转发引擎流量传感器数据
从 Junos OS 17.4R1 版开始,您可以通过 MX 系列和 PTX 系列路由器的 Junos 遥测接口导出数据包转发引擎流量统计信息。同时支持 UDP 和 gRPC。
此传感器跟踪数据包转发引擎统计信息计数器的报告,并提供对数据包转发引擎错误和丢弃统计信息的可见性。传感器的资源名称为 /junos/system/linecard/packet/usage/
。OpenConfig 路径报告特定于 CPU、NPU 和中心芯片 (CC) 的数据。支持以下路径:
/components/component[name='FPCid:NPUid']/properties/property[name='counter']/state/value
,其中 FPC 指灵活 PIC 集中器,NPU 指网络处理单元(数据包转发引擎)。示例资源路径是/components/component[name='FPC0:NPU3']/properties/property[name='ts-output-pps']/state/value
计数器Hardware Discards: Data Error
所在的位置hwds-data-error
。/components/component[name='FPCid:CCid’]/properties/property[name='counter’]/state/value
,其中 FPC 指灵活 PIC 集中器,CC 指中心芯片。示例资源路径是/components/component[name='FPC0:CC1']/properties/property[name='lpbk-packets’']/state/value
lpbk-packets
FPC0(中心芯片 1)特有的计数Forward packets
。/components/component[name='FPCid’]/properties/property[name='counter’]/state/value
,其中 FPC 是指灵活的 PIC 集中器。示例资源路径是/components/component[name='FPC0']/properties/property[name='lts-input-packets’']/state/value
CPU 计数器Local packets input
所在的位置lts-input-packets
。
要配置传感器以通过 gRPC 导出数据,请使用 telemetrySubcribe
RPC 指定遥测参数。对于通过 UDP 进行流传输,所有参数均在 [edit services analytics]
层次结构级别配置。
以下是命令或show pfe statistics traffic detail
命令中输出字段的show pfe statistics traffic
计数器映射(仅在 MX 系列路由器上受支持)。
CPU stats: (FPCX:CPUY) Packet Forwarding Engine local traffic statistics: Local packets input : 2 Local packets output : 1 Software input control plane drops : 0 Software input high drops : 0 Software input medium drops : 0 Software input low drops : 0 Software output drops : 0 Hardware input drops : 0 Counter lts-input-packets Local packets input lts-output-packets Local packets output lts-sw-input-control-drops Software input control plane drops lts-sw-input-high-drops Software input high drops lts-sw-input-medium-drops Software input medium drops lts-sw-input-low-drops Software input low drops lts-sw-output-low-drops Software output drops NPU stats: (FPCX:CCY) Input packets: 1169 0 pps Output packets: 0 0 pps Fabric Input : 277235149 16078 pps Fabric Output : 277235149 16079 pps Counter ts-input-packets Input packets ts-input-packets-pps Input packets in pps ts-output-packets Output packets ts-output-packets-pps Output packets in pps ts-fabric-input-packets Fabric Input ts-fabric-input-packets-pps Fabric Input in pps ts-fabric-output-packets Fabric Output ts-fabric-output-packets-pps Fabric Output in pps Packet Forwarding Engine loopback statistics: Forward packets : 0 0 pps Forward bytes : 0 0 bps Drop packets : 0 0 pps Drop bytes : 0 0 bps Counter lpbk-packets Forward packets lpbk-packets-pps Forward packets pps lpbk-packets-byte Forward bytes lpbk-packets-bps Forward bytes bps lpbk-drop-packets Drop packets lpbk-drop-packets Drop packets pps lpbk-drop-packets Drop bytes lpbk-drop-packets Drop bytes bps Lu chips stats: FPCx:NPUY Counter lts-hw-input-drops hwds-normal Hardware discards normal discard hwds-fabric Hardware discards fabric drops hwds-info-cell Hardware discards info cell drops hwds-timeout Hardware discards timeour hwds-truncated-key Hardware discards truncated key hwds-bits-to-test Hardware discards bits to test hwds-stack-underflow Hardware discards stack underflow hwds-stack-overflow Hardware discards stack overflow hwds-data-error Hardware discards data error hwds-extended Hardware discards extended discard hwds-invalid-iif Hardware discards invalid interface hwds-input-checksum Hardware discards input checksum hwds-output-mtu hwds-inet-bad-route hwds-inet6-bad-route hwds-filter-discard hwds-dlu-not-routable
为 MX 系列路由器上的基于 AFT 的线卡提供遥测数据
从 Junos OS 20.4R1 版开始,为支持抽象转发表 (AFT) 的模块化端口集中器 (MPC) 线卡(如 MPC10E 或 MPC11E 线卡)实现了新的遥测前缀和密钥交付串联。与其他线卡上的语法不同,OpenConfig 路径的拆分方式不同。
随后的输出说明了前缀和密钥交付中的更改。
Example jtimon output for a port on non-AFT LC key: __prefix__ str_value: /junos/firewall[name='CORERO-MITIGATE-xe-1/0/0.4051-i']/state/ key: counter[name='Corero-Allowed-xe-1/0/0.4051-i']/packets uint_value: 2935220 <<RESULT>> path: /junos/firewall[name='CORERO-MITIGATE-xe-1/0/0.4051-i']/state/counter[name='Corero-Allowed-xe-1/0/0.4051-i']/packets uint_value: 2935220 Example jtimon output for a port on an AFT LC key: __prefix__ str_value: /junos/firewall[name='CORERO-MITIGATE-et-2/0/0.114-i']/state/counter[name='Corero-Allowed-et-2/0/0.114-i']/ key: packets uint_value: 29191907 <<RESULT>> path: /junos/firewall[name='CORERO-MITIGATE-et-2/0/0.114-i']/state/counter[name='Corero-Allowed-et-2/0/0.114-i']/packets uint_value: 29191907
通过 gNMI 启用“ON CHANGE”传感器支持
自 Junos OS 16.1 版以来,一直支持定期流传输 OpenConfig 操作状态和计数器,可将遥测数据从瞻博网络设备导出到外部收集器。虽然在收集所有必要信息并创建基准“快照”方面很有用,但定期流对于时间关键型任务则不太有用。在这种情况下,您可以将外部收集器ON_CHANGE流配置为仅在操作状态发生变化时接收信息。
为了支持ON_CHANGE流传输,我们实施了一种称为 gRPC 网络管理接口 (gNMI) 的新规范,用于从网络元素修改和检索配置。此外,gNMI 规格可用于生成和控制从网络元素到数据收集系统的遥测流。使用新的 gNMI 规范,一个 gRPC 服务定义可以在网络元素上提供用于配置和遥测的单一实施,以及单个 NMS 元素,以便通过遥测和配置 RPC 与设备交互。
Junos 文件包(junos-遥测-接口)包括 gnmi.proto 文件和 GnmiJuniperTelemetryHeader.proto Juniper 扩展,支持 gNMI。
有关支持此功能的 RPC 的信息,可以在 gNMI Proto 文件版本 0.4.0(受支持的版本)和发布的规格中找到
https://github.com/openconfig/reference/blob/primary/rpc/gnmi/gnmi-specification.md
https://github.com/openconfig/gnmi/blob/primary/proto/gnmi/gnmi.proto
gNMI 服务下的遥测 RPC subscribe
支持ON_CHANGE流传输。RPC subscribe
允许客户端请求目标向数据树中发送特定路径的值。值可以是流式传输 (STREAM)、在长期通道 (POLL) 上一次性发送,也可以作为检索一次性发送 (一次)。
如果针对示例频率为 0 的顶级容器订阅,则包含ON_CHANGE支持的枝叶将根据事件进行流式传输。其他分叶不会进行流式传输。
为了允许设备决定将哪些节点作为流式传输ON_CHANGE以及哪个节点将取样,收集器必须订阅具有sample_interval的TARGET_DEFINED。
通过 gNMI 启用“TARGET_DEFINED”订阅模式
从 Junos OS 20.2R1 版开始,MX5 上的 JTI 支持具有 gRPC 网络管理接口 (gNMI) 服务的TARGET_DEFINED订阅模式 MX10、MX40、MX80、MX104、MX150、MX204、MX240、MX480、MX960、MX2008、MX2010、MX2020、MX10003、MX10008 和 MX10016 路由器。
外部收集器使用 gNMI 订阅规定应如何提供传感器数据:
流模式以指定间隔定期流式传输来自 DUT 的传感器数据。
仅当数据值发生变化时,ON_CHANGE模式才会从 DUT 发送传感器数据更新。
新支持的TARGET_DEFINED模式(子模 0)指示 DUT 选择相关模式(流或ON_CHANGE),将传感器数据的每个元素(叶)传递到外部收集器。当具有子模 0 的传感器订阅从外部收集器发送到 DUT 时,DUT 会响应,激活传感器订阅,以便定期流传输不包含任何ON_CHANGE更新。但是,只要发生符合资格ON_CHANGE事件,DUT 就会通知收集器。
订阅默认为定期流式传输频率为 30 秒,除非订阅请求中的收集器另有指定。
下面的 Java Script 对象通知 (JSON) 文件显示了一个示例 gNMI 订阅。TARGET_DEFINED模式为 submode=0
资源(传感器)路径 /接口/接口[name='lo0']/状态设置。
$ cat gnmi.json { "dut_list":[ { "port":50051, "rpc":["sub_request"], "sub_request":{ "subscription":[ { "path":"/interfaces/interface[name='lo0']/state", "submode":0, "sample_interval":30 } ], "mode":0, "encoding":2 } } ] $ python ./gnmi_subscribe_client_sample.py -c ./gnmi.json -d 10.53.32.102 -l client.log
Junos 文件包(junos-遥测-接口)包括 gnmi.proto 文件和 GnmiJuniperTelemetryHeader.proto Juniper 扩展,支持 gNMI。
有关更多信息,请参阅此处的 gNMI 规格和 gNMI 协议文件:
通过 gNMI 启用“INITIAL_SYNC”订阅模式
从 Junos OS 20.2R1 版开始,支持在 MX960、MX2008、MX2010、MX2020、PTX1000、PTX5000 路由器、PTX10000 系列路由器以及 QFX5100 和 QFX5200 交换机上使用 gNMI 服务,从数据包转发引擎传感器中INITIAL_SYNC统计信息。
从 Junos OS 演化版 20.4R1 开始,支持从 QFX5130-32CD 交换机上使用 gNMI 服务从数据包转发引擎传感器中INITIAL_SYNC统计信息。
当外部收集器针对具有INITIAL_SYNC(gnmi 子模 2)的传感器发送订阅请求时,主机将至少一次该资源路径下支持的目标叶(字段)发送至具有当前值的收集器。这一点十分宝贵,因为:
收集器可全面查看设备上该传感器路径上每个字段的当前状态。
在看到下一个事件之前,收集器会至少接收一次事件驱动型数据 (ON_CHANGE)。这样,收集器即可在下一个事件发生之前识别数据状态。
发送包含通常不会显示在流数据中的零计数器值(抑制零)的数据包转发引擎传感器,确保收集器能够知道每个线卡(也称为源)中的所有字段。
INITIAL_SYNC子模需要至少一个副本发送至收集器;但是,发送多个是可以接受的。
订阅默认为定期流式传输频率为 30 秒,除非订阅请求中的收集器另有指定。
下面的 Java Script 对象通知 (JSON) 文件显示了一个示例 gNMI 订阅。为资源(传感器)路径/接口/设置gnmi_submode 2
INITIAL_SYNC模式。0
设置为gnmi_mode
。协议编码设置为 2
GBP。
{ "influx": { "server": "server1", "port": 8086, "dbname": "gD40", "measurement": "OC", "user": "influx", "password": "influxdb", "recreate": true }, "gnmi": { "mode": 0, <---- STREAM "encoding": 2, <--- PROTO encoding "prefix": "/x/y/z" }, "host": "10.10.130.73", "port": 10162, "user": "user1", "password": "password1", "cid": "cid-1jk", "paths":[ { "path": "/interfaces/", "Freq": 10000000000, "gnmi_submode": 2 <---- SAMPLE } ] }
Junos 文件包(junos-遥测-接口)包括 gnmi.proto 文件和 GnmiJuniperTelemetryHeader.proto Juniper 扩展,支持 gNMI。
有关更多信息,请参阅此处的 gNMI 规格和 gNMI 协议文件:
gNMI 遥测规范 gNMI 协议定义
https://github.com/openconfig/reference/blob/primary/rpc/gnmi/gnmi-specification.md#35152-stream-subscriptions
https://github.com/openconfig/gnmi/blob/primary/proto/gnmi/gnmi.proto
启用客户端流式处理和双向遥测传感器信息流
从 Junos OS 18.1R1 版开始,OpenConfig 通过远程过程调用 (gRPC) 和 JTI 的支持得到了扩展,可支持 MX 系列和 PTX 系列路由器上遥测传感器信息的客户端流式传输和双向流。
API 基于 OpenConfig 的 Protobuf 规范在 Junos 中实现。这些 API 使用 gRPC 作为传输机制在 Junos 路由器上执行配置、操作状态检索和遥测。
借助客户端流式处理,客户端向服务器发送一个请求流,而不是一个请求。服务器通常回发一个响应,其中包含状态详细信息和可选的尾随元数据。借助双向流传输,客户端和服务器均可发送请求和响应流。客户端通过调用 RPC 开始操作,服务器接收客户端元数据、方法名称和最后期限。服务器可以选择发送回其初始元数据或等待客户端开始发送请求。客户端和服务器可以任意顺序读写。这些流完全独立运行。
Junos 设备可以通过 API (RPC) 原型进行管理:
rpc 功能(能力Request)
返回(能力响应)。允许客户端检索目标支持的功能集。
rpc 获取 (GetRequest)
返回 (GetResponse)。检索目标数据快照。
rpc 集(SetRequest)
返回(SetResponse)。允许客户端修改目标上的数据状态。
rpc 订阅(流订阅申请)
返回(流订阅回复)。允许客户端请求目标发送数据树中特定路径的 IT 值。这些值可以流式传输 (STREAM)或在长寿命通道 (POLL) 上一次性发送,或者作为一次性检索(一次)发送。如果针对示例频率为 0 的顶级容器订阅,则包含ON_CHANGE支持的枝叶将根据事件进行流式传输。其他分叶不会进行流式传输。
瞻博网络扩展工具包 (JET) 支持可为用户提供有关连接到 JSD 的客户端状态的洞察。JET 对 gRPC 的支持包括将可连接到 JSD 的最大客户端数从 8 个增加到 30 个(默认保留 5 个)。要指定最大连接数,请在 max-connections
[edit system services extension-service request-response grpc
] 层次结构级别包含语句。
要提供有关连接到 JSD 的客户端的状态的信息,请发出增强的 show extension-service client information
命令并 clients
包括一个或多个 servers
选项。选项 clients
显示请求响应客户端信息。选项 servers
显示请求响应服务器信息。
为 SR-TE 策略(BGP 或静态)启用遥测传感器信息流
从 Junos OS 18.3R1 版开始,OpenConfig 通过 gRPC 和 JTI 对 MX 系列和 PTX 系列的支持通过 gRPC 和 JTI 提供连续统计数据流,无论给定分段路由流量工程 (SR-TE) 策略的路由是活动(BGP 还是静态)的。
Junos OS 演化版 21.4R1EVO 支持 PTX10001-36MR、PTX10004、PTX10008 和 PTX10016 路由器。
此功能支持 BGP [DRAFT-SRTE] 并在入口路由器上静态配置 SR-TE 策略。
要配置传感器以通过 gRPC 流导出数据,请使用遥测订阅 RPC 指定遥测参数。包括资源路径 /mpls/signaling-protocols/segment-routing/
以导出这些统计信息。
除了配置传感器外,还必须通过 Junos OS 启用统计信息收集。为此,请将statistics
配置语句包含在 [edit protocols source-packet-routing telemetry
] 层次结构级别。或者,您也可以通过包含或no-ingress
参数来no-transit
限制统计信息。
有关配置传感器的说明,请参阅 在 Junos 中配置 NETCONF 代理遥测 传感器。
有关资源路径的更多信息 ,请参阅 gRPC 和 gNMI 传感器准则(Junos 遥测接口 )。
支持 LSP 统计信息
您可以调配 LSP 统计信息传感器 /junos/services/label-switched-path/usage/ 以监控 per-MPLS LSP 统计信息。遥测数据从 Junos 设备流式传输,并通过 JTI 以可配置的间隔通过 gRPC 导出到外部收集器,而无需轮询。
仅在订阅 / junos/services/label-switched-path/usage/ 时,在 Junos OS 15.1F6 版中首次支持此功能。在 Junos OS 17.4R1 版中的此功能中添加了旁路支持后,此订阅现在同时将入口 LSP 和绕过 LSP 统计信息流式传输至收集器。
流式传输的统计信息类似于操作模式命令 show mpls lsp bypass statistics
和 show mpls lsp ingress statistics
显示的输出。
对于绕过 LSP,将导出以下内容:
绕过来自受保护 LSP 入口路由器的 LSP。
绕过来自受保护 LSP 的传输路由器的 LSP。
绕过 LSP,保护传输 LSP 以及本地发起的 LSP。
当旁路 LSP 处于活动状态时,流量将同时导出在旁路 LSP 和入口(受保护)LSP 上。
要配置传感器以通过 gRPC 导出数据,请使用遥测订阅 RPC 指定遥测参数。通过 gRPC 传输遥测数据还需要 Junos OS 的 OpenConfig 模块。默认情况下,OpenConfig 和网络代理软件包都捆绑在 Junos OS 映像中。
有关配置 UDP(本机)传感器的信息,请参阅配置 Junos 遥测接口传感器(CLI 过程 )。
有关各平台对 LSP 传感器的支持级别,请参阅 表 3 。
平台 |
入口 LSP、UDP 引入的功能 |
入口 LSP、gRPC 流 引入的功能 |
绕过 LSP 引入的功能 |
---|---|---|---|
ACX6360 |
|
|
Junos 19.2R1 源自传输节点的 RSVP 旁路 LSP |
MX80/MX104 |
Junos OS 15.1F6 版 Junos OS 16.1R3 版 Junos OS 17.2R1 版 |
|
Junos OS 17.4R1 版 Junos OS 17.2X75D50+ 版 |
带 MPC 的 MX 系列 |
Junos OS 15.1F6 版 |
Junos OS 16.1R4 版 Junos OS 17.2R1 版 |
Junos OS 17.4R1 版 Junos OS 17.2X75D50+ 版 |
带 FPC3 的 PTX5000 |
|
Junos OS 18.2R1 版 |
Junos OS 17.4R1 版 |
带 FPC3 的 PTX3000 |
Junos OS 15.1F6 版 Junos OS 16.1R3 版 Junos OS 17.2R1 版 |
Junos OS 16.1R4 版 Junos OS 17.2R1 版 Junos OS 18.2R1 版 |
Junos OS 17.4R1 版 Junos OS 17.2X75D50+ 版 |
带 FPC1/2 的 PTX 系列 |
Junos OS 15.1F6 版 Junos OS 16.1R3 版 Junos OS 17.2R1 版 |
Junos OS 16.1R4 版 Junos OS 17.2R1 版 Junos OS 18.2R1 版 |
Junos OS 17.4R1 版 Junos OS 17.2X75D50+ 版 |
PTX1000 |
Junos OS 16.1R3 版 |
Junos OS 16.1R4 版 Junos OS 17.2R1 版 |
Junos OS 17.4R1 版 Junos OS 17.2X75D50+ 版 |
PTX10000 |
Junos OS 17.3R1 版 |
Junos OS 17.3R1 版 |
Junos OS 17.4R1 版 Junos OS 17.2X75D50+ 版 |
PTX10001-20C |
|
Junos OS 19.1R1 版 源自传输节点的 RSVP 旁路 LSP |
|
PTX10002 |
Junos OS 19.1R1 版 |
Junos OS 19.1R1 版 |
|
VMX |
Junos OS 17.3R1 版 |
Junos OS 17.3R1 版 |
Junos OS 17.4R1 版 Junos OS 17.2X75D50+ 版 |
MX150 |
Junos OS 17.4R1 版 |
Junos OS 17.4R1 版 |
|
EX4600 |
Junos OS 18.4R1 版 |
|
|
EX4650 |
Junos OS 18.3R1 版 |
Junos OS 18.3R1 版 |
|
EX9200 |
Junos OS 17.3R1 版 |
|
|
QFX10000 |
|
|
|
QFX5200 |
Junos OS 17.2R1 版 |
Junos OS 17.2R1 版 |
|
QFX10002 |
Junos OS 19.1R1 版 |
Junos OS 19.1R1 版 |
|
QFX5100 |
Junos OS 18.2R1 版 |
Junos OS 18.2R1 版 |
|
QFX5110 |
Junos OS 18.2R1 版 |
Junos OS 18.2R1 版 |
|
QFX5120-48Y |
Junos OS 18.3R1 版 |
Junos OS 18.3R1 版 |
|
QFX5200 |
Junos OS 18.2R1 版 |
Junos OS 18.2R1 版 |
|
动态隧道统计支持
从 Junos OS 17.4R1 版开始,您可以使用本机 (UDP) 或 OpenConfig 遥测传感器(通过 JTI)将数据包转发引擎动态隧道的计数器统计信息导出到外部收集器。
统计数据用于以可扩展且高效的方式报告各种网络元素性能指标,从而提供对数据包转发引擎错误和丢弃的可见性。
所有导出的数据中都会包含一个时间戳,指示计数器上次重置的时间,以便收集器确定是否以及何时发生了重置事件:例如,如果 P acket 转发引擎硬件重新启动。
导出的统计信息类似于操作模式命令 show nhdb hw dynamic-ip-tunnels
的输出。
要通过 gRPC 配置统计信息导出,请使用遥测Subcribe RPC 创建订阅并指定遥测参数。在订阅中包含资源路径 /junos/services/ip-tunnel[name='tunnel-name']/usage/counters[name='counter-name']/ 。
通过 gRPC 传输遥测数据还需要 Junos OS 的 OpenConfig 模块。从 Junos OS 18.3R1 版开始,OpenConfig 和网络代理包默认捆绑到 Junos OS 映像中。两个软件包都支持 JTI。
要通过 UDP 配置统计信息导出,请将传感器/junos/services/ip-tunnel/usage/
包含在 [edit services analytics
] 层次结构级别的传感器(Junos 遥测接口)配置语句中。UDP 传感器的所有参数均配置在该层级。MX80 和 MX104 路由器仅支持 UDP 流传输。它们不支持 gRPC。
FPC 和光纤支持
从 Junos OS 19.2R1 版开始,JTI 支持使用远程过程调用 (gRPC) 为 MX 系列流传输灵活 PIC 集中器 (FPC) 和光学统计。gRPC 是一种用于配置和检索状态信息的协议。支持包括添加新进程(SensorD 守护程序)来导出遥测数据,以便与称为 AFT 平台的 OpenConfig 模型中的 AFTTelementry 和 LibTelemetry 库集成。
支持以下基本资源路径:
/junos/system/linecard/environment/
/junos/system/线卡/optics/
要配置传感器以通过 gRPC 导出数据,请使用遥测Subcribe RPC 指定遥测参数。通过 gRPC 传输遥测数据还需要 Junos OS 的 OpenConfig 模块。从 Junos OS 18.3R1 版开始,OpenConfig 和网络代理包默认捆绑到 Junos OS 映像中。两个软件包都支持 JTI。
MX 系列上 Junos Fusion 的 JTI 宽带边缘统计数据支持
从 Junos OS 19.2R1 版开始,当 MX 路由器配置为宽带网络网关 (BNG) 和 Junos Fusion 时,用户通过 Junos Fusion 卫星设备连接时,将启用基于订阅者的遥测流。您可以使用远程过程调用 (gRPC) 将宽带边缘 (BBE) 遥测统计信息导出到外部收集器。
您可以流式传输所有 BBE 资源路径,但以下内容除外:
/junos/system/subscriber-management/access-network/ancp
/junos/system/subscriber-management/client-protocols/l2tp
/junos/system/subscriber-management/infra/network/l2tp/
要流传输 BBE 统计信息,请将以 /junos/system/subscriber-management/ 开始的资源路径包含在 gRPC 订阅中。
要配置传感器以通过 gRPC 导出数据,请使用 telemetrySubscribe
RPC 指定遥测参数。
配备 MPC10E-15C-MRATE 线卡的 MX 系列路由器的 CPU 和 NPU 传感器支持
Junos OS 19.3R1 版本支持具有 MPC10E-10C-MRATE 和 MPC10E-15C-MRATE 线卡的 MX 系列路由器上的 CPU 和网络处理单元 (NPU) 传感器。JTI 可使用 gRPC 服务以可配置的间隔从这些传感器的统计数据导出到外部收集器。
与之前的 Junos 版本中对 CPU 和 NPU 传感器的 Junos 内核实施不同,此功能使用 OpenConfig AFT 模型。因此,与 Junos 内核输出相比,资源路径和键值对 (kv) 输出存在差异。
使用以下资源路径导出统计信息:
/junos/system/linecard/cpu/memory/
/junos/system/linecard/npu/memory/
/junos/system/linecard/npu/利用率/
要配置传感器以通过 gRPC 服务导出数据,请使用 telemetrySubcribe
RPC 指定遥测参数。通过 gRPC 传输遥测数据还需要 Junos OS 的 OpenConfig 模块。从 Junos OS 18.3R1 版开始,OpenConfig 和网络代理包默认捆绑到 Junos OS 映像中。两个软件包都支持 JTI。
有关 gRPC 资源路径的更多信息,请参阅 gRPC 传感器准则(Junos 遥测接口)。
接口 Express 传感器
JTI 支持接口 Express 传感器以用户可配置的速率导出接口的操作 UP
和 DOWN
状态。此传感器利用物理接口传感器的统计信息,提供更快、更频繁的操作状态统计信息。仅从灵活 PIC 集中器 (FPC) 收集并报告物理接口的操作状态。不会报告来自路由引擎接口的统计信息。
您可以使用传感器通过 UDP(本机)导出或通过 gRPC 服务来导出统计信息。
对于任一导出方法,请包括以下资源路径:
/junos/system/linecard/intf-exp/
Junos OS 18.1R1 版支持 PTX1000、PTX3000、PTX5000 和 PTX10000 路由器的接口快速传感器。
Junos OS 19.3R1 版支持 MX960、MX2010 和 MX2020 路由器的接口快速传感器。
有关 gRPC 资源路径的更多信息,请参阅 gRPC 和 gNMI 传感器准则(Junos 遥测接口)。
面向用户的备用路由引擎传感器
JTI 支持使用 gRPC 服务进行流备用路由引擎统计信息。除非另有说明,否则单个机箱和虚拟机箱均支持此功能。使用此功能可以更好地跟踪在备用路由引擎上运行的软件组件的状态。通过以下传感器(主要在订阅者管理下)导出到外部收集器的统计信息可以提供系统运行状况和弹性状态的更完整视图:
机箱角色(备份或主)传感器 /junos/system/subscriber-management/chassis 和 /junos/system/subscriber-management/chassis[chassis-index=chassis-index] (用于为 MX 系列虚拟机箱指定索引)
路由引擎状态和 GRES 通知传感器 /junos/system/subscriber-management/chassis/routing-engine 和 /junos/system/subscriber-management/chassis/routing-engines/routing-engine[re-index=RoutingEngineIndex] (指定特定路由引擎的索引号)
订阅者管理进程传感器 /junos/system/subscriber-management/chassis/routing-engines/process-status/subscriber-management-process/subscriber-management-process 和 /junos/system/subscriber-management/chassis/routing-engines/process-status/subscriber-management-process/subscriber-management-process[pid=ProcessIdentifier] (为特定进程指定 PID)
服务器或中继传感器 /junos/system/subscriber-management/chassis/routing-engine/routing-engine/dhcp-bindings/dhcp-element[dhcp-type-name=RelayOrServer/v4] 和 /junos/system/subscriber-management/chassis/routing-engine/dhcp-bindings/dhcp-element[dhcp-type-name=RelayOrServer/v6]
虚拟机箱端口计数器传感器 /junos/system/subscriber-management/chassis/virtual-chassis-ports/virtual-chassis-port 和 /junos/system/subscriber-management/chassis/virtual-chassis-ports/virtual-chassis-port[vcp-interface-name=vcp-interface-port-string](指定接口名称)。仅在虚拟机箱上支持此资源路径。
Junos OS 20.2R1 版本支持 MX480、MX960、MX10003、MX2010 和 MX2020 路由器的备用路由引擎传感器。
有关 gRPC 和 gNMI 资源路径的更多信息,请参阅 gRPC 和 gNMI 传感器准则(Junos 遥测接口)。
面向用户的 Diameter 应用协议和 Diameter Peer 传感器
JTI 支持为直径应用程序协议网络接入服务器应用程序 (NASREQ)、策略和收费规则功能 (PCRF) 以及在线收费系统 (OCS) 的用户提供流式统计信息。还有新的直径对等传感器,可以为 MX 路由器和对等方之间交换的每个直径应用的消息提供响应时间测量。统计数据使用 JTI 和瞻博网络 AAA 模型导出,其中包括使用 gRPC、gNMI 或瞻博网络专有 RPC 或 UDP 进行遥测导出。
要流式传输 Diameter 应用程序统计数据,请包括以下资源路径:
对于 NASREQ 统计数据, /junos/system/subscriber-management/aaa/diameter/客户端/nasreq
对于 PCRF 统计信息, /junos/system/subscriber-management/aaa/diameter/客户端/gx
对于 OCS 统计信息, /junos/system/subscriber-management/aaa/diameter/客户端/gy
要流式传输直径应用程序的响应时间测量,请将资源路径包含在订阅中使用 sensor
配置语句:
对于 NASREQ 测量, /junos/system/subscriber-management/aaa/diameter/peers/peers/peer[peer_address=''peer-address]/nasreq/response-time
对于 PCRF 测量, /junos/system/subscriber-management/aaa/diameter/peers/peers/peer[peer_address=''peer-address]/gx/response-time
对于 OCS 测量, /junos/system/subscriber-management/aaa/diameter/peers/peers/peer[peer_address=''peer-address]/gy/response-time
要为 MX 系列路由器启用这些统计信息以实现本机 (UDP) 导出,请将语句 sensors
包含在 [edit services analytics
] 层次结构级别。
要配置传感器以通过 gNMI 导出数据,请使用 在 gnmi.proto 中定义的订阅 RPC 指定请求参数。
要配置传感器以通过 gRPC 导出数据,请使用 telemetrySubscribe
RPC 指定遥测参数。通过 gRPC 传输遥测数据还需要 Junos OS 的 OpenConfig 模块。从 Junos OS 18.3R1 版开始,OpenConfig 和网络代理包默认捆绑到 Junos OS 映像中。两个软件包都支持 JTI。
Junos OS 19.3R1 版本支持直径应用协议传感器,适用于 MX5、MX10、MX40、MX150、MX204、MX240、MX480、MX960、MX2008、MX2010、MX2020、MX10003、MX10008 和 MX100016 路由器。
有关 gRPC 和 gNMI 资源路径的更多信息,请参阅 gRPC 和 gNMI 传感器准则(Junos 遥测接口)。
接口突发监控
Junos OS 演化版 19.3R1 支持 Junos 遥测接口 (JTI) 上的接口突发监控,以监控 QFX5220-128C 和 QFX5220-32CD 交换机上的突发物理接口。使用接口突发监控来帮助排除问题、做出决策并根据需要调整资源。
在导出间隔(窗口)期间,采样的粒度为毫秒级。导出间隔在传感器中配置,其订阅来自收集器的订阅。安装传感器后,数据包转发引擎中启动计时器,以每 30-100 毫秒的间隔轮询硬件。第一批出口的费率为 0。
峰值字节是在采样间隔中看到的字节数的平均值。对于持续时间小于采样间隔的突发,将该间隔内的峰值字节平均。导出的统计信息还包括检测到峰值字节的时间以及方向(传输或接收)。在所有样本的导出间隔期间检测到的最大字节速率被视为突发。如果间隔内存在多个相同字节速率的突发,则第一次发生的突发将被视为最大突发,而该突发的时间戳则被视为突发时间戳。
将导出所有物理接口的 UP 数据。不支持聚合接口。
您可以通过使用远程过程调用 (gRPC) 服务的订阅中包含传感器 /junos/system/linecard/bmon-sw/ ,将接口突发统计信息从瞻博网络设备导出到外部收集器。此传感器仅支持一个收集器。
要配置传感器以通过 gRPC 服务导出数据,请使用 telemetrySubcribe
RPC 指定遥测参数。通过 gRPC 传输遥测数据还需要 Junos OS 的 OpenConfig 模块。
此功能不会检测到微爆发。
收发器诊断
Junos OS 19.4R1 版支持横向诊断传感器,用于 MX960、MX2010、MX2010、MX2020、PTX1000、PTX5000 和 PTX10000 系列路由器上使用 JTI 和 gRPC 服务或 gNMI 服务进行ON_CHANGE和流统计。使用收发器诊断来帮助排除故障、做出决策并根据需要调整资源。
此功能支持 OpenConfig 收发器型号 openconfig-platform-transceiver.yang 0.5.0。
使用 gRPC 或 gNMI 订阅中的基本资源路径 /组件/收发器/ 将统计信息从瞻博网络设备导出到外部收集器。
ON_CHANGE不支持不断变化的字段,例如温度、输入功率和输出功率以及激光偏置电流。
物理以太网接口传感器
Junos OS 19.4R1 版支持物理以太网接口统计信息,用于 MX960、MX2020、PTX1000 和 PTX5000 路由器上使用 JTI 和 gRPC 服务或 gNMI 服务来实现ON_CHANGE和流统计信息。
此功能支持 OpenConfig 模型 openconfig-if-ethernet.yang (物理接口级别)版本 2.6.2(无配置)。
使用 gRPC 或 gNMI 订阅中的基本资源路径 /接口/接口/以太网/状态/ 将统计信息从瞻博网络设备导出到外部收集器。
VLAN 传感器
Junos OS 19.4R1 版支持 EX4650 和 QFX5120 交换机上使用 JTI 和 gRPC 服务的ON_CHANGE流 VLAN 统计信息。
此功能支持 OpenConfig 模型 openconfig-vlan.yang 配置版本 1.0.2。
使用 gRPC 订阅中的基本资源路径 /vlan/ 将统计信息从瞻博网络设备导出到外部收集器。
您可以在订阅中使用的其他端点包括:
/vlans/vlan/state/name
/vlans/vlan/state/vlan-id
/vlans/vlan/members/
/vlans/vlan/members/member/interface-ref/state/interface/
/vlans/vlan/members/member/interface-ref/state/interface/switched-vlan/state/interface-mode
/vlans/vlan/members/member/interface-ref/state/interface/switched-vlan/state/native-vlan
/vlans/vlan/members/member/interface-ref/state/interface/switched-vlan/state/access-vlan
/vlans/vlan/members/member/interface-ref/state/interface/switched-vlan/state/中继-vlan
/vlans/vlan/members/member/interface-ref/state/interface/vlan/state/vlan-id
junos-analytics
瞬时配置数据库实例中,并且可以使用操作命令查看
show ephemeral-configuration instance junos-analytics
配置。