私は中央ログサーバーとしてgraylogを使用しています。私はgelf log4j2-appenderを使ってログメッセージをgraylogに送信しています。これは正常に動作します。今私はアプリケーションのドッカー画像を作成しました。私はドッカーコンテナーとしてソフトウェアを実行できます。dockerコンテナ内で実行されるJVMアプリケーションからログをgraylogに送信するにはどうすればよいですか?
ドッカーを使用して、アプリケーションログをドッカー(ドッカーログ{containerId})に取得するためにstdout(console-appender)にもログを記録します。
私はgelf log4j2-appenderに余裕を持ってgelfの代わりにドッカーのログドライバ/プラグインを使うことができます。 (https://docs.docker.com/engine/admin/logging/overview/を参照)
ここでベストプラクティスは何ですか?私はドッカーのログプラグインを使用すると、全体の文字列メッセージをgraylogに送信し、graylogはその文字列からメタ情報を抽出する必要があると思います(このため、log_levelなどのログメッセージ内にこのメタデータを提供する必要があります)。これはgraylog側でより多くのリソース消費を引き起こし、graockogにエラーメッセージだけを送るためのドッカーを設定することもできません。これにより、より多くのネットワークトラフィックが発生します。 log4j2 gelf-appenderを使用すると、メインログメッセージにそれを含めずにログメッセージにいくつかのメタデータを追加することができ、グリーロッグ側で抽出する必要はありません。また、どのメッセージをgraylogに送るかをlog_levelで設定することもできます。または私は間違っていますか?最高の解決策は何ですか、あるいは、グライロッグにログを送信するそれぞれの方法の賛否両論は何ですか?