ECS のコンテナログがどのようなログストリーム名で記録されるか教えてください
困っていた内容
Fargate で ECS タスクを実行する予定です。
タスク定義で awslogs ログドライバーを設定したので、ログは CloudWatch Logs に送信される認識です。
CloudWatch Logs にはログストリームがありますが、どのような名前で記録されますか?教えてください。
Amazon ECS ログを CloudWatch に送信する - Amazon Elastic Container Service
どうなるの?
ログストリーム名は次のルールで設定されます。
<プレフィックス値>/<コンテナ名>/<タスク ID>
# 例
hato-prefix/hato-container/36374d1d33ad4ec0b5a9980f30402ead
ECS タスク定義で awslogs ログドライバーを設定すると、コンテナが STDOUT 等に出力したログを、CloudWatch Logs に送信します。
送信先となるロググループ名は、各コンテナのlogConfiguration
設定に応じて設定されますが、ログストリーム名は上記のルールとなります。
なお、EC2 起動タイプの場合はawslogs-stream-prefix
が任意であり、指定しない場合はコンテナ ID がログストリーム名となります。
また、ログストリーム名を完全に制御したい場合は awslogs ログドライバーの代わりに FireLens のご利用もご検討ください。
- FireLens のログ送信先を CloudWatch Logs に設定する - Amazon CloudWatch
- Firelens の発表 – コンテナログの新たな管理方法 | Amazon Web Services ブログ
参考資料
The log stream name used by Amazon ECS has the <awslogs-stream-prefix>/<container_name>/<task_id> format.
To configure which log stream should be used, you can specify the awslogs-stream log option. If not specified, the container ID is used as the log stream.
(必須) awslogs-stream-prefix キーの場合は、自動入力された値をそのままにします。