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

使用Logstash解析Cisco F7 NetFlow时ES缺失OUT_BYTES字段求助

解决Logstash解析Cisco F7 NetFlow数据缺失OUT_BYTES字段的问题

我来帮你梳理下这个问题的根源和解决办法:

问题根源

首先要明确:NetFlow Version 5的标准字段定义里,根本没有out_bytes这个字段,它只包含in_bytes(记录流量进入采样接口的字节数)。你看到其他用户提到的out_bytes,基本都是使用了支持扩展字段的NetFlow版本——比如NetFlow Version 9或者IPFIX,这两个版本采用模板化结构,支持自定义/扩展流量字段,才能输出out_bytes(出接口的字节数)。

具体解决步骤

1. 修改Cisco F7的NetFlow配置,升级到v9版本

登录你的Cisco F7设备,调整NetFlow输出版本为v9(这是最根本的解决办法):

# 进入全局配置模式
configure terminal

# 定位到配置了NetFlow采样的接口(根据你的实际接口调整)
interface GigabitEthernetX/X
# 将NetFlow输出版本改为v9
ip flow-export version 9
# 确保流量导出的目标地址和端口与Logstash监听一致
ip flow-export destination 120.127.XXX.XX 5556

# 保存配置
write memory

2. 调整Logstash的NetFlow Codec配置

Logstash的netflow codec默认支持v5和v9,但为了确保正确解析扩展字段,可以明确配置版本并开启自定义字段解析:

input{
  udp{
    host => "120.127.XXX.XX"
    port => 5556
    codec => netflow {
      versions => [5, 9] # 同时兼容v5和v9,方便过渡
      include_custom_fields => true # 开启自定义扩展字段解析
    }
  }
}
output{
  elasticsearch {
    hosts => ["120.127.XXX.XX:9200"]
    index => "netflow-%{year}-%{month}-%{day}"
  }
  stdout{codec=> rubydebug}
}

3. 验证结果

重启Logstash服务后,查看stdout的rubydebug输出,确认netflow.out_bytes字段是否出现。如果设备配置正确,NetFlow v9会自动携带出接口字节数的字段,Logstash解析后就能同步到Elasticsearch中。

补充说明

如果因特殊原因无法升级NetFlow版本,只能通过input_snmp和output_snmp字段判断流量方向,但无法直接获取out_bytes的准确值——毕竟v5本身不支持这个字段,所以升级到v9是最优解。

内容的提问来源于stack exchange,提问作者張皓翔

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:41:25