Amazon CloudWatchでインスタンス死活監視
Amazon CloudWatchのアラート機能を使い、インスタンスのCPU/死活監視をしてみた
設定
- ManagementConsoleにCloudWatchタブが出来ているので、クリック(US East以外の場合はRegionを変更)
- Create A New Alarmをクリック
- 先ほどのインスタンス番号をSearchの横の欄に入れてフィルタする
- CPUUtilizationの欄を選び、Continueを押す
- Alarmに任意の名前(Name)と説明(Description)を付ける
- 敷居値(Threshold)を決める(仮に40%以上が5分としました: >= 40 for 5 minuties)
- 次にいつAlarmを送るかを設定します
ALARMは設定した条件になった際、OKは復帰した際、INSUFFICIENT_DATAは数値が取れなかった場合です。
Alarmを送る宛先として、Amazon SNSのtopicを選択もしくは、作成します。
※作成する場合には、topicの名前と宛先のメールアドレスを指定します(確認メールが飛ぶので、リンクをクリックします)。
ADD ACTIONを押して追加します(ここでは、ALARM/OK/INSUFFICIENT_DATAすべてに同じtopicを指定しました)。 - 最後に確認画面が出るので、良ければCreate Alarmを押します。
しばらく動かしてみると解るのですが、INSUFFICIENT_DATAのアラームが鳴ります。
これはBasic monitoringが5分単位なので、タイミングによってはデータが取得できないからではないかと思う(要確認)のですが、とりあえず気持ち悪いのでアラートの間隔を広げます。
- さきほど設定したらAlarmを選択して、Modifyを押す
- 左下のBackを押して、1つ画面を戻し、Periodを15minに変える
- 敷居値の設定も、15分に変更 (>= 40 for 15 minuties)
- Continueを何度か押し、Save Alarmで保存
これで正常に取れるようになりましたが、Alarmがあがるタイミングが少し遅くなりますね。その場合は、AverageじゃなくてMaximumにしてみたほうがいいかもしれません。
意図的にCPU負荷率を上げる(yes > /dev/null)、インスタンスをstopする、などして実際のアラート状態を発生させて見ると、ちゃんとメールが飛びます。