CloudWatchでアラームの検証をやってみた

スポンサーリンク

はじめに

CloudWatchでアラームの検証をやってみます。
EC2インスタンスのCPU使用率が条件を満たしたらメールを送信するようにします。

  • CPU使用率の平均が30パーセントを超えた時
  • 5回中3回で閾値を超えた時
  • 監視間隔は1分

作業の流れ

  1. EC2インスタンスの作成
  2. SNSの設定
  3. CloudWatchの設定

手順

1.EC2インスタンスの作成

以下のURLを参考にEC2インスタンスを作成して下さい。
https://it-study.info/aws-vpc-setup-method/

インスタンス作成後は「stress」ツールをインストールして下さい。

$ sudo amazon-linux-extras install epel
・・・
$ sudo yum -y install stress
・・・

2.SNSの設定

トピックの作成

SNSサービスにアクセスします。
左サイドバーから「トピック」をクリックします。
「トピックの作成」ボタンをクリックします。
以下の通り設定します。
・タイプ:スタンダード
・名前:Mail
「トピックの作成」ボタンをクリックします。

サブスクリプションの作成

左サイドバーから「サブスクリプション」をクリックします。
「サブスクリプションの作成」ボタンをクリックします。
以下の通り設定します。
・トピックARN:作成したトピックを選択(Mail)
・プロトコル:Eメール
・エンドポイント:任意のメールアドレス
「サブスクリプションの作成」ボタンをクリックします。

入力したメールアドレスにAWSからメールが届きます。「Confirm subscription」リンクをクリックします。

件名:AWS Notification - Subscription Confirmation
---------------------------------------------------------------------------
You have chosen to subscribe to the topic: 
arn:aws:sns:ap-northeast-1:920319510847:Default_CloudWatch_Alarms_Topic

To confirm this subscription, click or visit the link below (If this was in error no action is necessary): 
Confirm subscription

Please do not reply directly to this email. If you wish to remove yourself from receiving all future SNS subscription confirmation requests please send an email to sns-opt-out

ブラウザに以下のメッセージが表示されたら確認完了です。

3.CloudWatchの設定

CloudWatchサービスにアクセスします。
左サイドバーから[アラーム]-[すべてのアラーム]をクリックします。
「メトリクスの選択」ボタンをクリックします。
「EC2」をクリックします。
「インスタンス別メトリクス」をクリックします。
メトリクス名が「CPUUtilization」になっている項目をチェックし、「メトリクスの選択」ボタンをクリックします。

以下の通り設定します。
・統計:平均値
・期間:1分
・しきい値の種類:静的
・CPUUtilization が次の時…:より大きい
・… よりも:30
・アラームを実行するデータポイント:3/5
・欠落データの処理:欠落データを見つかりませんとして処理
「次へ」ボタンをクリックします。

・アラーム状態トリガー:アラーム状態
・次の SNS トピックに通知を送信:既存の SNS トピックを選択
・通知の送信先:Mail
「次へ」ボタンをクリックします。

・アラーム名:TestAlarm
・アラームの説明:Alarm test.
「次へ」ボタンをクリックします。「アラームの作成」ボタンをクリックします。

動作確認

EC2インスタンスにsshで接続します。stressツールを使用してCPUに負荷をかけます。

$ stress -c 1 -t 300s
stress: info: [414] dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd

CloudWatchでアラーム状態になっていることを確認します。

AWSからアラームメールが届いていることを確認します。

件名:ALARM: "TestAlarm" in Asia Pacific (Tokyo)
---------------------------------------------------------------------
You are receiving this email because your Amazon CloudWatch Alarm "TestAlarm" in the Asia Pacific (Tokyo) region has entered the ALARM state, because "Threshold Crossed: 1 out of the last 5 datapoints [39.33278688524591 (26/11/22 15:59:00)] was greater than the threshold (30.0) (minimum 3 datapoints for OK -> ALARM transition)." at "Saturday 26 November, 2022 16:05:10 UTC".

View this alarm in the AWS Management Console:
https://ap-northeast-1.console.aws.amazon.com/cloudwatch/deeplink.js?region=ap-northeast-1#alarmsV2:alarm/TestAlarm
Alarm Details: - Name: TestAlarm - Description: Alarm test. - State Change: OK -> ALARM - Reason for State Change: Threshold Crossed: 1 out of the last 5 datapoints [39.33278688524591 (26/11/22 15:59:00)] was greater than the threshold (30.0) (minimum 3 datapoints for OK -> ALARM transition). - Timestamp: Saturday 26 November, 2022 16:05:10 UTC - AWS Account: ************ - Alarm Arn: arn:aws:cloudwatch:ap-northeast-1:************:alarm:TestAlarm Threshold: - The alarm is in the ALARM state when the metric is GreaterThanThreshold 30.0 for at least 3 of the last 5 period(s) of 60 seconds. Monitored Metric: - MetricNamespace: AWS/EC2 - MetricName: CPUUtilization - Dimensions: [InstanceId = i-0ca97267dbeaa3924] - Period: 60 seconds - Statistic: Average - Unit: not specified - TreatMissingData: missing State Change Actions: - OK: - ALARM: [arn:aws:sns:ap-northeast-1:************:Mail] - INSUFFICIENT_DATA: -- If you wish to stop receiving notifications from this topic, please click or visit the link below to unsubscribe:
Unsubscribe
Please do not reply directly to this email. If you have any questions or comments regarding this email, please contact us at https://aws.amazon.com/support

stressツールで5分間、CPUに負荷をかけたのでアラームとメールの送信が確認できました。

もし2分間だけ負荷をかけた場合は「アラームを実行するデータポイント:3/5」に合致しないのでアラーム状態にならずメールも送信されません。

コメント

タイトルとURLをコピーしました