0

各サーバーが 1 日あたり 500 MB を超えるログを生成する負荷分散された j2ee サーバーのセットがあります。サーバーからのログを維持する最良の方法は何ですか。

現在、私には3つの選択肢があります。

  1. 各サーバーで個別のログ フォルダーを維持する
  2. ログをデータベースに書き込む
  3. 別のログ サーバーを維持し、jms を使用してログを書き込む

これは、この問題に対する最適なソリューションです。

他に解決策があれば提案してください。

4

1 に答える 1

0

最適な解決策は主観的なものになる可能性があり、ログを使用して何を達成しようとしているのか、および環境がどのように設定されているかによって異なります。最初に言っておきたいのは、どちらのソリューションを選択しても、ログは無料ではないということです。そのため、ログがシステムに与えるコストと影響について常に考えてください。

サーバーごとに個別のフォルダー:

  • ロード バランシング戦略としてラウンド ロビンを使用する場合、クライアントからの要求は常に異なるサーバーに記録できます。複数のサーバー間でデータ ログ エントリを照合しようとするのは、はるかに困難です。

データベースへの書き込み:

  • これにより、物事が一元化されます
  • データベースのアクセス制御を利用して、ログへのアクセスを許可できます。
  • 書き込みが多いと、データベースに多くの負荷がかかり、同時使用が多い場合に競合が発生する可能性があります。

JMS キューにプッシュします。

  • これは最も柔軟なオプションであり、構築するための優れたベースであると思います。
  • 作業を別のサーバーにオフロードでき、将来のフィルタリングのためにログを解析するのにもう少し時間がかかる場合があります。
  • すべてのログの中央の場所を維持できます
  • ロギングのプロセスから永続化メカニズムを抽象化できます。これは、データベース、ファイル システム、NoSQL DB、または任意のストアにログを記録できることを意味します。
  • キューから出力されるものをフィルタリングするのではなく、キューに記録されるものを最小限に抑えようとするため、キューの前に適切なログ レベルを使用します。
于 2012-10-15T06:00:46.393 に答える