使用 Ingest Pipeline 进行解析
编辑使用 Ingest Pipeline 进行解析
编辑当您将 Filebeat 模块与 Logstash 一起使用时,您可以使用 Filebeat 提供的 Ingest Pipeline 来解析数据。您需要将这些 Pipeline 加载到 Elasticsearch 中,并配置 Logstash 以使用它们。
加载 Ingest Pipeline
在安装 Filebeat 的系统上,使用指定的 --pipelines
选项运行 setup
命令以加载特定模块的 Ingest Pipeline。例如,以下命令加载 system 和 nginx 模块的 Ingest Pipeline:
filebeat setup --pipelines --modules nginx,system
此设置步骤需要连接到 Elasticsearch,因为 Filebeat 需要将 Ingest Pipeline 加载到 Elasticsearch 中。如有必要,您可以在运行命令之前暂时禁用已配置的输出并启用 Elasticsearch 输出。
配置 Logstash 以使用 Pipeline
在安装 Logstash 的系统上,创建一个 Logstash Pipeline 配置,该配置从 Logstash 输入(例如 Beats 或 Kafka)读取数据,并将事件发送到 Elasticsearch 输出。在 Elasticsearch 输出中将 pipeline
选项设置为 %{[@metadata][pipeline]}
以使用之前加载的 Ingest Pipeline。
这是一个示例配置,它从 Beats 输入读取数据并使用 Filebeat Ingest Pipeline 解析模块收集的数据
input { beats { port => 5044 } } output { if [@metadata][pipeline] { elasticsearch { hosts => "https://061ab24010a2482e9d64729fdb0fd93a.us-east-1.aws.found.io:9243" manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}" action => "create" pipeline => "%{[@metadata][pipeline]}" user => "elastic" password => "secret" } } else { elasticsearch { hosts => "https://061ab24010a2482e9d64729fdb0fd93a.us-east-1.aws.found.io:9243" manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}" action => "create" user => "elastic" password => "secret" } } }
如果在您的配置中禁用了数据流,请将 |
|
如果您在配置中禁用了数据流的使用,则可以删除此设置或根据需要将其设置为其他值。 |
|
配置 Logstash 以根据事件中传递的元数据选择正确的 Ingest Pipeline。 |
有关设置和运行模块的更多信息,请参阅 Filebeat 模块 文档。
有关完整示例,请参阅 示例:设置 Filebeat 模块以与 Kafka 和 Logstash 协同工作。