2016-12-31 8 views
0

ELK Stackと知り合ったのはわずか数日です。私たちはエンタープライズアプリケーションでこれを使用しようとしていますが、アーキテクチャ上の問題があります。 &は、ELKとそのアーキテクチャのいくつかのユースケース、especially in linkedinを読んでいますが、ネットワークエラーの潜在的な影響については誰も話していません。ELKスタックのネットワークフォールトトレラントアーキテクチャ

通常、ログがファイルに書き込まれる従来のアプリケーションでは、システムクラッシュの原因となる唯一の理由は、まれにDisk is Fullというエラーです。しかし、ログがネットワーク経由で送信される集中ログシステムでは、ネットワークエラーが非常に一般的なので、システムは非常にクラッシュしやすいと思います!特に信頼できないネットワークを持つ隊員のために/のために。さらに

、私は多くのELKユースケースで見てきたように、JMS ProviderのすなわちKafka又はRedisPub/Sub Providerにおける単一のインスタンスはELKと共に使用されます。私は以前の問題に加えて、JMS Providerはこれらのアーキテクチャでsingle point of failureだと思います!そうでなければ、それは集まります。

は、私たちは、単一ノード上で各Shipper[s]と一緒KafkaようJMS Providerを使用する場合(各ノードごとに1 Kafka)を次のように我々は両方の問題を取り除くことができると思います。

((log-generator)+ (logstash)? Kafka)* -> Logstash -> Elasticsearch -> Kibana

、聞かせてくださいこのアーキテクチャが理にかなっているかどうかは分かりますか?
それ以外のフォールトトレラントアーキテクチャは歓迎されます:)

答えて

1

この回答は、どのようなリスクが発生するか、そのリスクに遭遇する可能性がある場所、最終。

ローカルファイルに書き込む場合、Filebeatを使用してファイルをリモートログスタッシュに送信できます。そのlogstash(または下流のElasticsearchクラスタ)がバックプレッシャを適用すると、filebeatはログの送信を遅くしたり停止したりします。これにより、リモートマシン上に分散キャッシュが提供されます(ブローカは必要ありません)。欠点は、停止が長期間続いた場合、ログファイルがファイルビートのグロブパターンの下から回転され、その後出荷されないことです。

複数のlogstashインスタンスを使用すると、ファイルビートをそれらのリストに配信するように設定できます。これにより、存続可能性が一部提供されます。 snmptraps、syslogなどのような「1回限りの」イベントがある場合、潜在的な停止についてもう少し考えたいと思うでしょう。

私は、これらの種類のイベントに対して別々のlogstashインスタンスを実行するために使用しました。メインログスタッシュ(起動時)は、キューから読み取り、イベントを処理します。これにより、イベントを失う心配なしに新しいlogstash設定を起動することができました。最近は、(snmptrapdなどで)ファイルにイベントを書き込もうとしており、24x7x365を実行しているログ・スタットには依存しません。

+0

答えをありがとう。私は、イベントが 'syslog'(これは同期とUDPの両方)であるとのこの疑問で質問しましたが、その後、私はそれが正しい経路ではないと結論付けました。さて、私はログをローカルファイルに書き込んで、何とかそれらをディスパッチする必要があることに同意します。ログを送出するために、私はKafkaとRedisの両方の出力プラグインを持っているのでlogstashを使うことができますが、 'filebeat'を使っても可能かどうか知りたいのですが? logstashとfilebeatの違いは何ですか? – faghani

+0

logstashは、ログの読み取り、処理、および出荷が可能なフル機能のシステムです。filebeatは軽量プログラムで、ほとんどの場合読み書きができます(ただし、複数行のレコードを組み合わせるなどの重要なリモート側の機能があります)。 –

関連する問題