示例:设置 Filebeat 模块以与 Kafka 和 Logstash 协同工作
编辑示例:设置 Filebeat 模块以与 Kafka 和 Logstash 协同工作编辑
本节介绍如何在发布管道中使用 Kafka 将 Filebeat 与 Logstash 连接时,如何设置 Filebeat 模块。本示例的主要目标是展示如何从 Filebeat 加载摄取管道并在 Logstash 中使用它们。
本节中的示例展示了带有硬编码主题名称的简单配置。有关配置选项的完整列表,请参阅有关配置 Kafka 输入插件 的文档。另请参阅Filebeat 参考中的 配置 Kafka 输出。
设置并运行 Filebeat编辑
-
如果您尚未设置 Filebeat 索引模板和示例 Kibana 仪表板,请立即运行 Filebeat
setup
命令来完成此操作。filebeat -e setup
-e
标志是可选的,它将输出发送到标准错误而不是 syslog。此一次性设置步骤需要连接到 Elasticsearch 和 Kibana,因为 Filebeat 需要在 Elasticsearch 中创建索引模板并将示例仪表板加载到 Kibana 中。有关配置连接到 Elasticsearch 的更多信息,请参阅 Filebeat 快速入门。
模板和仪表板加载后,您将看到消息
INFO {kib} dashboards successfully loaded. Loaded dashboards
。 -
运行
modules enable
命令以启用您要运行的模块。例如filebeat modules enable system
您可以通过编辑 Filebeat
modules.d
目录下的配置文件来进一步配置模块。例如,如果日志文件不在模块预期的位置,您可以设置var.paths
选项。您必须在模块中启用至少一个文件集。 文件集默认情况下处于禁用状态。
-
运行
setup
命令,并指定--pipelines
和--modules
选项以加载您已启用的模块的摄取管道。此步骤还需要连接到 Elasticsearch。如果您想使用 Logstash 管道而不是摄取节点来解析数据,请跳过此步骤。filebeat setup --pipelines --modules system
-
配置 Filebeat 将日志行发送到 Kafka。为此,在
filebeat.yml
配置文件中,通过注释掉来禁用 Elasticsearch 输出,并启用 Kafka 输出。例如#output.elasticsearch: #hosts: ["localhost:9200"] output.kafka: hosts: ["kafka:9092"] topic: "filebeat" codec.json: pretty: false
-
启动 Filebeat。例如
filebeat -e
Filebeat 将尝试将消息发送到 Logstash 并继续,直到 Logstash 可用以接收它们。
根据您安装 Filebeat 的方式,当您尝试运行 Filebeat 模块时,您可能会看到与文件所有权或权限相关的错误。如果您遇到与文件所有权或权限相关的错误,请参阅Beats 平台参考中的 配置文件所有权和权限。
创建并启动 Logstash 管道编辑
-
在安装了 Logstash 的系统上,创建一个 Logstash 管道配置,该配置从 Kafka 输入读取事件并将其发送到 Elasticsearch 输出。
input { kafka { bootstrap_servers => "myhost:9092" topics => ["filebeat"] codec => json } } output { if [@metadata][pipeline] { elasticsearch { hosts => "https://myEShost:9200" manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" pipeline => "%{[@metadata][pipeline]}" user => "elastic" password => "secret" } } else { elasticsearch { hosts => "https://myEShost:9200" manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" user => "elastic" password => "secret" } } }
-
启动 Logstash,传入您刚刚定义的管道配置文件。例如
bin/logstash -f mypipeline.conf
Logstash 应该启动一个管道并开始从 Kafka 输入接收事件。
可视化数据编辑
要在 Kibana 中可视化数据,请通过将浏览器指向端口 5601 来启动 Kibana Web 界面。例如,http://127.0.0.1:5601。单击 仪表板,然后查看 Filebeat 仪表板。