我可以使用nginx

时间:2016-08-26 16:02:54

标签: nginx logstash filebeat

我有2个logstash服务器,可以从多个文件节目中监听5000。只有一个logstash服务器正在获取流量。我可以使用nginx对这些进行负载均衡吗?我可以对一组弹性搜索服务器执行相同的操作吗?

3 个答案:

答案 0 :(得分:1)

这听起来不像是一个问题。

我可能会建议在两种情况下使用haproxy作为反向代理。 Nginx在快速提供数据方面拥有良好的代表,但开箱即用的逆向代理效果不佳 - 与haproxy相比,有很多504网关超时问题和最低指标。

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

答案 1 :(得分:0)

我得到了它的工作。我有一个版本的nginx,它是在没有--with-stream标签的情况下构建的,它允许我代理tcp流量。现在有效。

答案 2 :(得分: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 主机和端口随意更改这些地址。