0

我已经为 Logstash 编写了管道文件,但我当前的客户反对使用 Logstash,并希望直接在 Elasticsearch 中摄取 Filebeat 生成的日志。

好吧,如果这真的是他想要的。但我找不到 Elasticsearch 的免费管道文件。我想使用 Dockerfile 将配置文件复制到映像中,然后使用 Compose 构建堆栈。为未来的客户制定一个很好的部署模式。

我正在使用堆栈的 7.11 版本,并且在 Elasticsearch 和 Kibana 的 Compose 文件以及 Filebeat 的另一个 Compose 方面有了一个良好的开端。我找不到允许将管道放入 ES 映像的语法。

有人可以指出我正确的方向吗?

谢谢!

4

1 回答 1

0

我看不到在启动 ES 时如何加载管道。您可以在集群启动后通过 API 执行此操作,也可以使用filebeat本身加载它们。

对于我们使用的大多数管道,由于它们在初始设置后不会经常更改,因此我们决定使用一个非常简单的 bash 脚本,该脚本将遍历具有管道 JSON 的文件夹并通过 cURL 命令将它们发布到 API。

curl -H "Content-Type: application/json" -XPUT http://${ELASTIC_URL}:9200/_ingest/pipeline/some-pipeline -d@some-pipeline.json

不过,对于其他应用程序,我们必须创建内置管道的自定义filebeat模块。

为了通过filebeat加载管道,您需要创建一个已经包含管道 JSON 的自定义模块。

有关详细信息,请参阅模块开发指南

创建后,您可以运行./filebeat setup --pipelines --modules my-custom-module将管道推送到 Elastic。

于 2021-07-30T13:01:18.503 回答