私は中央ログ サーバーとして graylog を使用しており、ログ メッセージを graylog に送信するために gelf log4j2-appender を使用しています。これはうまくいきます。これで、アプリケーションの Docker イメージを作成し、ソフトウェアを Docker コンテナーとして実行できるようになりました。
docker を使用して、stdout (console-appender) にもログを記録し、アプリケーション ログを docker (docker logs {containerId}) に取得します。
ここで、gelf log4j2-appender を割愛して、代わりに docker log-driver/gelf のプラグインを使用できるかどうか自問します。( https://docs.docker.com/engine/admin/logging/overview/を参照)
ここでのベストプラクティスは何ですか?docker log プラグインを使用すると文字列メッセージ全体が graylog に送信され、graylog はその文字列からメタ情報を抽出する必要があると思います (したがって、log_level などのログ メッセージ内でこのメタ データを提供する必要があります)。これにより、graylog 側でより多くのリソースが消費される可能性があり、エラー メッセージのみを graylog に送信するように docker を構成することもできません。これにより、ネットワーク トラフィックが増加します。log4j2 gelf-appender を使用すると、メインのログ メッセージにメタ データを含めずに、ログ メッセージに追加のメタ データを提供できます。グレイログ側で抽出する必要はありません。log_level によってどのメッセージを graylog に送信するかを構成することもできます。それとも私は間違っていますか?最適な解決策は何ですか、またはログを graylog に送信する各方法の長所と短所は何ですか?