[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 |
現在使用中のスワップメモリの割合。(単位:パーセント) |
「ウィジェットの作成」ボタンをクリックします。
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
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