遵循弹性文档时出现 Logstash 问题

问题描述 投票:0回答:1

作为培训项目的一部分,我正在尝试设置 Logstash 的单个实例并根据elasticssearch文档进行独立测试(https://www.elastic.co/guide/en/logstash/7.17/advanced-pipeline .html)。我触发了 Logstash 的 Docker 实例。 一切都很顺利,直到我陷入困境:

bin/logstash -f first-pipeline.conf --config.reload.automatic

我面临以下错误:

Logstash could not be started because there is already another instance using the configured data directory.  If you wish to run multiple instances, you must change the "path.data" setting

当我指定路径时:

bin/logstash -f first-pipeline.conf --path.data data2 --config.reload.automatic

我还有一个错误:

 Error: Address already in use

我的配置与上述文档 URL 中所述完全相同。

我尝试了很多组合,但我已经没有主意了。

谢谢你的双手

logstash elastic-stack elk
1个回答
0
投票

您在 Logstash 中遇到的错误消息与两个问题相关:

  1. “Logstash 无法启动,因为已经有另一个实例在使用配置的数据目录。” 此错误表明 Logstash 正在尝试使用与另一个正在运行的实例相同的数据目录。 要解决此问题,您需要为每个 Logstash 实例指定不同的数据目录。您可以在启动 Logstash 时使用 --path.data 选项来执行此操作。例如:

    bin/logstash -f first-pipeline.conf --path.data /path/to/first/instance/data

  2. “错误:地址已在使用中” 当 Logstash 尝试使用已被系统上的另一个进程使用的网络地址(端口)时,会出现此错误。 要解决此问题,您应该指定一个不同的网络端口供 Logstash 使用。您可以通过编辑 Logstash 配置文件 (first-pipeline.conf) 并将端口设置更改为其他可用端口来完成此操作。

  • 找到第二个 Logstash 实例的logstash.yml 配置文件。

  • 在文本编辑器中打开logstash.yml 文件。

  • 搜索或添加以下行以指定 Logstash 的 HTTP 端口。默认情况下,Logstash 使用端口 9600 作为其 HTTP API:

  • 添加

    http.port: 9700
    (9700只是一个例子)保存logstash.yml文件。

  • 使用 -f 标志启动 Logstash 的第二个实例来指定配置文件,并确保它使用更新的logstash.yml:

    bin/logstash -f second-pipeline.conf --path.data /path/to/second/instance/data

© www.soinside.com 2019 - 2024. All rights reserved.