こんにちは! JQです。
前回は『SES(メール配信サービス)編~Simple Email Service パート④~』ということで、PostfixからSESへリレー設定してみました。
今回は『CloudWatch編~Custom Metrics パート①~』と題して、Custom Metricsを利用してサービスのステータスを登録してみたいと思います。
Custom Metricsの作成
1.下準備
Custom Metricsを利用する為に次を準備しておきます。
※以下が前提となります。
・CloudWatchにデータをPutするためのIAMアカウント
・AWS コマンドラインツールのインストール
2.Apacheのステータスを監視するCustom Metrics構築
EC2が自分の「Public Address」を取得して、それに対してcurl コマンドでアクセスしてhttpのStatusCodeを取得します。
StatusCodeが200だった場合とそれ以外でCloudWatchにPutします。
1 |
#!/bin/sh |
1 2 3 4 5 6 |
export JAVA_HOME=/usr/lib/jvm/jre export AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon export EC2_REGION=ap-northeast-1 export AWS_CREDENTIAL_FILE=/opt/aws/credential-file instanceid=`curl -s http://169.254.169.254/latest/meta-data/instance-id` publicurl=`curl -s http://169.254.169.254/latest/meta-data/public-hostname` |
1 2 3 4 5 6 7 |
# http status check status=`curl -s http://${publicurl} -o /dev/null -w "%{http_code}"` if [ $status -eq 200 ]; then Fail=0 else Fail=1 fi |
1 |
/opt/aws/bin/mon-put-data --metric-name "Http Status fail" --namespace "Custom Metrix" --dimensions "InstanceId=$instanceid" --value "$Fail" --unit "Count" |
3.RDSへのMySQL接続の監視するCustom Metrics
続いてRDSへのMySQL接続の監視するスクリプトも構築してみます。
RDSに対して特定のクエリーを発行して結果によりPutする内容を変えます。
1 |
#!/bin/sh |
1 2 3 4 5 6 7 8 9 10 |
export JAVA_HOME=/usr/lib/jvm/jre export AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon export EC2_REGION=ap-northeast-1 export AWS_CREDENTIAL_FILE=/opt/aws/credential-file instanceid=`curl -s http://169.254.169.254/latest/meta-data/instance-id` mysqlhost="" mysqluser="" mysqlpassword="" mysqlquery="" mysqlresult |
1 2 3 4 5 6 7 |
# mysql status check status=`mysql -u ${mysqluser} -p${mysqlpassword} -h ${mysqlhost} -e"${mysqlquery}"` if [ "$status" = "${ mysqlresult}" ]; then Fail=0 else Fail=1 fi |
1 |
/opt/aws/bin/mon-put-data --metric-name "Http Status fail" --namespace "Custom Metrix" --dimensions "InstanceId=$instanceid" --value "$Fail" --unit "Count" |
4.Cronへの登録
上記で作成したスクリプトをCronに登録して一定間隔で走らせます。
1 2 3 |
# crontab -e * * * * * ^/http_metrics.sh * * * * * ^/mysql_metrics.sh |
5.確認
コンソールで確認してみましょう!
成功していれば以下のようなCustom Metricsが確認出来ます。
いかがでしたでしょうか?
次回は『CloudWatch編~Custom Metrics パート②~』と題して、ELBの配下インスタンスのNetworkInをまとめてCustom Metricsに再登録してみます。
お楽しみに!!!