【问题标题】:Unable to set pipeline from filebeat to logstash无法设置从 filebeat 到 logstash 的管道
【发布时间】:2017-04-14 14:40:59
【问题描述】:

我的 filebeat 在 docker 容器中运行,而 logstash 在不同的 docker 容器中运行。

filebeat.yml的配置中,logstash的IP设置为logstash的IP为http://:5044。

面临以下错误

WARN DNS 查找失败“http://172.17.0.2:5044”:查找http://localhost:5044/:无效域名 2017/04/14 14:16:51.537977 single.go:126:INFO 连接错误发布事件(重试):查找http://localhost:5044/:无效域名 2017/04/14 14:16:51.538000 single.go:152: INFO 发送失败

filebeat.yml 关于日志存储配置的配置

output: 
 logstash: 
  enabled: true
 hosts: 
  - "172.17.0.2:5044"

应该使用log stash的docker ip还是使用单独的IP?

【问题讨论】:

  • 这是配置问题。请提供您正在使用的配置。
  • 在 filebeat.yml 中,logstash 作为输出配置为仅以下字段未注释,### Logstash 作为输出 logstash: # The Logstash hosts hosts: ["172.17.0.2:5044/"] 此外,配置了探矿者到如下路径: - /var/log/*.log 除了这两个之外,filebeat.yml 中的任何字段都没有被取消注释和使用。

标签: elastic-stack filebeat


【解决方案1】:

Beats 和 Logstash 之间的连接不是基于 HTTP 协议,因此不要使用 URL 配置 hosts 选项。每个 Logstash 主机的格式应为 host:port。正如您从错误消息中看到的那样,它正在尝试解析您指定为错误的域名的完整值(即,它相当于nslookup "http://localhost:5044/")。

问题中显示的配置中的缩进也已关闭。 hosts 设置应该是logstash 的子级,因此需要缩进。尝试使用它来避免任何缩进问题:

output.logstash.hosts: ['logstash:5044']

如果 Logstash 和 Filebeat 容器都在同一个 Docker 环境中,那么您可以链接这两个容器并使用 Logstash 容器的名称作为配置文件中的主机名。如果它们位于不同的主机上,那么您需要从 LS 公​​开端口 5044 并在 Filebeat 配置中使用主机的 IP。

【讨论】:

  • 缩进是复制粘贴编辑问题。将尝试您的建议和更新。
猜你喜欢
  • 2019-08-25
  • 2020-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多