2012年10月19日

【AWS】CloudWatchでメモリー監視


以前、CloudWatchでのディスク容量監視を紹介させていただきましたが、
今回はメモリー容量の監視方法を紹介いたします。


CloudWatchのCLI準備

以前の記事を参照して下さい。

Shell Scriptの作成

ディスク容量監視スクリプトとまとめても良いのですが、
別で書きます。

#!/bin/bash

export AWS_CLOUDWATCH_HOME=/usr/local/src/CloudWatch-1.0.13.4
export AWS_CREDENTIAL_FILE=$AWS_CLOUDWATCH_HOME/credentials
export AWS_CLOUDWATCH_URL=https://monitoring.amazonaws.com
export PATH=$AWS_CLOUDWATCH_HOME/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/jre

region='ap-northeast-1'

# get ec2 instance id
instanceid=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`
  
memtotal=`free -m | grep 'Mem' | tr -s ' ' | cut -d ' ' -f 2`
memfree=`free -m | grep 'buffers/cache' | tr -s ' ' | cut -d ' ' -f 4`
let "memused=100-memfree*100/memtotal"
   
mon-put-data --metric-name "FreeMemoryMBytes" --namespace "System/Linux" --dimensions "InstanceId=$instanceid" --value "$memfree" --unit "Megabytes" --region "$region"
mon-put-data --metric-name "UsedMemoryPercent" --namespace "System/Linux" --dimensions "InstanceId=$instanceid" --value "$memused" --unit "Percent" --region "$region"

このスクリプトをコピーして使って下さい。

Cronへの登録

*/5 * * * * path to mon-memory-space.sh

5分おきにデータをCloudWatchへ転送するようにします。

10分ぐらいでCloudWatchへ反映されます。