Amazon CloudWatch Logs ロギング・ドライバ¶
awslogs ロギングドライバは、コンテナのログを Amazon CloudWatch ログ に送信します。ログのエントリは、 AWS マネジメント・コンソール や AWS SDK やコマンドライン・ツール を通して確認できます。
使い方¶
デフォルトのロギング・ドライバを指定するには、Docker デーモンで --log-driver オプションを使います。
docker daemon --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_ID 、 AWS_SECRET_ACCESS_KEY 、 AWS_SESSION_TOKEN です。デフォルトは AWS 共有認証ファイル( root ユーザであれば ~/.aws/credentials )か、(Amazon EC2 インスタンス上で Docker デーモンを実行するのであれば)Amazon EC2 インスタンス・プロファイルです。
認証情報には、次の例のように logs:CreateLogStream と logs: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/