CloudWatchには標準でメモリ利用率、使用量、空き容量やディスクの利用率、使用量、空き容量はモニタリングできない。
そこで、AWSで配布されているCloudWatchMonitoringScriptsをインストールして、5分おきにメモリやディスクの情報をCloudWatchにPUTして、CloudWatch上でEC2インスタンスのメモリ情報を確認できるようにする。
まずはEC2インスタンスからCloudWatchにPutMetricDataを可能にするため、IAMユーザを作成し、権限を与える。
IAMユーザを作成して、CloudWatchのPutMetricData権限を与える
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt9999999999999",
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData"
],
"Resource": [
"*"
]
}
]
}
次に、CloudWatchMonitoringScriptsのインストールと設定を行う。
CloudWatchMonitoringScriptsのインストール
curl -L -O http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.zip
sudo apt-get install unzip libwww-perl libcrypt-ssleay-perl
unzip CloudWatchMonitoringScripts-v1.1.0.zip
cd aws-scripts-mon
cp awscreds.template awscreds.txt
chmod 600 awscreds.txt
vim awscreds.txt
awscreds.txt
AWSAccessKeyId=XXXX
AWSSecretKey=XXXX
動作確認。
オプションに--verifyをつけると、CloudWatchにデータをPUTしない。
動作確認(CloudWatchにデータは投げない)
./mon-put-instance-data.pl --aws-credential-file=/home/ubuntu/aws-scripts-mon/awscreds.txt --mem-util --mem-used --mem-avail --verify --verbose
実際の設定はこんな感じ。
実際の設定
crontab -e
crontab
*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --aws-credential-file=/home/ubuntu/aws-scripts-mon/awscreds.txt --mem-util --mem-used --mem-avail --swap-util --swap-used --disk-path=/ --disk-space-util --disk-space-used --disk-space-avail --disk-path=/mnt --disk-space-util --disk-space-used --disk-space-avail --from-cron