CloudWatch Logs を設定したはずなのに、
-
ログが一切表示されない
-
ロググループが作成されない
-
ロググループはあるが中身が空
といったトラブルは非常に多く発生します。
まず結論から言うと、原因はほぼ以下に集約されます。
AWS CloudWatch Logs とは?基本の役割とできること
AWS CloudWatch Logs とは、
AWS上で動作するシステムやアプリケーションのログを一元的に収集・保存・可視化できるログ管理サービスです。
EC2・ECS・Lambda などから出力されるログを自動的に集約し、
トラブルシューティングや監視、原因調査に利用できます。
CloudWatch Logs でできること
-
サーバ・アプリケーションログの集中管理
-
障害発生時の原因調査(エラー・例外確認)
-
ログの期間保存・検索・フィルタリング
-
メトリクス化・アラーム連携
-
S3 / OpenSearch などへの連携
ログの基本構造
CloudWatch Logs は次の構造で管理されます。
|
1 2 3 4 |
ロググループ └ ログストリーム └ ログイベント(1行1行のログ)<code class="whitespace-pre!"> |
-
ロググループ:アプリやサービス単位の入れ物
-
ログストリーム:インスタンス・コンテナ・実行単位
-
ログイベント:実際のログ本文
まず確認すべき結論(9割はここ)
CloudWatch Logs が出力されない原因は、ほとんどが次のいずれかです。
-
IAMロールの権限不足
-
ログ出力設定がされていない
-
リージョンやロググループの見間違い
-
エージェントやサービスが起動していない
-
アプリケーション自体がログを出していない
以下で順に解説します。
原因① IAMロールに CloudWatch Logs の権限がない
症状
-
ロググループが作成されない
-
ログストリームが生成されない
-
エラーも表示されず、静かに失敗する
確認ポイント
対象リソース(EC2 / ECS / Lambda)に、
CloudWatch Logs への書き込み権限が付与されているかを確認します。
最低限必要な権限例:
|
1 2 3 4 5 6 7 8 9 |
{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } |
対処法
-
一時的に
CloudWatchLogsFullAccessを付与して動作確認 -
問題なければ最小権限ポリシーに調整
原因② CloudWatch Logs の出力設定がされていない
EC2(CloudWatch Agent 利用時)
ありがちなミスは以下です。
-
Agentをインストールしただけで設定未反映
-
設定ファイル(config.json)が未適用
確認
|
1 |
sudo systemctl status amazon-cloudwatch-agent |
対処
|
1 2 3 |
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config -m ec2 \ -c file:/opt/aws/amazon-cloudwatch-agent/etc/config.json -s |
ECS(Fargate / EC2)
タスク定義にログ設定がないケースです。
|
1 2 3 4 5 6 7 8 |
"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/sample", "awslogs-region": "ap-northeast-1", "awslogs-stream-prefix": "ecs" } } |
-
awslogsドライバ未指定 -
ロググループ名の指定ミス
がよくある原因です。
Lambda
通常は自動でログ出力されます。
出ない場合は 実行ロールの権限不足 がほぼ原因です。
原因③ リージョン・ロググループの見間違い
よくある例
-
東京リージョンで実行 → 別リージョンを見ている
-
/aws/lambda/...と/ecs/...を見間違える
対処法
-
実行リソースのリージョンを再確認
-
CloudWatch コンソール左上のリージョン表示を確認
原因④ エージェントやサービスが起動していない
EC2
|
1 |
ps aux | grep cloudwatch |
|
1 |
sudo systemctl restart amazon-cloudwatch-agent |
ECS
-
タスクが
STOPPEDになっていないか -
コンテナが即時終了していないか
原因⑤ アプリケーションがログを出していない
意外と多い落とし穴です。
-
ログレベルが
ERRORのみ -
標準出力(stdout)に出していない
-
ファイルログのみで CloudWatch 未連携
対処法
-
一時的に
INFO/DEBUGレベルへ変更 -
直接ログ出力して動作確認
切り分け用チェックリスト
-
IAMロールに logs:PutLogEvents 権限がある
-
ログ出力設定(Agent / awslogs)が有効
-
リージョンが一致している
-
サービス・タスクが起動している
-
アプリが実際にログを出している
まとめ
CloudWatch Logs が出力されない原因の多くは、
AWS側の不具合ではなく、設定漏れ・見落とし
です。
特に重要なのは以下の3点です。
-
IAMロールの権限
-
ログ出力設定
-
リージョンの一致
この3点を押さえるだけで、ほとんどのケースは解決できます。

