在没有负载平衡的情况下将 filebeat 输出发送到多个 Logstash 服务器

Send filebeat output to multiple Logstash servers without load balancing

我试图在没有负载平衡的情况下将相同的日志从 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,日志将分发到两个服务器。有没有办法将所有日志发送到两个服务器?

非常感谢。

所以经过一些研究,看起来同一个 yml 文件现在不能用于这样的目的:https://github.com/elastic/beats/issues/1035

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