Filebeat负载平衡不起作用

时间:2018-08-01 09:25:07

标签: google-cloud-platform logstash filebeat

我已经在Google Cloud中设置了一个Logstash群集,该群集位于负载均衡器的后面,并使用自动缩放(->当负载达到较高水平时,新实例将自动启动)。

不幸的是,这不适用于Filebeat。 Filebeat仅命中那些在启动Filebeat之前存在的Logstash Vms。

示例: 假设我最初有3个Logstash主机正在运行:

  • Host1
  • Host2
  • Host3

当我启动Filebeat时,它将正确地将消息分发到Host1,Host2和Host3。

现在,自动缩放功能将启动并启动另外两个实例Host4和Host5。

不幸的是,Filebeat仍然仅将消息发送到Host1,Host2和Host3。新的主机Host4和Host5被忽略。

当我现在重新启动Filebeat时,它会向所有5个主机发送消息!

因此,看来Filebeat仅在Filebeat启动时才向那些正在运行的主机发送消息。

我的filebeat.yml看起来像这样:

for i in range(1,11):
    print(*range(i))

我添加了同一台主机(负载均衡器)两次,因为我在论坛上阅读过,否则Filebeat不会负载均衡消息->我可以确认。

但是,负载平衡似乎仍然无法正常工作,例如TTL似乎不被尊重,因为它始终以相同的连接为目标。

我的配置错误吗? Filebeat中的错误?

1 个答案:

答案 0 :(得分:0)

希望您已经解决了这个问题。如果没有,应将流水线设置为0,如下所示:(ttl仅在流水线设置为0时有效)

output.logstash:
  hosts: ["logstash-loadbalancer:5044", "logstash-loadbalancer:5044"]
  worker: 1
  ttl: 2s
  loadbalance: true
  pipelining: 0