向没有负载均衡的多个Logstash服务器发送filebeat输出
问题描述:
我试图从Filebeat向两个不同的服务器(一个Logstash和一个Graylog服务器)发送相同的日志而没有负载平衡。我们正在我们公司测试ELK和Graylog,为了测试目的,我们希望将日志发送到两个不同的堆栈。但是,在filebeat.yml文件中,如果需要负载平衡,我只会看到一个选项以提供logstash服务器列表。否则,默认值为false,因此所有日志只会随机选择一个服务器。 这是我在YML文件:向没有负载均衡的多个Logstash服务器发送filebeat输出
### Logstash as output
logstash:
# The Logstash hosts
hosts: ["logstash-host:5044"]
# Number of workers per Logstash host.
#worker: 1
# Set gzip compression level.
#compression_level: 3
# Optional load balance the events between the Logstash hosts
#loadbalance: true
如果我将其更改为:
### Logstash as output
logstash:
# The Logstash hosts
hosts: ["logstash-host:5044", "graylog-host:5044"]
# Number of workers per Logstash host.
#worker: 1
# Set gzip compression level.
#compression_level: 3
# Optional load balance the events between the Logstash hosts
#loadbalance: true
我只会得到日志发送到其中的一个。
如果我设置负载均衡:true,日志将分配给两台服务器。有没有办法发送全部日志到都的服务器?
非常感谢。
答
因此,一些研究之后,它看起来像同一个YML文件不能被用于这种目的,现在:https://github.com/elastic/beats/issues/1035
然而,解决的办法是创建另一个服务(Windows)或另一台主机(以Linux)和两个不同的.yml文件,每个文件都有不同的logstash输出。
问题是filebeat如何知道我们发送给greylog,而不是logstash(我们在config中指定了logstash)。它甚至不知道关于greylog ... – user3663882
您可以设置一个系统,使Filebeat可以将日志发送到Logstash,然后可以根据需要过滤它并发送给Graylog。 –