建立拨入式遥测连接
本主题介绍建立拨入式遥测连接的过程。配置 gRPC 服务和数据收集器,并根据要从 Junos 设备收集的传感器信息选择传感器路径。
使用以下过程建立拨入式遥测连接。配置 gRPC 服务和数据收集器,并根据要从 Junos 设备收集的传感器信息选择传感器路径。在拨入模式下,数据收集器启动与网络设备的连接并订阅遥测数据。收集器和设备建立会话。然后,设备将数据流式传输到收集器,您可以配置流式传输间隔。希望获得单一配置和操作数据通道的运维人员通常会选择拨号模式。
先决条件:
- 确保瞻博网络设备运行的兼容 Junos OS 版本支持 Junos 遥测。
- 设置与 gRPC 兼容的遥测收集器(例如,瞻博网络遥测收集器、Prometheus 或 InfluxDB)以接收和处理遥测数据。
- 确保瞻博网络设备和收集器可以通过网络(gRPC 的 TCP 端口 50051(默认)或自定义端口)进行通信。
- 如果实施使用 TLS,请为设备和收集器准备证书。
- 有关瞻博网络设备支持的传感器的完整列表,请参阅 Junos YANG 数据模型浏览器。
- 注意:Junos YANG 数据模型资源管理器在 23.2R2-S2 版本中引入。从 20.2R1 到 23.1R1 版本,传感器信息可在 Junos 遥测传感器资源管理器中找到。
配置 gRPC 服务。请参阅 配置 gRPC 服务。
请按照下面列出的过程建立拨入式遥测连接:
配置数据收集器
选择传感器路径
传感器浏览器和传感器路径选择指南
使用瞻博网络 Junos YANG 数据模型浏览器 查看所有受支持的资源路径、它们的相应分叶以及支持这些资源的设备平台。
若要搜索和查看其他遥测传感器以及有关旧传感器的特定信息,请参阅 旧传感器路径。
有关配置传感器路径的指南和最佳实践的信息,请参阅 浏览传感器路径。
在收集器上解码数据
在收集器上解码数据
使用以下过程捕获数据、解码原始数据并使用协议缓冲区文件解码数据。
要解码数据:
捕获数据。在 UDP 侦听器模式下在目标流式遥测服务器或收集器上运行 netcat,以将所有传入数据报存储在文件中。使用在瞻博网络设备上的流式传输服务器配置文件中配置的目标端口号。
nc -ul 0.0.0.0 20000 > data.gpb
注意:此命令将数据报存储到名为
data.gpb的文件中。运行此程序以捕获数据。当您想要停止接收数据时,请通过发送中断信号 (Control + C) 来停止程序解码原始数据。
注意:此步骤可选。如果您知道数据的编码消息类型,则不需要这样做。
从文件解
data.gpb码消息。protoc --decode_raw < ../data.gpb 1: "hillrock:160.1.1.25" 2: 0 4: "S1:/junos/system/linecard/interface/logical/usage/:/junos/system/linecard/interface/logical/usage/:PFE" 5: 65265 6: 1477686534474 7: 1 8: 1 101 { 2636 { 7 { 1 { 1: "et-0/0/4:2.32767" 2: 1477642750 3: 813 4 { 12: 0x37363732332e3165 } . . .下面的
2636下一个嵌套结构标识传感器类型。数值2636标识JuniperNetworksSensor在文件中telemetry_top.proto定义的消息。在此示例中,数字标识符7对应于文件中logical_port.proto定义的LogicalPort消息。在下一步中使用此信息生成更详细的输出。对消息进行解码以包含字段名称。使用解码选项运行协议缓冲区编译器。此外,指定顶级消息类型 (
TelemetryStream) 和带有消息定义logical_port.proto的文件 。还必须包含协议缓冲区 (gpb) 库。protoc --decode TelemetryStream logical_port.proto -I /usr/include -I . < data.gpb system_id: "hillrock:160.1.1.25" component_id: 0 sensor_name: "S1:/junos/system/linecard/interface/logical/usage/:/junos/system/linecard/interface/logical/usage/:PFE" sequence_number: 65268 timestamp: 1477686536484 version_major: 1 version_minor: 1 enterprise { [juniperNetworks] { [jnprLogicalInterfaceExt] { interface_info { if_name: "et-0/0/4:2.32767" init_time: 1477642750 snmp_if_index: 813 parent_ae_name: "ae1.32767" ingress_stats { if_packets: 0 if_octets: 0 } egress_stats { if_packets: 0 if_octets: 0 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/7:3.0" init_time: 1477642750 snmp_if_index: 520 parent_ae_name: "ae0.0" ingress_stats { if_packets: 61203309 if_octets: 6487548454 } egress_stats { if_packets: 87416547 if_octets: 9266153982 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.0" init_time: 1477642750 snmp_if_index: 2512 ingress_stats { if_packets: 26266247 if_octets: 2784214806 } egress_stats { if_packets: 26247215 if_octets: 2781829290 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.1" init_time: 1477642750 snmp_if_index: 2522 ingress_stats { if_packets: 26266249 if_octets: 2784214972 } egress_stats { if_packets: 26249115 if_octets: 2781935590 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.2" init_time: 1477642750 snmp_if_index: 2523 ingress_stats { if_packets: 26266248 if_octets: 2784214912 } egress_stats { if_packets: 26249106 if_octets: 2781935086 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.3" init_time: 1477642750 snmp_if_index: 2524 ingress_stats { if_packets: 26266248 if_octets: 2784214820 } egress_stats { if_packets: 26248520 if_octets: 2781902320 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.4" init_time: 1477642750 snmp_if_index: 2525 ingress_stats { if_packets: 26266247 if_octets: 2784214760 } egress_stats { if_packets: 26247302 if_octets: 2781834112 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.5" init_time: 1477642750 snmp_if_index: 2526 ingress_stats { if_packets: 26266247 if_octets: 2784214760 } egress_stats { if_packets: 26247209 if_octets: 2781828904 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.6" init_time: 1477642750 snmp_if_index: 2527 ingress_stats { if_packets: 26266248 if_octets: 2784214820 } egress_stats { if_packets: 26247196 if_octets: 2781828226 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.7" init_time: 1477642750 snmp_if_index: 2528 ingress_stats { if_packets: 26266247 if_octets: 2784214760 } egress_stats { if_packets: 26247203 if_octets: 2781828618 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.8" init_time: 1477642750 snmp_if_index: 2529 ingress_stats { if_packets: 26266247 if_octets: 2784214760 } egress_stats { if_packets: 26247225 if_octets: 2781829850 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.9" init_time: 1477642750 snmp_if_index: 2530 ingress_stats { if_packets: 26266247 if_octets: 2784214760 } egress_stats { if_packets: 26247209 if_octets: 2781828954 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.32767" init_time: 1477642750 snmp_if_index: 648 ingress_stats { if_packets: 4 if_octets: 240 } egress_stats { if_packets: 0 if_octets: 0 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/4:2.32767" init_time: 1477642750 snmp_if_index: 813 parent_ae_name: "ae1.32767" ingress_stats { if_packets: 0 if_octets: 0 } egress_stats { if_packets: 0 if_octets: 0 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/7:3.0" init_time: 1477642750 snmp_if_index: 520 parent_ae_name: "ae0.0" ingress_stats { if_packets: 61206122 if_octets: 6487846632 } egress_stats { if_packets: 87420567 if_octets: 9266580102 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.0" init_time: 1477642750 snmp_if_index: 2512 ingress_stats { if_packets: 26267458 if_octets: 2784343172 } egress_stats { if_packets: 26248420 if_octets: 2781957020 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.1" init_time: 1477642750 snmp_if_index: 2522 ingress_stats { if_packets: 26267460 if_octets: 2784343338 } egress_stats { if_packets: 26250320 if_octets: 2782063320 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.2" init_time: 1477642750 snmp_if_index: 2523 ingress_stats { if_packets: 26267459 if_octets: 2784343278 } egress_stats { if_packets: 26250311 if_octets: 2782062816 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.3" init_time: 1477642750 snmp_if_index: 2524 ingress_stats { if_packets: 26267460 if_octets: 2784343292 } egress_stats { if_packets: 26249725 if_octets: 2782030050 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.4" init_time: 1477642750 snmp_if_index: 2525 ingress_stats { if_packets: 26267459 if_octets: 2784343232 } egress_stats { if_packets: 26248507 if_octets: 2781961842 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.5" init_time: 1477642750 snmp_if_index: 2526 ingress_stats { if_packets: 26267459 if_octets: 2784343232 } egress_stats { if_packets: 26248414 if_octets: 2781956634 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.6" init_time: 1477642750 snmp_if_index: 2527 ingress_stats { if_packets: 26267460 if_octets: 2784343292 } egress_stats { if_packets: 26248401 if_octets: 2781955956 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.7" init_time: 1477642750 snmp_if_index: 2528 ingress_stats { if_packets: 26267459 if_octets: 2784343232 } egress_stats { if_packets: 26248408 if_octets: 2781956348 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.8" init_time: 1477642750 snmp_if_index: 2529 ingress_stats { if_packets: 26267459 if_octets: 2784343232 } egress_stats { if_packets: 26248430 if_octets: 2781957580 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.9" init_time: 1477642750 snmp_if_index: 2530 ingress_stats { if_packets: 26267459 if_octets: 2784343232 } egress_stats { if_packets: 26248414 if_octets: 2781956684 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.32767" init_time: 1477642750 snmp_if_index: 648 ingress_stats { if_packets: 4 if_octets: 240 } egress_stats { if_packets: 0 if_octets: 0 } op_state { operational_status: "up" } } } } }