定义处理器

编辑

Elastic Agent 处理器是轻量级的处理组件,您可以使用它们在源头解析、过滤、转换和丰富数据。例如,您可以使用处理器来

  • 减少导出的字段数量
  • 使用其他元数据增强事件
  • 执行其他处理和解码
  • 清理数据

每个处理器接收一个事件,对事件应用定义的操作,然后返回该事件。如果定义了处理器列表,则按定义的顺序执行它们。

event -> processor 1 -> event1 -> processor 2 -> event2 ...

Elastic Agent 处理器在摄取管道之前执行,这意味着您的处理器配置不能引用由摄取管道或 Logstash 创建的字段。有关更多限制,请参阅 使用处理器有哪些限制?

处理器在哪里有效?

编辑

本节中描述的处理器有效

  • 在 Kibana 中“集成”UI 的集成设置下。例如,在配置 Nginx 集成时,可以在 高级选项 下为特定数据集定义处理器。此示例中的处理器将地理元数据添加到 Elastic Agent 收集的 Nginx 访问日志中

    Screen showing how to add a processor to an integration policy

    某些集成目前不支持处理器。

  • 在独立 Elastic Agent 的输入配置设置下。例如

    inputs:
      - type: logfile
        use_output: default
        data_stream:
          namespace: default
        streams:
          - data_stream:
              dataset: nginx.access
              type: logs
            ignore_older: 72h
            paths:
              - /var/log/nginx/access.log*
            tags:
              - nginx-access
            exclude_files:
              - .gz$
            processors:
              - add_host_metadata:
                  cache.ttl: 5m
                  geo:
                    name: nyc-dc1-rack1
                    location: '40.7128, -74.0060'
                    continent_name: North America
                    country_iso_code: US
                    region_name: New York
                    region_iso_code: NY
                    city_name: New York
              - add_locale: null

您可以定义适用于配置中定义的特定输入的处理器。目前不支持在全局范围内将处理器应用于所有输入。

使用处理器有哪些限制?

编辑

处理器具有以下限制。

  • 无法使用 Elasticsearch 或其他自定义数据源中的数据来丰富事件。
  • 无法在数据转换为 Elastic 通用架构 (ECS) 后处理数据,因为转换是由 Elasticsearch 摄取管道执行的。这意味着您的处理器配置不能引用由摄取管道或 Logstash 创建的字段,因为这些字段是在处理器运行之后创建的,而不是之前。
  • 如果用户定义的处理删除或更改了摄取管道期望的字段,可能会破坏 Elasticsearch 中的集成摄取管道。
  • 如果通过处理器创建新字段,则您负责在 *-@custom 组件模板中设置字段映射,并确保新映射与 ECS 对齐。

还有哪些其他数据处理选项可用?

编辑

Elastic Stack 提供了多个选项来处理 Elastic Agent 收集的数据。您选择的选项取决于您需要执行的操作

如果您需要…​ 执行以下操作…​

在源头清理或丰富原始数据

使用 Elastic Agent 处理器

将数据转换为 ECS、规范化字段数据或丰富传入数据

使用 摄取管道

在查询时定义或更改架构

使用 运行时字段

对您的数据执行其他操作

使用 Logstash 插件

Elastic Agent 处理器与 Logstash 插件或摄取管道有何不同?

编辑

Logstash 插件和摄取管道都需要您将数据发送到另一个系统进行处理。另一方面,处理器允许您在源头应用处理逻辑。这意味着您可以过滤掉您不想发送到连接的数据,并且可以在边缘节点上运行的主机系统之间分摊一些处理负载。