使用数据采集管道进行解析

编辑

使用数据采集管道进行解析

编辑

当您将 Filebeat 模块与 Logstash 一起使用时,可以使用 Filebeat 提供的数据采集管道来解析数据。您需要将管道加载到 Elasticsearch 中并配置 Logstash 来使用它们。

加载数据采集管道

在安装了 Filebeat 的系统上,运行 setup 命令,并指定 --pipelines 选项来加载特定模块的数据采集管道。例如,以下命令加载 system 和 nginx 模块的数据采集管道:

filebeat setup --pipelines --modules nginx,system

此设置步骤需要连接到 Elasticsearch,因为 Filebeat 需要将数据采集管道加载到 Elasticsearch 中。如有必要,您可以暂时禁用配置的输出,并在运行命令之前启用 Elasticsearch 输出。

配置 Logstash 以使用管道

在安装了 Logstash 的系统上,创建一个 Logstash 管道配置,该配置从 Logstash 输入(如 Beats 或 Kafka)读取数据,并将事件发送到 Elasticsearch 输出。将 Elasticsearch 输出中的 pipeline 选项设置为 %{[@metadata][pipeline]},以使用您之前加载的数据采集管道。

以下是一个示例配置,它从 Beats 输入读取数据,并使用 Filebeat 数据采集管道来解析模块收集的数据:

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"
    }
  }
}

如果您的配置中禁用了数据流,请将 index 选项设置为 %{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}。默认情况下,数据流是启用的。

如果要在配置中禁用数据流的使用,可以删除此设置,或将其设置为适当的不同值。

配置 Logstash 以根据事件中传递的元数据选择正确的数据采集管道。

有关设置和运行模块的更多信息,请参阅 Filebeat 模块文档。

有关完整示例,请参阅示例:设置 Filebeat 模块以与 Kafka 和 Logstash 协同工作