我已经在Google Cloud中设置了一个Logstash群集,该群集位于负载均衡器的后面,并使用自动缩放(->当负载达到较高水平时,新实例将自动启动)。
不幸的是,这不适用于Filebeat。 Filebeat仅命中那些在启动Filebeat之前存在的Logstash Vms。
示例: 假设我最初有3个Logstash主机正在运行:
当我启动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中的错误?
答案 0 :(得分:0)
希望您已经解决了这个问题。如果没有,应将流水线设置为0,如下所示:(ttl仅在流水线设置为0时有效)
output.logstash:
hosts: ["logstash-loadbalancer:5044", "logstash-loadbalancer:5044"]
worker: 1
ttl: 2s
loadbalance: true
pipelining: 0