我有 2 个 logstash 服务器,它们从多个 filebeats 监听 5000。只有一个 logstash 服务器正在获取流量。我可以用 nginx 对这些进行负载平衡吗?我可以对弹性搜索服务器集群做同样的事情吗?
问问题
881 次
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-1
,logstash-2
因此它们可以在同一个 5044 端口上。随意根据您的特定 logstash 主机和端口更改这些地址。
于 2021-07-25T08:08:29.607 回答