AWS

CloudWatch AlarmをSlackに通知

AWS

@see
https://qiita.com/taquaki-satwo/items/c9c196c1642cad626661

 

AWS SNSの作成

Amazon SNS -> トピック -> トピックの作成

 

  • 名前
    hoge-cloudwatch-alarm
  • 表示名
    hoge CloudWatch alarm

 

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

トピック -> 作成したトピックを選択 -> サブスクリプションの作成

プロトコル Eメール
エンドポイント <通知したいメールアドレス>

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

確認メールの Confirm subscription をクリック

 

テスト配信

トピック -> 作成したトピックを選択 -> メッセージの発行

項目 設定
件名 SNS-test-message
メッセージ本文 テスト配信です

-> メッセージの発行

 

AWS Cliのインストール

 

 

 

確認

 

 

アラーム作成

CloudWatch -> アラーム -> アラーム作成

  • メトリクス
項目 設定
インスタンス名 <任意のRDSインスタンス>
メトリクス名 CPUUtilization

-> 次へ

  • 条件

次の項目はお好みで。

項目 設定
よりも 70
アラームを実行するデータポイント 3/3

-> 次へ

 

アラーム名
hoge-DB-CPUUtilization-check

アラームの説明 – オプション
DBインスタンスのCPU使用率が70%を超えました

 

テスト

コマンドオプション

オプション 説明
–alarm-name アラーム名
–state-value ステータス
–state-reason アラームの説明

 

3. Incoming WebHooksの設定

https://slack.com/apps/A0F7XDUAZ–incoming-webhook- -> Add to Slack

 

Post to Channel 通知したいSlackチャンネル
Customize Name CloudWatch アラーム

-> Webhook URLを コピーしておく

 

Lambda

関数の作成

設計図の使用 -> cloudwatch-alarm-to-slack-python

トリガーにSNSのトピック名「hoge-cloudwatch-alarm」を指定する

 

EC2用Lambda

タイムアウトは10秒

環境変数の

  • slackChannel
    通知したいスラックチャンネル名 // #は含まない
  • hookUrl
    Slackのwebhook URL

 

テスト

 

SES用Lamda関数

タイムアウトは10秒

環境変数の

  • slackChannel
    通知したいスラックチャンネル名 // #は含まない
  • hookUrl
    Slackのwebhook URL

Lambda関数のデバッグ

アラームの閾値を下げて、Lambdaを発火させてCloudWachのログを見てください。

print(message)とかやってCloudWatchのログを見る

 

自己責任で外部サイトなどでJSONの整形して見るとコーディングしやすい。下記サイトはシングルクォートでも整形してくれる。

https://www.en-pc.jp/tech/jsonformat.php#result

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)