Netflow 编解码器插件

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

对于其他版本,请参见 版本化插件文档

获取帮助

编辑

有关插件的问题,请在 Discuss 论坛中发起主题。对于错误或功能请求,请在 Github 中提交问题。有关 Elastic 支持的插件列表,请参阅 Elastic 支持矩阵

描述

编辑

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

支持的 Netflow/IPFIX 导出器

编辑

此编解码器支持

  • Netflow v5
  • Netflow v9
  • IPFIX

以下是使用 Netflow 编解码器的最新版本已查看和测试过的 Netflow/IPFIX 导出器

Netflow 导出器 v5 v9 IPFIX 备注

Barracuda 防火墙

支持扩展 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

华为 Netstream

ipt_NETFLOW

IXIA 数据包代理

瞻博网络 MX

SW > 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 实例上的 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

有效的文件系统路径

目标

字符串

版本

数组

 

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