私はグリッドとHPCの領域で多くの作業を行い、数百(または場合によっては数千)のサーバに分散されたシステムで最も大きな課題の1つがログファイルを分析しています。大量に分散されたシステムのログファイル
現在、ログファイルは各ブレードのディスクにローカルに書き込まれますが、たとえば、UDPアペンダーを使用してロギング情報を公開し、集中的に収集することも考えられます。
可能な限りリアルタイムで問題を特定できるようにすることを目的として、私たちは何をすべきですか?
私はグリッドとHPCの領域で多くの作業を行い、数百(または場合によっては数千)のサーバに分散されたシステムで最も大きな課題の1つがログファイルを分析しています。大量に分散されたシステムのログファイル
現在、ログファイルは各ブレードのディスクにローカルに書き込まれますが、たとえば、UDPアペンダーを使用してロギング情報を公開し、集中的に収集することも考えられます。
可能な限りリアルタイムで問題を特定できるようにすることを目的として、私たちは何をすべきですか?
まず、NTPを使用してシステム内のすべてのクロックを同期させます。
第2に、(UDPアペンダーのように)単一の場所にログを収集する場合は、ログに実際に役立つ情報が十分にあることを確認してください。少なくとも、ログを生成したサーバー、発生した時刻、およびメッセージを含めます。任意の種類のトランザクションIDまたはジョブIDタイプの概念がある場合は、それも含めます。
あなたがUDP Appenderについて言及して以来、私はlog4j(またはその兄弟の1つ)を使用していると推測しています。 Log4jにはMDCクラスがあり、余分な情報を処理スレッドに渡すことができます。それは余分な情報の一部を収集し、それを伝えるのを助けることができます。
Apacheを使用していますか?もしそうなら、mod_log_spreadを見ることができるかもしれませんが、維持管理するには大きすぎるインフラがあるかもしれません。もう一つのオプションは、あなたのログメッセージを "ブロードキャスト"または "マルチキャスティング"し、それらのフィードを購読して照合する専用のロギングサーバを持つことです。
btw、なぜUDP?あなたのメッセージを失うことはできますか? –