S-JIS[2013-05-30] 変更履歴

Amazon CloudWatch コマンドラインツール

AWS CloudWatchはコマンドラインツール(CLI)で操作することが出来る。
WindowsおよびUNIXで使える。


インストール

  1. 事前にJavaをインストールしておく。
  2. Amazon CloudWatch Command Line Toolの右側のDownloadボタンを押し、アーカイブ(CloudWatch-2010-08-01.zip)をダウンロードする。
  3. アーカイブを適当な場所に解凍する。(CloudWatch-1.0.13.4というディレクトリーが出来る)
  4. CloudWatch-1.0.13.4/binにパスを通しておくと便利。

使用前の準備

CloudWatchのCLIツールを使うには、事前にいくつか環境変数を設定する必要がある。

export AWS_CLOUDWATCH_HOME="/usr/local/CloudWatch-1.0.13.4"
export EC2_CERT="/home/hishidama/.ssh/pem/cert-〜.pem"
export EC2_PRIVATE_KEY="/home/hishidama/.ssh/pem/pk-〜.pem"
export EC2_REGION=ap-northeast-1

環境変数AWS_CLOUDWATCH_HOMEは必須。アーカイブを解凍した場所を指す。

EC2_CERTとEC2_PRIVATE_KEYは、認証情報ファイルの場所を指す。
これらの設定はEC2のCLIツールと共通で使える。

EC2_REGIONは接続するリージョンを指定する。


メトリクス一覧

メトリクス一覧を表示する例。

$ mon-list-metrics --region ap-northeast-1

接続先リージョンを指定しないと、どことも知れない場所のメトリクスが取れる(爆)

「--region」を毎回指定するのは面倒なので、環境変数EC2_REGIONを指定しておくと良い。

$ export EC2_REGION=ap-northeast-1
$ mon-list-metrics

メトリクス取得

特定のEC2インスタンスのCPUUtilization(CPU使用率を示すメトリクス)の最大値を取得する例。

$ mon-get-stats CPUUtilization --namespace "AWS/EC2" --statistics "Maximum" --dimensions "InstanceId=i-abcdefzz"

メトリクス(値)は、一定期間内の最大値・最小値・平均値等として取得される。


アラーム一覧

アラームを表示する例。

$ mon-describe-alarms

アラームのステータスは、ALARM・OK・INSUFFICIENT DATAの3種類。

ALARM 設定した閾値を超えた。
OK 設定した閾値の範囲内。
INSUFFICIENT DATA 判定対象の値が取れなかった。

参考: j3tm0t0さんのAmazon CloudWatchでインスタンス死活監視


アラーム設定

アラームを設定(作成)する例。

60秒間隔でCPUUtilizationの最小値が80以上になったらエラーとするアラーム。

$ mon-put-metric-alarm alarm-test1 \
  --metric-name "CPUUtilization" --namespace "AWS/EC2" \
  --statistic "Minimum" --threshold 80 --comparison-operator GreaterThanOrEqualToThreshold \
  --period 60 --evaluation-periods 1 \
  --dimensions "InstanceId=i-abcdefzz"

periodはアラームの監視間隔(単位:秒)、evaluation-periodsは回数らしい。
period×evaluation-periodsは86400秒(24時間)以内にしなければならない。86400秒を超えると以下の様なエラーになる。
Exception in thread "main" Status Code: 400, AWS Service: AmazonCloudWatch, AWS Request ID: 345461df-c909-11e2-a507-a16d3e199845, AWS Error Code: ValidationError, AWS Error Message: Metrics cannot be checked across more than a day (EvaluationPeriods * Period must be <= 86400).

periodは監視を行う間隔で、period×evaluation-periodsは監視対象メトリクスの値を取得する期間だと思われる。
(その期間内の最大値とか最小値とかがアラームの判定対象の値となる)

設定値と間隔の関係(想像)
period evaluation-periods 監視間隔 メトリクス取得対象期間
60 3 60秒 180(=60×3)秒
180 1 180秒 180(=180×1)秒

CloudWatchへ戻る / AWSへ戻る / 技術メモへ戻る
メールの送信先:ひしだま