You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助:Logstash解码思科设备GPB-KV二进制数据失败

思科GPB-KV编码数据Logstash解码故障排查方案

一、验证Proto文件与生成代码一致性

  • 确保使用指定的telemetry.proto文件生成Ruby代码,执行正确的protoc命令:
    protoc --ruby_out=. telemetry.proto
    
  • 检查生成的telemetry_pb.rb,确认包含Telemetry、TelemetryField等GPB-KV核心消息结构体定义。

二、Logstash配置修正(结合截图逻辑)

  • 用绝对路径引入生成的Ruby文件,避免相对路径导致加载失败:
    require "/opt/logstash/telemetry_pb.rb"
    
  • 解码逻辑严格匹配Proto定义,示例正确处理代码:
    filter {
      ruby {
        code => '
          require "/opt/logstash/telemetry_pb.rb"
          begin
            # 替换为实际二进制数据的字段路径,比如截图中的[payload]
            binary_data = event.get("[payload]")
            decoded = Telemetry.decode(binary_data)
            event.set("decoded_telemetry", decoded.to_h)
          rescue => e
            event.set("decode_failure", e.message)
          end
        '
      }
    }
    
  • 确认二进制数据的字段路径与输入插件输出一致,比如Kafka输入的[value]或TCP输入的[message]。

三、设备侧编码格式验证

  • 登录思科设备,确认遥测配置中开启了GPB-KV编码:
    telemetry ietf subscription <id>
      encoding gpb-kv
    
  • 用tshark抓包分析,确认传输的二进制数据头部符合GPB-KV的标识特征。

四、Logstash环境依赖检查

  • 确保Logstash内置Ruby版本(执行/path/to/logstash/bin/ruby -v)与protobuf gem兼容(推荐2.5+版本)
  • 在Logstash的Gem环境中安装protobuf依赖:
    /path/to/logstash/bin/ruby -S gem install protobuf
    

五、日志定位具体错误

  • 查看Logstash主日志(默认路径/var/log/logstash/logstash-plain.log),搜索decode_failure或protobuf关键词,直接定位异常原因(如数据截断、字段不匹配、依赖缺失)

内容的提问来源于stack exchange,提问作者SiddarajGJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:09:24