2014年9月23日火曜日

AWSのCloud Watchでディスク容量を監視する方法

awsのCloudWatchの管理画面の機能では、ec2のディスク容量を確認するUIが用意されていないようなので、自分でスクリプトを仕込んでCloudWatchにデータを送ってやる必要があります。
その設定方法は以下の通りです。

インストール方法

Amazon CloudWatch Monitoring Scriptsのインストール

/opt/aws配下にインスールを想定
cd /opt/aws
wget http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.zip
unzip CloudWatchMonitoringScripts-v1.1.0.zip
rm CloudWatchMonitoringScripts-v1.1.0.zip
cd aws-scripts-mon/

AWSのアクセスキーとシークレットキーの登録

awscredsに、AWSAccessKeyIdとAWSSecretKeyを設定します。
cp awscreds.template awscreds
vim awscreds

AWSAccessKeyId=xxxxxxxxxxxxx
AWSSecretKey=xxxxxxxxxxxxx

テスト用のコマンド実行

上記の設定が終わったら、下記のコマンドを実行してみる。
/dev/hoge のディスク容量を監視することを想定しており、適宜ディスクの場所は変更してください。
それから、以下のコマンドは実際にCloudWatchにはデータを送信されません。
あくまで、動作確認用になります
./mon-put-instance-data.pl --disk-space-util --disk-path=/dev/hoge --verify --verbose --aws-credential-file=/opt/aws/aws-scripts-mon/awscreds

–verif

メトリックスを収集するスクリプトのテストを実行し、完全な HTTP リクエストを準備します。ただし、実際に CloudWatch コールを実行して、データをレポートしません。また、このオプションは、認証情報が提供されているかどうかもチェックします。このオプションを冗長モードで実行すると、CloudWatch に送信されるメトリックスを出力します。

–verbose

スクリプトが実行する内容についての詳細情報を表示します。

–aws-credential-file=PATH

AWS 認証情報が格納されているファイルの場所を指定します。

cronに設定

上記コマンドが問題がなければ、cronに設定する。
crontab -e

*/5 * * * * /opt/aws/aws-scripts-mon/mon-put-instance-data.pl --disk-space-util --disk-path=/dev/hoge --aws-credential-file=/opt/aws/aws-scripts-mon/awscreds
これで、5分間隔で、cloudwatchにデータが収集されます。
送信されたMetricsは、Linux System > Filesystem,InstanceId,MountPathとして登録されます。
あとは、適宜アラートを設定して、監視に利用する。

0 件のコメント:

コメントを投稿

statistics