アットウィキロゴ

[AWS]「CloudWatch」CloudWatch監視設定【AlmaLinux 9】

コンソール上で取得したメトリクスの確認および、アラームの設定を行います。

CloudWatchエージェントのインストールや設定については、以下のページを参照して下さい。

  • サービスメニューより、「管理とカバナンス」→「CloudWatch」を実行します。

1. カスタムメトリクスの指定

  • 該当のダッシュボードをオープンします。(存在しない場合は作成します。)
  • 「ウィジェットの追加」をクリックします。
  • ウィジェットタイプ「線」を選択して、「次へ」ボタンをクリックします。
  • 「メトリクス」を指定して「設定」ボタンをクリックします。

(1) Disk関連
「CWAgent」→「ImageId, InstanceId, InstanceType, device, fstype, path」を選択します。
メトリクス名 内     容
disk_used_percent ディスクスペース合計に対する使用済みの割合。(単位:パーセント)

(2) CPU関連
「CWAgent」→「ImageId, InstanceId, InstanceType, cpu」を選択します。
メトリクス名 内     容
cpu_usage_system CPUがシステムに対する使用済みの割合。(単位:パーセント)
「EC2」→「メトリクス別インスタンス」を選択します。
メトリクス名 内     容
CPUUtilization EC2 インスタンスを実行するために使用する物理的な CPU 時間の割合。(単位:パーセント)

(3) Memory関連
「CWAgent」→「ImageId, InstanceId, InstanceType」を選択します。
メトリクス名 内     容
mem_used_percent 現在使用中のメモリの割合。(単位:パーセント)
swap_used_percent 現在使用中のスワップメモリの割合。(単位:パーセント)

「ウィジェットの作成」ボタンをクリックします。

※メトリクスの詳細については、LinuxインスタンスでCloudWatchエージェントにより収集されるメトリクス を参照のこと。

2. プロセス監視

(1) httpd
httpdのプロセス監視を行います。
EC2にログインして以下のファイルを作成します。
# cd /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d
# vi AmazonCloudWatch-httpd.json
{
  "metrics": {
    "metrics_collected": {
      "procstat": [
        {
          "pattern": "httpd",
          "measurement": ["pid_count"],
          "metrics_collection_interval": 60
        }
      ]
    }
  }
} 
# systemctl restart amazon-cloudwatch-agent.service

  • 該当のダッシュボードをオープンします。(存在しない場合は作成します。)
  • 「ウィジェットの追加」をクリックします。
  • ウィジェットタイプ「線」を選択して、「次へ」ボタンをクリックします。
  • 「メトリクス」を指定して「設定」ボタンをクリックします。
  • 「カスタム名前空間」の「CWAgent」をクリックします。
「CWAgent」→「ImageId,InstanceId,InstanceType,pattern,pid_finder」を選択します。
pattern メトリクス名 内     容
httpd procstat_lookup_pid_count httpdのプロセス数を監視
「ウィジェットの作成」ボタンをクリックします。

3. amazon-cloudwatch-agentパラメータ

# cd /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d
(1) AmazonCloudWatch-linux.json
{
        "agent": {
                "metrics_collection_interval": 60,
                "run_as_user": "root"
        },
        "metrics": {
                "append_dimensions": {
                        "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
                        "ImageId": "${aws:ImageId}",
                        "InstanceId": "${aws:InstanceId}",
                        "InstanceType": "${aws:InstanceType}"
                },
                "metrics_collected": {
                        "collectd": {
                                "metrics_aggregation_interval": 60
                        },
                        "cpu": {
                                "measurement": [
                                        "cpu_usage_idle",
                                        "cpu_usage_iowait",
                                        "cpu_usage_user",
                                        "cpu_usage_system"
                                ],
                                "metrics_collection_interval": 60,
                                "resources": [
                                        "*"
                                ],
                                "totalcpu": false
                        },
                        "disk": {
                                "measurement": [
                                        "used_percent",
                                        "inodes_free"
                                ],
                                "metrics_collection_interval": 60,
                                "resources": [
                                        "*"
                                ]
                        },
                        "diskio": {
                                "measurement": [
                                        "io_time"
                                ],
                                "metrics_collection_interval": 60,
                                "resources": [
                                        "*"
                                ]
                        },
                        "mem": {
                                "measurement": [
                                        "mem_used_percent"
                                ],
                                "metrics_collection_interval": 60
                        },
                        "swap": {
                                "measurement": [
                                        "swap_used_percent"
                                ],
                                "metrics_collection_interval": 60
                        }
                }
        }
} 
(2) AmazonCloudWatch-httpd.json
{
  "metrics": {
    "metrics_collected": {
      "procstat": [
        {
          "pattern": "httpd",
          "measurement": ["pid_count"],
          "metrics_collection_interval": 60
        }
      ]
    }
  }
} 

4. アラームの作成

(1) ディスク容量使用率
ディスク容量の使用率が10分間に2回、80%以上になったらアラームを通知させるように設定します。
  • 左側のローカルメニューより「アラーム」をクリックします。
  • 「アラームの作成」ボタンをクリックします。
  • 「メトリクスの選択」をクリックします。
  • 「カスタム名前空間」の「CWAgent」をクリックします。
  • 「ImageId, InstanceId, InstanceType, device, fstype, path」をクリックします。
  • 「disk_used_percent」にチェックを付けて、「メトリクスの選択」ボタンをクリックします。
■メトリクスと条件の指定
メトリクス名 ディスク容量使用率
統計 最大
期間 5分
■条件
しきい値の種類 静的
ディスク容量使用率オーバー が次の時... 以上
>=しきい値
.. よりも 80
■その他の設定
アラームを実行するデータポイント 2 / 2
欠落データの処理 欠落データを適正(しきい値を超えていない)として処理

  • 「次へ」ボタンをクリックします。

■通知
アラーム状態トリガー アラーム状態
SNSトピックの選択 既存のSNSトピックを選択
通知の送信先 (既存のSNSトピック名)

  • 「次へ」ボタンをクリックします。

■名前と説明
アラーム名 ディスク容量使用率オーバー
アラームの説明 (任意)

  • 「次へ」ボタンをクリックします。
  • 「アラームの作成」ボタンをクリックします。

(2) メモリ使用率
メモリの使用率が10分間に2回、90%以上になったらアラームを通知させるように設定します。
  • 左側のローカルメニューより「アラーム」をクリックします。
  • 「アラームの作成」ボタンをクリックします。
  • 「メトリクスの選択」をクリックします。
  • 「カスタム名前空間」の「CWAgent」をクリックします。
  • 「ImageId,InstanceId,InstanceType」をクリックします。
  • 「mem_used_percent」にチェックを付けて、「メトリクスの選択」ボタンをクリックします。
■メトリクスと条件の指定
メトリクス名 メモリ使用率
統計 最大
期間 5分
■条件
しきい値の種類 静的
ディスク容量使用率オーバー が次の時... 以上
>=しきい値
.. よりも 90
■その他の設定
アラームを実行するデータポイント 2 / 2
欠落データの処理 欠落データを適正(しきい値を超えていない)として処理

  • 「次へ」ボタンをクリックします。

■通知
アラーム状態トリガー アラーム状態
SNSトピックの選択 既存のSNSトピックを選択
通知の送信先 (既存のSNSトピック名)

  • 「次へ」ボタンをクリックします。

■名前と説明
アラーム名 メモリ使用率オーバー
アラームの説明 (任意)

  • 「次へ」ボタンをクリックします。
  • 「アラームの作成」ボタンをクリックします。

(3) httpdプロセス数
httpdのプロセス数が10分間に2回、0になったらアラームを通知させるように設定します。
  • 左側のローカルメニューより「アラーム」をクリックします。
  • 「アラームの作成」ボタンをクリックします。
  • 「メトリクスの選択」をクリックします。
  • 「カスタム名前空間」の「CWAgent」をクリックします。
  • 「ImageId,InstanceId,InstanceType,pattern,pid_finder」をクリックします。
  • 「procstat_lookup_pid_count」にチェックを付けて、「メトリクスの選択」ボタンをクリックします。
■メトリクスと条件の指定
メトリクス名 procstat_lookup_pid_count
統計 最大
期間 5分
■条件
しきい値の種類 静的
ディスク容量使用率オーバー が次の時... 以上
<しきい値
.. よりも 1
■その他の設定
アラームを実行するデータポイント 2 / 2
欠落データの処理 欠落データを適正(しきい値を超えていない)として処理

  • 「次へ」ボタンをクリックします。

■通知
アラーム状態トリガー アラーム状態
SNSトピックの選択 既存のSNSトピックを選択
通知の送信先 (既存のSNSトピック名)

  • 「次へ」ボタンをクリックします。

■名前と説明
アラーム名 メモリ使用率オーバー
アラームの説明 (任意)

  • 「次へ」ボタンをクリックします。
  • 「アラームの作成」ボタンをクリックします。

5. トラブルシューティング

(1) メトリックスに「cpu_usage_system」、「cpu_usage_user」が表示されない
(a) 「config.json」のチェック
「config.json」「CPU」の記載があるかどうかチェックします。
# vi /opt/aws/amazon-cloudwatch-agent/bin/config.json
{
  "metrics": {
    "namespace": "CWAgent",
    "metrics_collected": {
      "cpu": {
        "measurement": [
           "cpu_usage_idle",
           "cpu_usage_iowait",
           "cpu_usage_user",
           "cpu_usage_system"
        ],
        "metrics_collection_interval": 60,
        "resources": [
               "*"
        ],
        "totalcpu": true
      }
    }
  }
} 
(b) 「amazon-cloudwatch-agent.toml」のチェック
「amazon-cloudwatch-agent.toml」に「config.json」の値が反映されているかどうか調べます。
# grep -n "inputs.cpu" -n /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml
# grep -n "cpu_usage_" /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml
結果なしの場合は、「config.json」の内容が「amazon-cloudwatch-agent.toml」に反映されていないので、反映を行います。
# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
  -a fetch-config -m ec2 -s \
  -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json 
 
(c) 反映確認
1) status
# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
2) toml に inputs.cpu が生成されたか
# grep -n "inputs.cpu" /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml
tomlに inputs.cpu が表示されればOK。
3) 動作ログに telegraf_cpu が出たか(直後〜数十秒で出ることが多い)
# grep -n "telegraf_cpu" -n /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log | tail
ログの receivers: に telegraf_cpu が追加されればOK。
最終更新:2026年03月23日 14:04