ログを標準出力に出すように変更する。dockerは標準及びエラー出力されたログをホストの/var/lib/docker/containers/<コンテナID>/<コンテナID>-json.logにJSONファイルとして出力する。
docker logsコマンドで見ることのできるログは、上記のファイルである。Docker Remote APIを介して取得することも可能である。
基本方針
- コンテナに依存せず、ログを収集する仕組みを準備する
- ログ収集プロセス自体をコンテナとして動作する
標準出力の設定
各コンテナに割り当てたアプリケーションごとに標準及びエラー出力に設定する。
ログ収集
以下の様なツールを起動するコンテナを準備する。
- Logspout:dockerコンテナ用のログルータ。Docker Remote APIを介して、同一ホストの全コンテナのログを取得する。LogspoutコンテナからSyslogサーバなどへルーティングすると、複数ホスト上で動くコンテナ郡のログをSyslogサーバで確認することができる。
- Fluentd:fluentdにはdocker用のプラグインがある。/var/lib/docker/containers以下のログファイルを読み込んで、別のあるファイルへ出力させる。またはS3や集計サービスへ送信する。
ログ集約サービス
Logentries:SaaS型のログ集約サービス
0 件のコメント:
コメントを投稿