4. Junos Telemetry Interface配置实战
前几节我们理解了 JTI(Junos Telemetry Interface)的推模式本质与 gRPC 传输框架。这一节把视角落到设备命令行上:如何在一台 Junos 设备上,把“采集什么(传感器)— 谁来收(订阅)— 发到哪(导出目标)— 怎么发(传输参数)”这四件事串成一条可运行的配置链,并真正看到第一份流式数据。
JTI 的配置模型可以概括为一条单向数据链:传感器(sensor)定义采集对象与采样节奏 → 订阅(subscription)把传感器与导出目标绑定 → 导出目标(export profile)定义目的地址、端口与传输方式 → 传输参数(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 以降低带宽。local-address 是否可达、采集器端口是否监听、TLS 证书是否过期;若数据频率异常,检查 polling-interval 是否被路径本身的最小周期限制。六、可复用的配置检查清单
| 检查项 | 示例值 | 判断依据 |
|---|---|---|
| 传感器路径 | /interfaces/interface/state | 路径存在且设备支持 |
| 采样周期 | 1000 ms | 与业务需求匹配,CPU 可承受 |
| 导出地址/端口 | 10.0.0.50:50051 | 采集器监听且网络可达 |
| 协议/编码 | gRPC / GPB | 采集器支持对应解码 |
| TLS | enable | 证书有效、握手成功 |
| 本地源地址 | 10.0.0.1 | 稳定接口,路由正确 |
| 订阅状态 | connected | 设备侧与采集器侧一致 |