Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用 UNIX 实用程序解码 Junos 遥测接口数据

您可以使用 UNIX 实用程序对从瞻博网络设备流式传输数据的服务器或收集器上的 Junos 遥测接口数据进行解码。本节中的示例说明如何对单个流数据包进行解码。

准备收集器以解码数据

此示例需要满足以下条件:

  • 带有 Netcat (nc) 实用程序的 UNIX作系统。

  • 协议缓冲区编译器。

  • Junos 遥测接口协议缓冲区文件。

此过程显示如何准备收集器以使用 Ubuntu OS 对数据进行解码。

  1. 安装 Netcat 实用程序。

  2. 安装协议缓冲区编译器。

  3. 安装协议缓冲区开发人员库。

  4. 验证库文件是否已安装。

  5. 下载并安装最新版本的 Junos 遥测接口协议缓冲区文件。

    从 Web 浏览器导航到 瞻博网络 页面上的所有 Junos 平台软件下载 URL: https://www.juniper.net/support/downloads/。选择 Junos OS 平台的名称和版本号后,请转到 “工具 ”部分并下载 Junos 遥测接口数据模型文件 包。

    注意:

    请务必记下提取文件的位置。

对收集器上的数据进行解码

此过程演示如何捕获数据、解码原始数据以及使用协议缓冲区文件对数据进行解码。

要解码数据:

  1. 捕获数据。

    在目标流遥测服务器或收集器上以 UDP 侦听器模式运行 netcat,以将所有传入数据报存储到文件中。使用在瞻博网络设备上的流式传输服务器配置文件中配置的目标端口号。

    注意:

    此命令将数据报存储到名为 data.gpb的文件中。运行此程序以捕获数据。当您想停止接收数据时,请通过发送中断信号 (Control + C) 来停止程序

  2. 解码原始数据。

    注意:

    此步骤是可选的。如果您知道数据的编码消息类型,则不需要它。

    data.gpb 文件中的消息进行解码。

    下的 2636 下一个嵌套结构标识传感器类型。数值 2636 标识 JuniperNetworksSensortelemetry_top.proto 文件中定义的消息。在此示例中,数字标识符 7LogicalPort 应于文件中定义的消息 logical_port.proto 。在下一步中使用此信息生成更详细的输出。

  3. 对消息进行解码以包含字段名称。

    使用 decode 选项运行协议缓冲区编译器。此外,指定顶级消息类型 (TelemetryStream) 和具有消息定义 logical_port.proto的文件。您还必须包括 Goggle 协议缓冲区 (gpb) 库。

对收集器上的 Junos 遥测接口 UDP 数据进行解码

收集器必须在远程地址或端口组合上启动侦听器,以读取传入数据。可以使用 telemetry_top.proto 和传感器原型文件对传入数据进行解码。

为了简化解码过程,收集器可以加载作为遥测软件包的一部分提供的所有原型文件,以解码传入的数据。

注意:
  1. 验证管理和 WAN 接口上的流数据。在流式处理服务器配置文件中指定适当的地址。
  2. 枚举和浮点数作为字符串进行流式处理,用于 UDP 流式处理。枚举将保留为字符串,因为 gNMI 使用相同的格式。
  3. 浮点数据类型的处理范围限定为将来的版本。

通过 UDP 流式传输遥测数据时,请确保正确解码数据,并且不会在收集器上解码未知字段。

以下是通过 UDP 流式传输遥测数据时观察到的一些问题:

  1. 不正确的解码:不正确的解码意味着遥测数据未通过 UDP 正确流式传输。在以下示例中,以粗体突出显示的数据表示数据未正确解码。此行为可能是由于编码不正确或原型文件打包错误所致。

    以下是正确解码数据的示例:

  2. 不完整数据流:不完整数据的流式传输必须通过输出文件中的数据验证进行验证。