4. Junos Telemetry Interface配置实战

前几节我们理解了 JTI(Junos Telemetry Interface)的推模式本质与 gRPC 传输框架。这一节把视角落到设备命令行上:如何在一台 Junos 设备上,把“采集什么(传感器)— 谁来收(订阅)— 发到哪(导出目标)— 怎么发(传输参数)”这四件事串成一条可运行的配置链,并真正看到第一份流式数据。

JTI 的配置模型可以概括为一条单向数据链:传感器(sensor)定义采集对象与采样节奏 → 订阅(subscription)把传感器与导出目标绑定 → 导出目标(export profile)定义目的地址、端口与传输方式 → 传输参数(gRPC/协议、TLS、编码)决定数据如何封装上线。四者缺一不可,且方向固定:传感器是数据源,导出目标是数据汇,订阅是它们之间的“接线”。理解这条链,配置就不会变成零散命令的堆砌。

JTI 配置数据链:从传感器到采集器 Junos 设备(数据源) ① 传感器 Sensor /interfaces/interface/state /junos/system/linecard/cpu 采样周期 1000 ms 资源路径 + 频率 ② 订阅 Subscription sensor-group 绑定 export-profile 引用 local-address 源地址 连接与重传策略 ③ 导出目标 Export address 10.0.0.50 port 50051 protocol gRPC tls / 编码格式 ④ 传输参数 Transport gRPC 帧 / HTTP2 流 TLS 证书与端口 GPB / JSON 编码 keepalive 与超时 采集器 / 分析平台 gRPC Server :50051 接收流式 Telemetry 解析 GPB / JSON 写入时序数据库 订阅路径与键值 时间戳 + 计数器 gRPC 流 TLS 加密 传感器决定“采什么”,订阅决定“谁发”,导出目标决定“发到哪”,传输参数决定“怎么发”

一、先规划,再敲命令

配置前先确定四件事,避免反复改:采集对象(例如接口状态计数器、线卡 CPU、防火墙会话数)、采样周期(高频 1s 适合流量趋势,低频 10s 适合资源占用)、采集器地址与端口(gRPC 服务端监听地址)、编码与安全(GPB 体积小、JSON 可读性好;生产环境建议启用 TLS)。本节示例采用一台 Junos 设备向 10.0.0.50:50051 的 gRPC 采集器推送接口状态数据,采样周期 1000 ms,编码使用 GPB。

二、配置传感器与传感器组

JTI 的传感器通过 sensor-group 组织,每个组内可包含多个资源路径。资源路径遵循 OpenConfig 或 Junos 原生 YANG 路径风格,例如接口状态使用 /interfaces/interface/state,线卡 CPU 使用 /junos/system/linecard/cpu。配置时先定义组,再在组内声明路径与采样频率:

set services analytics sensor if-state-sensor sensor-name /interfaces/interface/state
set services analytics sensor if-state-sensor server-name collector-1
set services analytics sensor if-state-sensor export-name export-1
set services analytics sensor if-state-sensor resource /interfaces/interface/state
set services analytics sensor if-state-sensor resource /interfaces/interface/state/counters
set services analytics sensor if-state-sensor polling-interval 1000

其中 polling-interval 单位为毫秒,1000 表示每秒采样一次。注意:并非所有路径都支持任意频率,高频采集会消耗 CPU 与带宽,建议先用较低频率验证链路,再逐步提高。

三、定义导出目标与传输参数

导出目标(export profile)描述“发到哪、怎么发”。关键字段包括目的地址、端口、协议、TLS 与编码:

set services analytics export export-1 export-address 10.0.0.50
set services analytics export export-1 export-port 50051
set services analytics export export-1 protocol grpc
set services analytics export export-1 encoding gpb
set services analytics export export-1 tls enable
set services analytics export export-1 tls-certificate /var/tmp/ca.pem

若采集器未启用 TLS,可将 tls enable 改为 disable 用于实验环境。生产环境务必启用 TLS,并确保证书路径可读。协议目前主流为 grpc,编码可选 gpb(Protobuf,体积小)或 json(可读性好,便于调试)。

四、绑定订阅并指定源地址

订阅(subscription)把传感器组与导出目标绑定,并指定本地源地址,确保设备从正确的接口发出数据:

set services analytics subscription sub-1 sensor-group if-state-sensor
set services analytics subscription sub-1 export-profile export-1
set services analytics subscription sub-1 local-address 10.0.0.1
set services analytics subscription sub-1 local-port 0

local-address 建议使用管理口或环回口地址,避免因业务接口抖动导致遥测中断。local-port 0 表示由系统随机选择源端口。配置完成后提交:

commit check
commit and-quit

五、验证数据是否真正上线

配置提交成功不等于数据已到达采集器。建议按以下顺序验证:

  • 设备侧状态:执行 show services analytics sensor 与 show services analytics subscription,确认传感器处于 active、订阅状态为 connected。
  • 连接检查:执行 show services analytics export,查看导出目标是否可达、TLS 是否握手成功。
  • 采集器侧:在采集器上观察 gRPC 服务日志,确认收到订阅路径与数据帧;若使用 JSON 编码,可直接看到字段名与计数器值。
  • 数据合理性:检查时间戳是否递增、接口计数器是否随流量变化,避免“有数据但全是零”的假成功。
调试技巧:首次联调可临时把 encoding 改为 json,用 tcpdump 或采集器日志直接观察明文结构,确认路径与字段无误后再切回 GPB 以降低带宽。
常见问题:若订阅状态长期为 disconnected,优先检查 local-address 是否可达、采集器端口是否监听、TLS 证书是否过期;若数据频率异常,检查 polling-interval 是否被路径本身的最小周期限制。

六、可复用的配置检查清单

检查项示例值判断依据
传感器路径/interfaces/interface/state路径存在且设备支持
采样周期1000 ms与业务需求匹配,CPU 可承受
导出地址/端口10.0.0.50:50051采集器监听且网络可达
协议/编码gRPC / GPB采集器支持对应解码
TLSenable证书有效、握手成功
本地源地址10.0.0.1稳定接口,路由正确
订阅状态connected设备侧与采集器侧一致