3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSのSNSでslackにアラーム通知する方法

Posted at

はじめに

AWSでアプリケーションを動かすとき、CPUやメモリの使用率が高くなった場合にアラーム通知をしたいというニーズがあると思います。

そこで今回は CloudWatch Alarm と SNS を利用して簡易的なアラーム通知を実現しようと思います。また、アラーム通知先をslackの特定のチャンネルにしようと思います。

手順

1. slackのチャンネルを作成する

アラーム通知先のチャンネルを作成してください。

2. slackチャンネルのメアドを取得する

slackチャンネルのメアドを取得します。
このメールアドレスにSNS経由でメールを送信するように設定していきます。
Slack にメールを送信する をご覧いただくと、チャンネルのメールアドレスの取得方法がわかるのでぜひご参照ください。

3. AWSのSNSトピックを作成する(SNS > トピック > 「トピックの作成」)

image.png

タイプ
今回はslackのチャンネルにEメールを送信するので「スタンダード」に設定します。

名前
トピックの名前を入力します。AWSコンソール上でトピックを見分けるときに参照します。

表示名
トピックの表示名を入力します。slackに送られるメールの送信者として表示されます。
(最後にメールの例を紹介するので、そちらもぜひご覧ください)

4. トピックのサブスクリプションを作成する(トピック > サブスクリプションタブ > 「サブスクリプションの作成」)

image.png

プロトコル
今回はslackのチャンネルにEメールを送信するので「Eメール」を選択します。

エンドポイント
ここにslackのチャンネルのメールアドレスを入れます。

5. slackチャンネルにサブスクリプションの承認をするためのメールが来るので承認する

image.png

上記のものがslackのチャンネルに飛んでくるので「Confirm subscription」をクリックしてサブスクリプションの承認を完了させます。

6. アラームを作成する(CloudWatch > すべてのアラーム > 「アラームの作成」)

今回はCPUとメモリの使用率を監視するため、アラームを2つ作成します。

ステップ1:メトリクスと条件の指定

メトリクス
image.png

ここでは監視対象のメトリクスを選択します。
CPUを監視するメトリクスの場合はCPUUtilizationを、
メモリを監視するメトリクスの場合はMemoryUtilizationを選択してください。

条件
image.png

各々のプロジェクトのしきい値条件を指定してください。

ステップ2:アクションの設定

image.png

アラーム状態トリガー
今回はステップ1で設定したしきい値を超えたときに通知したいので「アラーム状態」を選択します。

次の SNS トピックに通知を送信
手順3でトピックはすでに作成してあるので、「既存の SNS トピックを選択」にチェックを入れます。

通知の送信先
手順3で作成したトピックを選択してください

ステップ3:名前と説明を追加

image.png

アラーム名
アラームの名前を入力します。slackに送られるメールの件名に表示されたり、メール本文にも表示されます。(最後にメールの例を紹介するので、そちらもぜひご覧ください)

アラームの説明
アラームの説明を入力します。slackに送られるメールの本文に表示されます。(最後にメールの例を紹介するので、そちらもぜひご覧ください)

ここに「CPUの使用率が高くなっています」などを入れるとslackにメール通知がきたときわかりやすいと思います。

7. アラーム通知確認テスト

アラームのしきい値を変更してアラーム通知のテストを行い、実際にslackに通知がくるか確かめてみましょう。
※アラーム通知はしきい値を跨いだときにしかこないのでご注意ください。

以下は送信されるメールの例です。

    送信者:【トピックの表示名】
    宛先: Email
    件名:	ALARM: "【アラーム名】" in Asia Pacific (Tokyo)
    日付	【アラート発生日付】
    
-------------------------------------------------------------------------------
    
    You are receiving this email because your Amazon CloudWatch Alarm "【アラーム名】" in the Asia Pacific (Tokyo) region has entered the ALARM state, because "【アラート詳細(しきい値をいつ越えたか等)】" at "【アラート発生日時】".
    
    View this alarm in the AWS Management Console:
    【AWSコンソール上でのアラームのURL】
    
    Alarm Details:
    - Name: 【アラーム名】
    - Description: 【アラームの説明】
    - State Change: OK -> ALARM
    - Reason for State Change: 【アラート詳細(しきい値をいつ越えたか等)】
    - Timestamp: 【アラート発生日時】
    - AWS Account: 【アラーム作成者のAWSアカウントID】
    - Alarm Arn: 【アラームのARN】
    
    Threshold:
    - 【アラート詳細(しきい値をいつ越えたか等)】
    
    Monitored Metric:
    - MetricNamespace: 【メトリクスのソース】
    - MetricName: 【メトリクス名】
    - Dimensions: 【監視対象のコンテナ】
    - Period: 【アラームで設定した期間】
    - Statistic: 【アラームで設定した統計の種類】
    - Unit: 【メトリクスの単位】
    - TreatMissingData: 【アラームの「その他の設定」で設定する欠落データの処理方法(今回はデフォルト設定のままにしています)】
    
    State Change Actions:
    - OK:
    - ALARM: 【トピックのARN】
    - INSUFFICIENT_DATA:
3
0
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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?