2015年6月11日木曜日

docker ログ出力の設定

dockerでコンテナを作成する際は、ログをコンテナ内に残さないほうが良い。

ログを標準出力に出すように変更する。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 件のコメント:

コメントを投稿