【AWS】ウィザードを使用して設定したCloudWatchAgentの設定ファイルを修正する

# はじめに
ウィザードを利用してカスタムメトリクスを取得していたのですが、不要なメトリクスを取得していたので必要なメトリクスのみを取得するためにCloudWatchAgentの設定ファイルを修正する手順を備忘録として残したいと思います。

# 前提として
・OSはAmazon Linux 2であること
・適切なIAMロールがEC2にアタッチされていること
・CloudWatchAgentがインストール済みであること
・ウィザードを使用してCloudWatchAgentを設定していること

## 修正前のCloudWatchAgent設定ファイル
ウィザードでCloudWatchAgentの設定を行うと、以下のように設定ファイル`/opt/aws/amazon-cloudwatch-agent/bin/config.json`が作成されています。よく見るとディスク使用率で`"resources": ["*"]`となっていることがわかります。

```text:修正前の設定ファイル
{
        "agent": {
                "metrics_collection_interval": 60,
                "run_as_user": "root"
        },
        "logs": {
                "logs_collected": {
                        "files": {
                                "collect_list": [
                                        {
                                                "file_path": "/var/log/messages",
                                                "log_group_name": "messages",
                                                "log_stream_name": "{instance_id}",
                                                "retention_in_days": -1
                                        }
                                ]
                        }
                }
        },
        "metrics": {
                "aggregation_dimensions": [
                        [
                                "InstanceId"
                        ]
                ],
                "append_dimensions": {
                        "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
                        "ImageId": "${aws:ImageId}",
                        "InstanceId": "${aws:InstanceId}",
                        "InstanceType": "${aws:InstanceType}"
                },
                "metrics_collected": {
                        "disk": {
                                "measurement": [
                                        "used_percent"
                                ],
                                "metrics_collection_interval": 60,
                                "resources": [
                                        "*"
                                ]
                        },
                        "mem": {
                                "measurement": [
                                        "mem_used_percent"
                                ],
                                "metrics_collection_interval": 60
                        }
                }
        }
}
```

# 設定ファイルの修正
設定ファイル`/opt/aws/amazon-cloudwatch-agent/bin/config.json`を修正していきます。
・ディスク使用率は、ディスク`"/"`と`"dev"`のみにするように修正
```
sudo vi /opt/aws/amazon-cloudwatch-agent/bin/config.json
```

```text:設定ファイル
{
        "agent": {
                "metrics_collection_interval": 60,
                "run_as_user": "root"
        },
        "logs": {
                "logs_collected": {
                        "files": {
                                "collect_list": [
                                        {
                                                "file_path": "/var/log/messages",
                                                "log_group_name": "messages",
                                                "log_stream_name": "{instance_id}",
                                                "retention_in_days": -1
                                        }
                                ]
                        }
                }
        },
        "metrics": {
                "aggregation_dimensions": [
                        [
                                "InstanceId"
                        ]
                ],
                "append_dimensions": {
                        "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
                        "ImageId": "${aws:ImageId}",
                        "InstanceId": "${aws:InstanceId}",
                        "InstanceType": "${aws:InstanceType}"
                },
                "metrics_collected": {
                        "disk": {
                                "measurement": [
                                        "used_percent"
                                ],
                                "metrics_collection_interval": 60,
                                "resources": [
                                        "/",
                                        "/dev"
                                ]
                        },
                        "mem": {
                                "measurement": [
                                        "mem_used_percent"
                                ],
                                "metrics_collection_interval": 60
                        }
                }
        }
}
```

# CloudWatchAgentの再起動
修正した設定ファイルをロードし、CloudWatchAgentを開始させます。
```
sudo /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
```

# さいごに
ウィザードを使用したCloudWatchAgentの設定ファイルを修正することができました。
カスタムメトリクスの料金も意外とかかるので、必要なメトリクスのみを取得するように設定していきたいですね。

# 参考URL
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html