Netflow 编解码器插件编辑

  • 插件版本:v4.3.2
  • 发布时间:2023-12-22
  • 更新日志

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

获取帮助编辑

如果您对插件有任何疑问,请在论坛中打开一个主题。对于错误或功能请求,请在Github中打开一个问题。有关 Elastic 支持的插件列表,请参阅Elastic 支持矩阵

描述编辑

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

支持的 Netflow/IPFIX 导出器编辑

此编解码器支持

  • Netflow v5
  • Netflow v9
  • IPFIX

以下 Netflow/IPFIX 导出器已使用最新版本的 Netflow 编解码器进行测试和验证

Netflow 导出器 v5 v9 IPFIX 备注

Barracuda Firewall

支持 Extended Uniflow

Cisco ACI

Cisco ASA

Cisco ASR 1k

由于字段重复而失败

Cisco ASR 9k

Cisco IOS 12.x

Cisco ISR w/ HSL

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

Cisco WLC

Citrix Netscaler

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

fprobe

Fortigate FortiOS

Huawei Netstream

ipt_NETFLOW

IXIA 数据包代理

Juniper MX

SW > 12.3R8。由于我们目前不支持的重复字段名称,因此无法解码 Junos 16.1 中的 IPFIX。

Mikrotik

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

nProbe

现在也支持 L7 DPI 字段

Nokia 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 实例上从 Cisco ASR 9000 路由器解码高达 15000 个流/秒。如果您的总流量超过 15000 个流/秒,则应使用多个 Logstash 实例。

请注意,对于来自 Cisco 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 v9 模板的路径/netflow_templates.cache。
  • IPFIX 模板的路径/ipfix_templates.cache。

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 版本。