将filebeat输出发送到多个Logstash服务器,而不进行负载平衡

时间:2016-03-03 20:55:26

标签: logstash hosts elastic-stack graylog filebeat

我正在尝试将相同的日志从Filebeat发送到两个不同的服务器(一个Logstash和一个Graylog服务器),而不进行负载平衡。我们正在公司测试ELK和Graylog并进行测试,我们希望将日志发送到两个不同的堆栈。但是,在 filebeat.yml 文件中,我只看到一个选项,用于提供logstash服务器列表(如果要加载平衡)。否则默认值为false,因此所有日志只会转到随机选择的一个服务器。 这就是我在yml文件中的内容:

### 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

我只会将日志发送到其中一个。

如果我设置 loadbalance:true ,则日志会分发到两个服务器。有没有办法将所有日志发送到两者服务器?

非常感谢。

1 个答案:

答案 0 :(得分:3)

因此,经过一些研究,看起来现在不能将相同的yml文件用于此类目的:https://github.com/elastic/beats/issues/1035

然而,解决这个问题的方法是使用两个不同的.yml文件创建另一个服务(对于Windows)或另一个控制台(在Linux中),每个文件都有不同的logstash输出。