複数のファイルビートから 5000 をリッスンする 2 つの logstash サーバーがあります。logstash サーバーの 1 つだけがトラフィックを取得しています。これらをnginxで負荷分散できますか? Elasticsearch サーバーのクラスターで同じことを行うことはできますか?
3 に答える
それは問題のようには聞こえません。
ただし、どちらの場合もリバース プロキシとして haproxy を使用することをお勧めします。Nginx は、データを高速に提供するための優れた担当者を持っていますが、すぐに使用できるリバース プロキシには適していません。504 ゲートウェイのタイムアウトの問題が多く、haproxy と比較して最小限のメトリックです。
logstash と elasticsearch サーバー グループに同じプロキシを使用するように構成できます。
私はそれを働かせました。--with-stream タグなしでビルドされたバージョンの nginx を使用して、tcp トラフィックをプロキシできるようにしました。今すぐ動作します。
Logstash に NginX を使用して負荷分散を行うのに問題はないはずです。tcp/udp レイヤーで負荷分散を行うstream
代わりに、ブロックを使用する必要があることに注意してください。http
これは、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 ホストとポートに基づいて、これらのアドレスを自由に変更してください。