Netflow 编解码器插件

编辑
  • 插件版本:v4.3.2
  • 发布日期:2023-12-22
  • 更新日志

有关其他版本,请参阅版本化插件文档

获取帮助

编辑

有关插件的问题,请在Discuss论坛中开一个主题。对于错误或功能请求,请在Github中开一个 issue。有关 Elastic 支持的插件列表,请查阅Elastic 支持矩阵

描述

编辑

“netflow” 编解码器用于解码 Netflow v5/v9/v10 (IPFIX) 流。

支持的 Netflow/IPFIX 导出器

编辑

此编解码器支持

  • Netflow v5
  • Netflow v9
  • IPFIX

以下 Netflow/IPFIX 导出器已通过最新版本的 Netflow 编解码器进行观察和测试

Netflow 导出器 v5 v9 IPFIX 备注

梭子鱼防火墙

支持扩展单流

思科 ACI

思科 ASA

思科 ASR 1k

因字段重复而失败

思科 ASR 9k

思科 IOS 12.x

思科 ISR (带 HSL)

因字段重复而失败,请参阅:https://github.com/logstash-plugins/logstash-codec-netflow/issues/93

思科 WLC

Citrix Netscaler

仍然有一些未知字段,标记为 netscalerUnknown<id>

fprobe

Fortigate FortiOS

华为 Netstream

ipt_NETFLOW

IXIA 数据包代理

Juniper MX

软件版本 > 12.3R8。 由于我们目前不支持的重复字段名称,无法解码来自 Junos 16.1 的 IPFIX。

Mikrotik

http://wiki.mikrotik.com/wiki/Manual:IP/Traffic_Flow

nProbe

现在也支持 L7 DPI 字段

诺基亚 BRAS

OpenBSD pflow

http://man.openbsd.org/OpenBSD-current/man4/pflow.4

Riverbed

由于字段 ID 冲突而不受支持。 在 Elastiflow 的 definitions 目录中提供解决方法:https://github.com/robcowart/elastiflow

Sandvine Procera PacketLogic

v15.1

Softflowd

https://github.com/djmdjm/softflowd 中支持 IPFIX

Sophos UTM

Streamcore Streamgroomer

Palo Alto PAN-OS

Ubiquiti Edgerouter X

带有 MPLS 标签

VMware VDS

仍然有一些未知字段

YAF

带有 silk 和 applabel,但不支持 DPI 插件

vIPtela

用法

编辑

Logstash 配置示例,它将在 2055/udp 上侦听 Netflow v5、v9 和 IPFIX

input {
  udp {
    port  => 2055
    codec => netflow
  }
}

对于高性能生产环境,以下配置将在专用的 16 CPU 实例上解码来自思科 ASR 9000 路由器的每秒最多 15000 个流。如果您的总流量速率超过每秒 15000 个流,则应使用多个 Logstash 实例。

请注意,对于来自思科 ASA 防火墙的更丰富的流,此数字将至少低 3 倍。

input {
  udp {
    port                 => 2055
    codec                => netflow
    receive_buffer_bytes => 16777216
    workers              => 16
  }

要减少丢包,请确保增加 Linux 内核接收缓冲区限制

# sysctl -w net.core.rmem_max=$((1024*1024*16))

Netflow 编解码器配置选项

编辑
设置 输入类型 必需

cache_save_path

有效的 文件系统路径

cache_ttl

数字

include_flowset_id

布尔值

ipfix_definitions

有效的 文件系统路径

netflow_definitions

有效的 文件系统路径

target

字符串

versions

数组

 

cache_save_path

编辑
  • 值类型是路径
  • 此设置没有默认值。

启用模板缓存并将其保存在指定的目录中。 这最大限度地减少了 Logstash 重启后的数据丢失,因为编解码器不必等待模板的到达,而是重新加载在以前的运行期间已收到的模板。

模板缓存保存为

  • 路径/netflow_templates.cache 用于 Netflow v9 模板。
  • 路径/ipfix_templates.cache 用于 IPFIX 模板。

cache_ttl

编辑
  • 值类型是数字
  • 默认值是4000

Netflow v9/v10 模板缓存 TTL(秒)

include_flowset_id

编辑

仅对 ipfix 有意义,v9 已经包括此设置。设置为 true 将在事件中包含 flowset_id。允许您使用序列,例如使用聚合过滤器

ipfix_definitions

编辑
  • 值类型是路径
  • 此设置没有默认值。

覆盖包含 IPFIX 字段定义的 YAML 文件

与 Netflow 版本非常相似,只是添加了顶层的私有企业编号 (PEN) 键

pen:
id:
- :uintN or :ip4_addr or :ip6_addr or :mac_addr or :string
- :name
id:
- :skip

对于标准字段,存在一个隐式的 PEN 0。

有关基本集,请参阅https://github.com/logstash-plugins/logstash-codec-netflow/blob/master/lib/logstash/codecs/netflow/ipfix.yaml

netflow_definitions

编辑
  • 值类型是路径
  • 此设置没有默认值。

覆盖包含 Netflow 字段定义的 YAML 文件

每个 Netflow 字段的定义如下

id:
- default length in bytes
- :name
id:
- :uintN or :ip4_addr or :ip6_addr or :mac_addr or :string
- :name
id:
- :skip

有关基本集,请参阅https://github.com/logstash-plugins/logstash-codec-netflow/blob/master/lib/logstash/codecs/netflow/netflow.yaml

target

编辑
  • 值类型是字符串
  • 默认值是"netflow"

指定要将 Netflow 数据放入哪个字段。

versions

编辑
  • 值类型是数组
  • 默认值是[5, 9, 10]

指定您将接受的 Netflow 版本。