无法设置从 filebeat 到 logstash 的管道

Unable to set pipeline from filebeat to logstash

我在 docker 容器中有 filebeat 运行,在另一个 docker 容器中有 logstash 运行。

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

遇到以下错误

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

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

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

应该使用日志存储的docker ip还是使用单独的IP?

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

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

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

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