使用 Ingest Pipeline 解析数据

编辑

使用 Ingest Pipeline 解析数据

编辑

当您使用 Elasticsearch 作为输出时,您可以配置 Packetbeat 使用 Ingest Pipeline 来预处理文档,然后再在 Elasticsearch 中进行实际索引。当您想对数据进行一些额外的处理,但不需要 Logstash 的全部功能时,Ingest Pipeline 是一个方便的处理选项。例如,您可以在 Elasticsearch 中创建一个 Ingest Pipeline,它包含一个处理器来删除文档中的字段,然后是另一个处理器来重命名字段。

在 Elasticsearch 中定义 Pipeline 后,您只需配置 Packetbeat 来使用该 Pipeline。要配置 Packetbeat,您需要在 packetbeat.yml 文件中 elasticsearch 下的 parameters 选项中指定 Pipeline ID。

output.elasticsearch:
  hosts: ["localhost:9200"]
  pipeline: my_pipeline_id

例如,假设您在一个名为 pipeline.json 的文件中定义了以下 Pipeline:

{
    "description": "Test pipeline",
    "processors": [
        {
            "lowercase": {
                "field": "agent.name"
            }
        }
    ]
}

要在 Elasticsearch 中添加 Pipeline,您需要运行以下命令:

curl -H 'Content-Type: application/json' -XPUT 'https://127.0.0.1:9200/_ingest/pipeline/test-pipeline' [email protected]

然后在 packetbeat.yml 文件中,您需要指定:

output.elasticsearch:
  hosts: ["localhost:9200"]
  pipeline: "test-pipeline"

运行 Packetbeat 时,agent.name 的值在索引之前会转换为小写。

有关定义预处理 Pipeline 的更多信息,请参阅 Ingest Pipeline 文档。