Amazon CloudWatch Logs ロギング・ドライバ

awslogs ロギングドライバは、コンテナのログを Amazon CloudWatch ログ に送信します。ログのエントリは、 AWS マネジメント・コンソールAWS SDK やコマンドライン・ツール を通して確認できます。

使い方

デフォルトのロギング・ドライバを指定するには、Docker デーモンで --log-driver オプションを使います。

dockerd --log-driver=awslogs

特定のコンテナに対するロギング・ドライバの指定は、 docker run--log-driver オプションを使います。

docker run --log-driver=awslogs ...

Amazon CloudWatch ログのオプション

Amazon CloudWatch Logs ロギング・ドライバのオプションを指定するには、 --log-opt NAME=VALUE フラグを使います。

awslogs-region

awslogs ロギング・ドライバを使うには、リージョンの指定が必須です。リージョンを指定するにはログのオプションで awslogs-region を指定するか、環境変数 AWS_REGION を使います。

docker run --log-driver=awslogs --log-opt awslogs-region=us-east-1 ...

awslogs-group

log group を使う場合は、 awslogs-group ログ・オプションを指定します。 awslogs-group ログ・オプションで log group を指定します。

docker run --log-driver=awslogs --log-opt awslogs-region=us-east-1 --log-opt awslogs-group=myLogGroup ...

awslogs-stream

log stream を使う場合は、 awslogs-stream ログ・オプションを指定します。指定しなければ、コンテナ ID がログ・ストリームのために使われます。

注釈

ログ・グループに使うログ・ストリームはコンテナごとに指定すべきです。複数のコンテナが同じログ・ストリームを並行して使用すると、ログ記録性能が低下します。

認証情報

Docker デーモンが awslogs ロギング・ドライバを使う時は、 AWS の認証情報(credentials)の指定が必要です。認証情報とは環境変数 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN です。デフォルトは AWS 共有認証ファイル( root ユーザであれば ~/.aws/credentials )か、(Amazon EC2 インスタンス上で Docker デーモンを実行するのであれば)Amazon EC2 インスタンス・プロファイルです。

認証情報には、次の例のように logs:CreateLogStreamlogs:PutLogEvents の各アクションに対するポリシー追加が必要です。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

参考

Amazon CloudWatch Logs logging driver

https://docs.docker.com/engine/admin/logging/awslogs/