[AWS] EC2インスタンスのメモリやディスク使用量をCloudWatchに送信する

目次

EC2インスタンスのメモリやディスク使用量をCloudWatchに送信する

EC2インスタンス(Amazon Linux AMI)のメモリやディスク使用量をCloudWatchに送信するには以下の手順で設定する

必要なPerlモジュールをインストール

提供されるツールはPerlで動作するので以下のコマンドでモジュールを追加する

sudo yum install perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https --nogpgcheck

GPG鍵が取得できないエラーが出たので対処。

[AWS] yum installでGPG鍵が取得できませんでしたエラー

もしPerlモジュールがないCan’t locate xxx.pmエラーが出た場合は

[AWS] Perlモジュールが見当たらない(Can’t locate xxx.pmエラー)

もしくはもう一度上のyum installで全モジュールをインストールしてみる

 

Bitnamiでは以下の通りにモジュールを追加する

sudo apt-get install libwww-perl libdatetime-perl

 

モニタリングツールをインストールする

AMAZONから提供されているcloudwatch用ツールをダウンロード、解凍

curl http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip -O
unzip CloudWatchMonitoringScripts-1.2.2.zip
rm CloudWatchMonitoringScripts-1.2.2.zip
cd aws-scripts-mon

アクセスキー・シークレットキー

AWSコンソールのIAMサービスからMonitor用のアカウントを作成し、アクセスキー・シークレットキーを取得

スクリーンショット 2017-01-21 7.15.55

シークレットキーは一度しか表示されないので注意

アクセスキー・シークレットキーを取得したら、先程ダウンロードしたaws-scripts-monフォルダ上にあるawscreds.templateに追記します

vi ./awscreds.template
AWSAccessKeyId=xxxxxxxxxxxxxxxx(アクセスキー)
AWSSecretKey=xxxxxxxxxxxxxxxx(シークレットキー)

awscreds.templateでは動作しないのでawscreds.confというファイル名でコピー

cp awscreds.template awscreds.conf

コピーし忘れると
ERROR: No IAM role is associated with this EC2 instance.
とエラーが発生する

起動確認

下記コマンドで動作するか確認する

./mon-put-instance-data.pl --mem-util --mem-used --mem-avail

Successfully reported metrics to CloudWatch. と表示されれば成功

 

もし「Can’t locate Digest/SHA.pm」エラーが発生した場合は

sudo yum install -y perl-Digest-SHA

 

Cron設定

あとは定期的にCloudWatchにデータを送るCronを設定すればよい
crontab -eでcronを編集

*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --mem-util --disk-space-util --disk-path=/ --from-cron

*メモリ使用率、ディスク使用率をCloudWatchに送信

Cronで実行されているかを念のため確認

cat /var/log/cron

CloudWatch上に登録

アラームを設定するが、取得した値はLinuxシステムメトリックス欄に追加されている
インスタンス別欄には追加されていないので注意
スクリーンショット 2017-01-21 7.13.24

本家マニュアル

本家マニュアル(参考)
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/mon-scripts.html

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です