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/