NetFlow 输入

编辑

使用 netflow 输入通过 UDP 读取 NetFlow 和 IPFIX 导出的流和选项记录。

此输入支持 NetFlow 版本 1、5、6、7、8 和 9,以及 IPFIX。对于早于 9 的 NetFlow 版本,字段会自动映射到 NetFlow v9。

配置示例

filebeat.inputs:
- type: netflow
  max_message_size: 10KiB
  host: "0.0.0.0:2055"
  protocols: [ v5, v9, ipfix ]
  expiration_timeout: 30m
  queue_size: 8192
  custom_definitions:
  - path/to/fields.yml
  detect_sequence_reset: true

配置选项

编辑

netflow 输入支持以下配置选项,以及稍后描述的通用选项

max_message_size

编辑

通过 UDP 接收的最大消息大小。默认值为 10KiB

host

编辑

侦听事件流的主机和 UDP 端口。

network

编辑

网络类型。可接受的值为:"udp" (默认值)、"udp4"、"udp6"

read_buffer

编辑

UDP 套接字上的读取缓冲区大小。如果未指定,将使用操作系统的默认值。

timeout

编辑

套接字操作的读取和写入超时时间。默认值为 5m

protocols

编辑

已启用协议的列表。有效值为 v1v5v6v7v8v9ipfix

expiration_timeout

编辑

空闲会话或未使用模板过期的超时时间。仅适用于 v9 和 IPFIX 协议。值为零禁用过期。

share_templates

编辑

此选项允许在会话内共享 v9 和 ipfix 模板,而无需引用模板的来源。

请注意,不建议将此选项设置为 true,因为它可能导致在某些情况下应用错误的模板,但某些系统可能需要这样做。

queue_size

编辑

可以排队等待处理的最大数据包数。在处理偶尔出现的流量突发时,使用此设置以避免数据包丢失。

workers

编辑

用于并发读取和解码 netflow 数据包的工作线程数。默认值为 1。请注意,为了最大化多个工作线程的性能提升,建议将输出切换到 throughput 预设 (链接)。

custom_definitions

编辑

字段定义 YAML 文件的路径列表。这些允许使用供应商扩展更新 NetFlow/IPFIX 字段,并覆盖现有字段。

预期格式与 Logstash 的 NetFlow 编解码器使用的格式相同 ipfix_definitionsnetflow_definitions。Filebeat 将检测使用哪种格式。

NetFlow 格式示例

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

其中 id 是数字字段 ID。

IPFIX 格式类似,但按专用企业编号 (PEN) 分组

pen1:
  id:
  - :uintN or :ip4_addr or :ip6_addr or :mac_addr or :string
  - :name
  id:
  - :skip
pen2:
  id:
  - :octetarray
  - :name

请注意,字段在 NetFlow V9 和 IPFIX 之间共享。对 IPFIX PEN 零的更改等同于对 NetFlow 字段的更改。

覆盖标准字段的名称和/或类型可能会阻止 ECS 字段的正确映射。

detect_sequence_reset

编辑

控制 Filebeat 是否应监视 Netflow 数据包中的序列号以检测导出过程重置的标志。当检测到此情况时,将丢弃给定导出器的记录模板。这将导致数据流丢失,直到导出器提供新模板。如果设置为 false,Filebeat 将忽略序列号,如果导出器进程重置,可能会导致某些无效数据流。此选项仅适用于 Netflow V9 和 IPFIX。默认值为 true

internal_networks

编辑

描述您认为内部的 IP 地址的 CIDR 范围列表。这用于确定 source.localitydestination.localityflow.locality 的值。这些值可以是 CIDR 值,也可以是 network 条件支持的命名范围之一。默认值为 [private],它将 RFC 1918 (IPv4) 和 RFC 4193 (IPv6) 地址分类为内部地址。

通用选项

编辑

所有输入都支持以下配置选项。

enabled
编辑

使用 enabled 选项启用和禁用输入。默认情况下,enabled 设置为 true。

tags
编辑

Filebeat 在每个已发布事件的 tags 字段中包含的标签列表。标签可以轻松地在 Kibana 中选择特定事件,或在 Logstash 中应用条件筛选。这些标签将附加到常规配置中指定的标签列表中。

示例

filebeat.inputs:
- type: netflow
  . . .
  tags: ["json"]
fields
编辑

可选字段,您可以指定这些字段以向输出添加其他信息。例如,您可以添加可用于筛选日志数据的字段。字段可以是标量值、数组、字典或这些值的任何嵌套组合。默认情况下,您在此处指定的字段将分组在输出文档中的 fields 子字典下。要将自定义字段存储为顶层字段,请将 fields_under_root 选项设置为 true。如果在常规配置中声明了重复字段,则其值将被此处声明的值覆盖。

filebeat.inputs:
- type: netflow
  . . .
  fields:
    app_id: query_engine_12
fields_under_root
编辑

如果此选项设置为 true,则自定义字段将存储为输出文档中的顶层字段,而不是分组在 fields 子字典下。如果自定义字段名称与 Filebeat 添加的其他字段名称冲突,则自定义字段将覆盖其他字段。

processors
编辑

要应用于输入数据的一系列处理器。

有关在配置中指定处理器的信息,请参阅处理器

pipeline
编辑

为此输入生成的事件设置的 Ingest 管道 ID。

管道 ID 也可以在 Elasticsearch 输出中配置,但此选项通常会导致更简单的配置文件。如果在输入和输出中都配置了管道,则使用输入中的选项。

keep_null
编辑

如果此选项设置为 true,则具有 null 值的字段将在输出文档中发布。默认情况下,keep_null 设置为 false

index
编辑

如果存在,则此格式化字符串会覆盖此输入事件的索引(对于 elasticsearch 输出),或设置事件元数据的 raw_index 字段(对于其他输出)。此字符串只能引用代理名称和版本以及事件时间戳;要访问动态字段,请使用 output.elasticsearch.index 或处理器。

示例值:"%{[agent.name]}-myindex-%{+yyyy.MM.dd}" 可能会扩展为 "filebeat-myindex-2019.11.01"

publisher_pipeline.disable_host
编辑

默认情况下,所有事件都包含 host.name。可以将此选项设置为 true 以禁用向所有事件添加此字段。默认值为 false

指标

编辑

此输入在 HTTP 监视端点下公开指标。这些指标在 /inputs/ 路径下公开。它们可用于观察输入的活动。

您必须为输入分配唯一的 id 才能公开指标。

指标 描述

设备

UDP 流的主机/端口。

udp_read_buffer_length_gauge

UDP 套接字缓冲区长度的大小(以字节为单位)(仪表)。

received_events_total

已接收的数据包(事件)总数。

received_bytes_total

接收到的字节总数。

receive_queue_length

系统接收队列(IPv4 和 IPv6)的聚合大小(仅限 Linux)(仪表)。

system_packet_drops

系统数据包丢弃的聚合数量(IPv4 和 IPv6)(仅限 Linux)(仪表)。

arrival_period

连续数据包之间的时间直方图,以纳秒为单位。

processing_time

处理数据包所用时间的直方图,以纳秒为单位。

discarded_events_total

丢弃的事件总数。

decode_errors_total

解码数据包时出错的总数。

flows_total

接收到的数据流总数。

open_connections

当前活动的 netflow 会话数。

直方图指标在之前的 1024 个事件中聚合。