LoginSignup
6
2

More than 3 years have passed since last update.

CloudWatchのアラームでメール通知機能を使う(途中まで

Last updated at Posted at 2019-11-10

CloudWatchのアラームでメール通知機能を使う

今回は、CloudWatchを使ってCPUが指定の使用率以上になったら、
メール通知し、EC2インスタンスを落としてみる
※未完で途中までです。 

そもそもCloudWatchのアラーム機能とは?
EC2やEBSなど、CloudWatchでAWSリソース(以外も可?)を監視し、メトリクス(設定値)が規定の上限を上回った場合にメール通知などを行うことができる

アラームの作成

AWSのメニューからCloudWatchを選択し、アラーム項目を開く
スクリーンショット 2019-11-10 22.49.34.png

メトリクスを選択する
スクリーンショット 2019-11-10 22.49.49.png

今回は、以前に作成したEC2のCPU使用率を監視する
すべてのメトリクスからCPUUtilizationを選択する
スクリーンショット 2019-11-10 22.50.08.png

グラフ化したメトリクスの項目で1分ごとにCPU使用率の"最大値"を測定するように設定する
スクリーンショット 2019-11-10 22.50.23.png

線グラフ化するので、横軸の時間は日本のタイムゾーンに設定する
スクリーンショット 2019-11-10 23.38.52.png

設定完了させると、設定値が表示される
スクリーンショット 2019-11-10 22.50.43.png

閾値の設定をする
CPUの使用率が > 10% を超えた場合に設定
スクリーンショット 2019-11-10 22.51.10.png

※アラーム作成後に動作が安定しないため、下記の項目を追加した。
スクリーンショット 2019-11-10 23.34.47.png

これは、EC2のCPU使用率をCloudWatchが監視する場合、監視値が取得できないときは欠落データとして無視するように設定する

通知に関する設定をする
今回はメールを送るためのトピックという機能を追加する
下記の項目を入力してトピックの作成を押下

スクリーンショット 2019-11-10 22.51.59.png

入力したメールアドレスにメールが届くので、承認する
※メール内容
スクリーンショット 2019-11-10 22.53.23.png

これで通知するメールが設定できる
スクリーンショット 2019-11-10 22.53.53.png

アラーム時はEC2を停止するように設定
スクリーンショット 2019-11-10 23.05.21.png

アラーム名を設定する
スクリーンショット 2019-11-10 22.54.24.png

作成後のアラームを確認
EC2を起動させていない、また、アラームの作成直後でCPUのデータを収集できていないためデータ不足が発生している
スクリーンショット 2019-11-10 22.54.55.png

EC2を起動させてしばらく時間が経つと、OKに変わりCPU使用率が表示される
スクリーンショット 2019-11-10 23.23.10.png

アラームとEC2の停止を確認する

HTTP GET DOS攻撃でEC2を落とす。
(CPU使用率の閾値が大きすぎるため10%から1%に変更する。)

画面の"編集"ボタンから編集画面を開く
スクリーンショット 2019-11-11 0.12.18.png

スクリーンショット 2019-11-11 0.13.06.png

アラームの更新で設定完了

EC2にapacheを入れているので、エンドポイントに向けて短時間でcurlコマンドを送る(HTTP GET DOS攻撃)

使用したShellは下記
(※下記のIPはセキュリティ制限を行なっています。)
[dos.sh]

#!/bin/sh


for i in `seq 10000`
do
  curl http://ec2-54-65-248-190.ap-northeast-1.compute.amazonaws.com &
done

ローカルホストからEC2に向けて実行する
レスポンスは[apache test]で実行される

bash dos.sh 
apache test
apache test
apache test
apache test
apache test
apache test

EC2インスタンスで監視する
sar -Pコマンドを使用する

50秒あたりから、user/systemの値が表示されている。
ここでいうuser/systemの合計値が実際のCPU使用率になるので
下記より、最大値で4~5%使用していることがわかる
(※stealに関しては不明、今後調査予定)

CloudWatchの設定で、1分間ごとにCPU使用率の最大値を取得しているので、
ここで5%程度の値がプロットされているか確認する必要がある

sar -P ALL 1 10
15時20分48秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分49秒     all      0.00      0.00      0.00      0.00      0.00    100.00
15時20分49秒       0      0.00      0.00      0.00      0.00      0.00    100.00

15時20分49秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分50秒     all      0.00      0.00      0.00      0.00      0.00    100.00
15時20分50秒       0      0.00      0.00      0.00      0.00      0.00    100.00

15時20分50秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分51秒     all      0.99      0.00      0.99      0.00      0.00     98.02
15時20分51秒       0      0.99      0.00      0.99      0.00      0.00     98.02

15時20分51秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分52秒     all      0.00      0.00      0.00      0.00      1.01     98.99
15時20分52秒       0      0.00      0.00      0.00      0.00      1.01     98.99

15時20分52秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分53秒     all      0.00      0.00      0.00      0.00      0.00    100.00
15時20分53秒       0      0.00      0.00      0.00      0.00      0.00    100.00

15時20分53秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分54秒     all      1.01      0.00      1.01      0.00      0.00     97.98
15時20分54秒       0      1.01      0.00      1.01      0.00      0.00     97.98

15時20分54秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分55秒     all      1.02      0.00      1.02      0.00      0.00     97.96
15時20分55秒       0      1.02      0.00      1.02      0.00      0.00     97.96

15時20分55秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分56秒     all      1.04      0.00      3.12      0.00      1.04     94.79
15時20分56秒       0      1.04      0.00      3.12      0.00      1.04     94.79

15時20分56秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分57秒     all      0.00      0.00      1.00      0.00      0.00     99.00
15時20分57秒       0      0.00      0.00      1.00      0.00      0.00     99.00

15時20分57秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分58秒     all      0.00      0.00      0.00      0.00      0.00    100.00
15時20分58秒       0      0.00      0.00      0.00      0.00      0.00    100.00

平均値:      CPU     %user     %nice   %system   %iowait    %steal     %idle
平均値:      all      0.40      0.00      0.71      0.00      0.20     98.69
平均値:        0      0.40      0.00      0.71      0.00      0.20     98.69

EC2の時間設定を行なっていないので時間表示が間違っているが、
JSTで00:20:55あたりの時刻をCloudWatchで確認する

うーん、最大値測定で0.3%程度・・・
彼は何を見ていたのだろう(笑
スクリーンショット 2019-11-11 0.33.30.png

現在は、監視時間の粒度が1分おきになっているが、今後粒度を小さくして確認する

夜も遅いので、今後この記事に追記していきます。

以上

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2