こんばんは。
むらいです
私は関西弁なので、
話すと周りもつられてイントネーションが関西弁になるのが、
ちょっとほっこりしている今日このごろです。
さて、そんなことより、
今AWSを使ってて、ディスク容量を監視したかったんですが、
デフォルトにディスク容量チェックがありません。。。
なので、今日はその設定方法を書いていきます。
そもそも、
AWSのモニタリングサービスにCloudWatchてのがあります。
デフォルトでは以下のようなものが監視できます。
・CPUUtilization(%): CPU使用率
・DiskReadBytes(B): ディスクI/O量(読み取り)
・DiskReadOps(回): ディスクI/O回数(読み取り)
・DiskWriteBytes(B): ディスクI/O量(書き込み)
・DiskWriteOps(回): ディスクI/O回数(書き込み)
・NetworkIn(B): ネットワーク情報量(受信)
・NetworkOut(B): ネットワーク情報量(送信)
・StatusCheckFailed(回): 状態
・StatusCheckFailed_Instance(回): インスタンス状態
・StatusCheckFailed_System(回): システム状態
はい。ディスク容量ないですね。
ログ溜めててディスクがすぐ一杯!なんてこともあり得るので、
監視対象にしていきます。
Amazon CloudWatch Monitoring Scripts for Linuxで
監視対象が増やせます。
http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts-perl.html
これによる監視できる対象は以下です。
・MemoryUtilization(%): メモリ使用率
・MemoryUsed(MB): メモリ使用量
・MemoryAvailable(MB): 使用可能メモリ量
・SwapUtilization(%): スワップ使用率
・SwapUsed(MB): スワップ使用量
・DiskSpaceUtilization(%): ディスク領域使用率
・DiskSpaceUsed(GB): ディスク領域使用量
・DiskSpaceAvailable(GB): 使用可能ディスク領域量
え!AWS側で用意してるんやん。と思いきや、
ここの記載通りにやってもうまくいきませんでした。
方法は以下です。
まずはperlモジュールのインストールをします
yum install perl-Switch perl-Sys-Syslog perl-LWP-Protocol-https yum install gcc make perl-CPAN perl-Time-HiRes perl-XML-Parser mod_perl cpanminus cd / perl -MCPAN -e shell cpan[1]> install Bundle::CPANxxl cpan[1]> install Bundle::LWP5_837 LWP cpan[1]> install Switch cpan[1]> install Sys::Syslog cpan[1]> install Crypt::SSLeay
サーバの適当な場所にAWSからツールをダウンロード(今回はtmpにcloudwatchディレクトリを作成しました)
wget http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.zip
unzip CloudWatchMonitoringScripts-v1.1.0.zip
cd aws-scripts-mon
cp awscreds.template awscreds
awscredsにAWSのアクセスキーとシークレットキーを入れる
vim awscreds
テストで叩いてみる(AWSには送信データが行かないようにverifyを付けています)
./mon-put-instance-data.pl --disk-space-util --disk-path=/ --verify --verbose --aws-credential-file=/tmp/cloudwatch/aws-scripts-mon/awscreds
これが返ってきたら成功
Verification completed successfully.
成功したら実際に叩いてみましょう
./mon-put-instance-data.pl --disk-space-util --disk-path=/ --aws-credential-file=/tmp/cloudwatch/aws-scripts-mon/awscreds
以下が返ってきたら成功
Successfully reported metrics to CloudWatch. Reference Id: ********-****-****-****-************
実際に叩いて成功したらcronに以下を設定
*/5 * * * * /tmp/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl --disk-space-util --disk-path=/ --from-cron --aws-credential-file=/tmp/cloudwatch/aws-scripts-mon/awscreds
AWS画面に行きます
ManagementConsoleにCloudWatchタブが出来ているので、クリックし設定していきます。
以上!
これで
ディスク容量が80%を超えたらアラートメールが来る。
という設定ができるようになります。
参考URL
http://hack.aipo.com/archives/406/
http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts-perl.html
http://moomindani.wordpress.com/2014/04/07/amazon-cloudwatch-monitoring-scripts-for-linux/
http://konboi.hatenablog.com/entry/2013/12/25/215500
cloudwatchの設定方法
http://d.hatena.ne.jp/j3tm0t0/20110128/1296214789