カテゴリ: AWS CloudWatch 更新日: 2026/08/23

AWS CloudWatchでメトリクスが表示されない?原因と解決策を徹底解説

537
【AWS】CloudWatchのメトリクスが表示されない原因まとめ

先生と生徒の会話形式で理解しよう

生徒

「AWSでシステムを構築したのですが、CloudWatchの画面を見てもグラフにデータが表示されなくて困っています。設定は間違っていないはずなのですが...。」

先生

「CloudWatchでメトリクスが表示されない原因は、権限不足やエージェントの設定、あるいは表示期間の選択ミスなど、いくつかのパターンが考えられますね。」

生徒

「どこから確認していけば良いでしょうか?初心者でもチェックできるポイントを教えてください!」

先生

「もちろんです。まずはよくある原因を一つずつ整理して、解決方法を見ていきましょう!」

1. CloudWatchメトリクスの基本構造

1. CloudWatchメトリクスの基本構造
1. CloudWatchメトリクスの基本構造

CloudWatchは、AWSのリソースやアプリケーションを監視するためのサービスです。メトリクスとは、システムのパフォーマンスに関する時系列のデータポイントを指します。例えば、EC2インスタンスのCPU使用率や、ディスクの読み書き速度などがこれに該当します。

メトリクスが表示されない場合、まず理解しておくべきなのは「標準メトリクス」と「カスタムメトリクス」の違いです。標準メトリクスはAWSが自動的に収集するものですが、メモリ使用率やディスク空き容量などは標準では収集されず、カスタムメトリクスとして設定する必要があります。

2. EC2インスタンスのメトリクスが表示されない主な原因

2. EC2インスタンスのメトリクスが表示されない主な原因
2. EC2インスタンスのメトリクスが表示されない主な原因

EC2を利用している際、CPU使用率は見えるのにメモリ使用率が表示されないというケースが非常に多いです。これは、ハイパーバイザーレベルで取得できる情報と、OS内部でしか分からない情報があるためです。

OS内部の情報を取得するには、CloudWatch Agentをインストールし、正しく設定する必要があります。エージェントが動いていない、あるいは設定ファイルに不備がある場合、メトリクスは送信されません。また、IAMロールの権限が不足していると、エージェントがデータを書き込むことができず、結果としてグラフが空のままになります。

3. IAMロールと権限設定の確認

3. IAMロールと権限設定の確認
3. IAMロールと権限設定の確認

最も頻繁に発生するトラブルの一つが、IAMポリシーの設定ミスです。EC2などのリソースがCloudWatchにデータを送信するためには、適切な「許可」が必要です。具体的には「CloudWatchAgentServerPolicy」というマネージドポリシーがEC2インスタンスに関連付けられたIAMロールに付与されているかを確認してください。

もし、独自のポリシーを作成している場合は、PutMetricDataアクションが許可されているかを確認しましょう。これが許可されていないと、どんなにエージェントが頑張ってデータを送ろうとしても、AWS側で拒絶されてしまいます。

AWSの基本用語や仕組みを、図解でサクッと理解したい人には、 入門の定番書がこちらです。

AWSの基本が全部わかる教科書をAmazonで見る

※ Amazon広告リンク

4. CloudWatch Agentのステータス確認コマンド

4. CloudWatch Agentのステータス確認コマンド
4. CloudWatch Agentのステータス確認コマンド

エージェントが正常に動作しているかを確認するには、Linuxサーバーにログインしてコマンドを実行するのが一番確実です。以下のコマンドを使って、サービスが起動しているかチェックしてみましょう。


sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status
{
  "status": "running",
  "starttime": "2026-03-23T10:00:00Z",
  "configstatus": "configured"
}

もしステータスが「stopped」になっている場合は、設定ファイルを指定して起動する必要があります。設定ファイルが正しい場所に配置されているかも併せて確認してください。

5. 名前空間とディメンションの指定ミス

5. 名前空間とディメンションの指定ミス
5. 名前空間とディメンションの指定ミス

メトリクスを検索する際、「名前空間(Namespace)」や「ディメンション(Dimension)」を間違えていると、データが存在していても表示されません。デフォルトでは「CWAgent」という名前空間にカスタムメトリクスが保存されますが、設定ファイルで任意の名前に変更している場合があります。

また、インスタンスIDやイメージIDなどのディメンションが正確に一致していないと、フィルタリングの結果、何も表示されない状態になります。マネジメントコンソールの「すべてのメトリクス」タブから、ドリルダウン形式でデータが存在するか探してみるのが良い方法です。

6. 期間と統計設定の落とし穴

6. 期間と統計設定の落とし穴
6. 期間と統計設定の落とし穴

CloudWatchのグラフ画面右上にある「期間」の選択に注意してください。例えば、直近5分間のデータを表示したいのに、期間が「1時間」に設定されていると、最新のデータポイントがまだ集計されておらず、グラフが途切れて見えることがあります。

また、統計方法(平均、合計、最大、最小など)が適切かどうかも重要です。一度も発生していないイベントを「合計」で表示しようとしても、数値は0になります。表示されないのではなく、値が0であるためにグラフの底に張り付いているだけという可能性も疑ってみましょう。

7. ネットワーク設定とエンドポイントの確認

7. ネットワーク設定とエンドポイントの確認
7. ネットワーク設定とエンドポイントの確認

プライベートサブネットに配置されたインスタンスからメトリクスを送信する場合、インターネットゲートウェイやNATゲートウェイ経由でAWSのパブリックエンドポイントにアクセスできる必要があります。もし外部への通信が制限されている環境であれば、VPCエンドポイント(インターフェイス型)を作成して、CloudWatchへの経路を確保しなければなりません。

セキュリティグループの送信ルール(アウトバウンド)で、HTTPS(ポート443)の通信が許可されているかも確認のポイントです。通信が遮断されていると、エージェントのログに「Connection Timeout」などのエラーが出力されます。

8. ログファイルからの原因特定方法

8. ログファイルからの原因特定方法
8. ログファイルからの原因特定方法

どうしても原因がわからないときは、CloudWatch Agentが出力しているログファイルを直接確認しましょう。Linuxの場合、通常は以下のパスにログが保存されています。


tail -f /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
2026-03-23T11:00:00Z E! [outputs.cloudwatchlogs] Private key not found
2026-03-23T11:00:05Z W! [outputs.cloudwatch] Error writing to CloudWatch: AccessDenied

このようにログを確認することで、「認証エラー」なのか「ネットワークエラー」なのかを即座に判断できます。エラーメッセージをコピーして検索することで、より具体的な解決策にたどり着けるはずです。

9. 設定ファイルの記述ミスと反映方法

9. 設定ファイルの記述ミスと反映方法
9. 設定ファイルの記述ミスと反映方法

CloudWatch Agentの設定はJSON形式で記述されます。カンマの打ち忘れや括弧の閉じ忘れといった単純な構文エラーがあると、エージェントは起動しません。設定ファイルを編集した後は、必ずエージェントを再起動して設定を反映させましょう。

以下は、基本的なメモリ監視を有効にするための設定例です。これを参考に、自分の環境の設定と比較してみてください。


// これは設定のイメージを説明するための擬似的な構造です
{
    "metrics": {
        "metrics_collected": {
            "mem": {
                "measurement": [
                    "mem_used_percent"
                ],
                "metrics_collection_interval": 60
            }
        }
    }
}

設定を書き換えた後は、コマンドラインから設定の適用を行い、正常に読み込まれたかを確認するステップを忘れないようにしましょう。

10. 無料枠とデータ保持期間の制限

10. 無料枠とデータ保持期間の制限
10. 無料枠とデータ保持期間の制限

最後に、AWSの仕様による制限についても触れておきます。CloudWatchのメトリクスには保持期間があります。1分間隔のデータは15日間、5分間隔のデータは63日間保持されます。それ以上古いデータを見ようとしても、自動的に削除されているため表示されません。

また、古いインスタンスを削除(ターミネート)した場合、そのインスタンスに関連付けられていたメトリクスも一定期間が経過するとコンソールから見えなくなります。過去のトラブル調査を行う際は、データの保持期間内に確認を行うようにしましょう。

AWS CloudWatchの一覧へ
新着記事
Flutter
FlutterのInheritedWidgetとは?仕組みと活用方法
FlutterのInheritedWidgetとは?仕組みと活用方法を初心者向けにやさしく解説
Flutter
Blocパターンの仕組みと導入方法をわかりやすく解説
FlutterのBlocパターンを完全ガイド!初心者でもわかる状態管理と導入方法
Python
NumPyのdstackの使い方!3次元配列を結合する方法
NumPyのdstackの使い方!3次元配列を結合する方法
Python
Seaborn catplotの基本的な使い方と主要引数(kind・hue・col・row)を徹底解説
Seaborn catplotの基本的な使い方と主要引数(kind・hue・col・row)を徹底解説
人気記事
Flutter
Flutterの開発に必要なもの!パソコン・ツール・OSなど準備まとめ
Flutterの開発に必要なもの!パソコン・ツール・OSなど準備まとめ
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク