ログ管理
最終更新日: 2020年6月12日
R8 | R9
fluentd はログを集約するためのミドルウェアです。Wagby アプリケーションのログ出力先を fluentd とし、fluentd はその(収集した)ログを特定の出力先に送ります。
これによって、複数の(Wagby アプリケーションが稼働する)Docker コンテナのログ出力を fluentd に集約し、ログ出力先を「ローカルファイル」「クラウド上のストレージ (Amazon S3など)」などにまとめることができます。
fluentd が含まれた Docker イメージをダウンロードします。
はじめに、ホスト側に fluentd が出力するログのフォルダを用意しておきます。ここでは次のようにしました。(作業時のカレントフォルダを Wagby-8.5.6 とします。)
次のコマンドで起動します。
fluentd の設定により、出力先を syslogd や Amazon S3 へと変更することができます。詳細は公式ドキュメントをお読みください。
ビルドした wagbyapp を含んだ Docker イメージを実行します。このとき --log-driver オプションを指定します。
起動後は、ブラウザから次の URL を指定して動作を確認します。admin でログオンできれば、接続できています。
実行すると C:\Wagby-8.5.6\container_log\fluentd に data.b56bd477f81999a06286f8e90783bcc8d.log のファイルが作成され、ログが出力されていることがわかります。(接頭語 data. の後続部分の名前は実行時に定まります。)
sourceがstderrとなっているのがTomcatのログ、stdoutとなっているのがsystem.logです。
複数の Docker コンテナを起動し、同じ fluentd にログを出力させることもできます。この場合はログ中の container_id や container_name が異なっているため、区別できるようになっています。
fluentdとは
Dockerイメージの準備と起動
mkdir container_log\fluentd
docker run -d -p 24224:24224 -p 24224:24224/udp -v C:\Wagby-8.5.6\container_log\fluentd:/fluentd/log --name fluentd fluent/fluentd
ワンポイント
ログドライバを指定して実行する
docker run -d --rm -p 8888:8080 --name wagbyapp --link=db:db -v C:\Wagby-8.5.6\upload_dir:/usr/local/upload_dir -v C:\Wagby-8.5.6\export:/usr/local/export --log-driver=fluentd jasminesoft/wagbyapp
2018-10-10T06:58:51+00:00 62783ee3cfc1 {"container_name":"/wagbyapp","source":"stderr","log":"10-May-2018 15:58:51.911 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [\"ajp-nio-8009\"]","container_id":"62783ee3cfc14efa6efe8a3f4218c496a5c3e166bdeca9048579a6b474a590ab"}
2018-10-10T06:58:51+00:00 62783ee3cfc1 {"container_id":"62783ee3cfc14efa6efe8a3f4218c496a5c3e166bdeca9048579a6b474a590ab","container_name":"/wagbyapp","source":"stderr","log":"10-May-2018 15:58:51.919 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 23962 ms"}
...
2018-10-10T07:00:53+00:00 62783ee3cfc1 {"container_id":"62783ee3cfc14efa6efe8a3f4218c496a5c3e166bdeca9048579a6b474a590ab","container_name":"/wagbyapp","source":"stdout","log":"2018-10-10 16:00:53 [INFO net.fortuna.ical4j.util.Configurator