定义处理器

编辑

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 Common Schema (ECS) 后处理数据,因为转换是由 Elasticsearch 摄取管道执行的。这意味着您的处理器配置不能引用由摄取管道或 Logstash 创建的字段,因为这些字段是在处理器运行之后而不是之前创建的。
  • 如果用户定义的处理删除了或更改了摄取管道期望的字段,则可能会破坏 Elasticsearch 中的集成摄取管道。
  • 如果您通过处理器创建新字段,则您有责任在 *-@custom 组件模板中设置字段映射,并确保新映射与 ECS 对齐。

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

编辑

Elastic Stack 提供了几种处理 Elastic Agent 收集的数据的选项。您选择的选项取决于您需要做什么

如果您需要… 执行此操作…

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

使用 Elastic Agent 处理器

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

使用摄取管道

在查询时定义或更改架构

使用运行时字段

对您的数据执行其他操作

使用Logstash 插件

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

编辑

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