0

我有 2 个 logstash 服务器,它们从多个 filebeats 监听 5000。只有一个 logstash 服务器正在获取流量。我可以用 nginx 对这些进行负载平衡吗?我可以对弹性搜索服务器集群做同样的事情吗?

4

3 回答 3

1

这听起来不像是个问题。

不过,我可能会建议在这两种情况下都使用 haproxy 作为反向代理。Nginx 在快速提供数据方面有很好的表现,但在开箱即用的反向代理方面却没有那么好——与 haproxy 相比,有很多 504 网关超时问题和最小的指标。

您可以为 logstash 和 elasticsearch 服务器组配置相同的代理。

于 2016-08-26T16:54:05.833 回答
0

我让它工作。我有一个没有 --with-stream 标签的 nginx 版本,它允许我代理 tcp 流量。现在工作。

于 2016-08-29T17:31:14.513 回答
0

使用 NginX 为 Logstash 进行负载平衡应该没有问题。请注意,您需要使用stream块而不是http在 tcp/udp 层进行负载平衡。那是因为 filebeat 使用一种叫做 lumberjack 的协议连接 logstash 服务器。该协议位于 tcp 之上。因此,您的 NginX 配置应如下所示:

stream {
    upstream logstash {
        server logstash-1:5044;
        server logstash-2:5044;
    }

    server {
        listen        5044;
        listen   [::]:5044;

        proxy_pass logstash;
    }
}

在这里,我使用 docker 在单独的容器上运行logstash-1logstash-2因此它们可以在同一个 5044 端口上。随意根据您的特定 logstash 主机和端口更改这些地址。

于 2021-07-25T08:08:29.607 回答