向没有负载均衡的多个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输出。

+0

问题是filebeat如何知道我们发送给greylog,而不是logstash(我们在config中指定了logstash)。它甚至不知道关于greylog ... – user3663882

+0

您可以设置一个系统,使Filebeat可以将日志发送到Logstash,然后可以根据需要过滤它并发送给Graylog。 –