CloudWatchエージェントのインストール(メモリ、スワップ、ディスク監視)

作業概要

前回、CPU、EBSボリューム、トラフィックをダッシュボードで見れるようにしました。
ただ、CloudWatchエージェントをインストールしなければ監視できないものがまだなので今回やっていきます。

作業記録

AWSドキュメントに従って設定していきます。

・ロール作成
-----
ロール名				CloudWatchAgentServerRole
ロールの説明			Allows EC2 instances to call AWS services on your behalf.
信頼されたエンティティ			AWS のサービス: ec2.amazonaws.com 
ポリシー				CloudWatchAgentServerPolicy, AmazonSSMManagedInstanceCore
アクセス権限の境界			 アクセス権限の境界が設定されていません
-----

参考:https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html


・EC2にロールアタッチ
略


・CloudWatchエージェントのインストール
cd /usr/local/src
wget https://s3.amazonaws.com/amazoncloudwatch-agent/centos/amd64/latest/amazon-cloudwatch-agent.rpm
sudo rpm -U ./amazon-cloudwatch-agent.rpm

参考:https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-commandline-fleet.html


・collectdのインストール
yum install epel-release
yum install collectd --enablerepo=epel

参考:https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-custom-metrics-collectd.html


・CloudWatchエージェント設定ファイル作成
vi /opt/aws/amazon-cloudwatch-agent/bin/config.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
                        },
                        "disk": {
                                "measurement": [
                                        "used_percent"
                                ],
                                "metrics_collection_interval": 60,
                                "resources": [
                                        "*"
                                ]
                        },
                        "mem": {
                                "measurement": [
                                        "mem_used_percent"
                                ],
                                "metrics_collection_interval": 60
                        },
                        "swap": {
                                "measurement": [
                                        "swap_used_percent"
                                ],
                                "metrics_collection_interval": 60
                        }
                }
        }
}
-----

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


・コマンドラインでCloudWatchエージェントを開始する
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

参考:https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance-fleet.html


#スワップ領域2G
dd if=/dev/zero of=/swapfile1 bs=1M count=2048
chmod 600 /swapfile1
mkswap /swapfile1
swapon /swapfile1

CloudWatchのウィジェット追加から、"カスタム名前空間"にメトリクスが追加されていることを確認できればOK。

宿題

アラート設定
パラメータストアからエージェントのコンフィグを読み込むようにする