AWS ChatbotでCloudWatchアラームをslackへ通知しよう!!
目次
- 1 構成図
- 2 構築手順
- 2.1 ①SNS
- 2.2 ②Chatbot
- 2.2.1 ②-①Chatbot>設定済みクライアント>【新しいクライアントを設定】をクリック
- 2.2.2 ②-②Slackを選択して【設定】をクリック
- 2.2.3 ②-③ワークスペースにサインインする
- 2.2.4 ②-④指定のワークスペースにログインする
- 2.2.5 ②-⑤権限を許可する
- 2.2.6 ②-⑥承認の確認後に【新しいチェネルを設定】をクリック
- 2.2.7 ②-⑦設定名を入力
- 2.2.8 ②-⑧Slackチャネルを選択
- 2.2.9 ②-⑨ロールを設定
- 2.2.10 ②-⑩チェネルIAMロールを設定
- 2.2.11 ②-⑪ポリシーテンプレートを設定
- 2.2.12 ②-⑫チェネルガードレールポリシー
- 2.2.13 ②-⑬通知設定
- 2.3 ③CloudWatch
- 2.4 ④通知テスト
- 3 まとめ
*三木ジェット(神戸摩耶)
こんにちは!
株式会社ビヨンド大阪オフィスのラーメン王、ヒデです。
今回が5回目の投稿です。
前回は最近、僕が案件でも実装しました、
CloudwatchアラームをTeams・Chatworkに通知することについて話しましたので、
今回は、AWS ChatbotでCloudWatchアラームをslackへ通知する方法について話します!
前回のブログ記事では、Lambda・pythonを触って通知する面白い記事を書いたので、
興味ある方は、ぜひ見てくださいね!
構成図
構成図は上記になります!
CloudWatchでEC2のメトリクスを取得して、アラームが発生すれば SNSに通知します
そして、SNSはCloudWatchから送られてきたアラームをChatbotに送信します
次に、ChatbotはそのアラームをSlackに送信するという流れになります!
Teams・ChatworkよりLambdaを使わないので、簡単に実装できます。
では、一緒に頑張って構築していきましょう!
構築手順
①SNS
①-①SNS>トピック>トピックの作成をクリック
①-②以下情報を指定して【トピックの作成】をクリック
タイプ:スタンダード
名前:好きな名前を記入してください
①-③正常に作成されたことを確認する
②Chatbot
②-①Chatbot>設定済みクライアント>【新しいクライアントを設定】をクリック
②-②Slackを選択して【設定】をクリック
②-③ワークスペースにサインインする
*すでにログインしたことがある場合は、以下の画面になります。
新しいワークスペースを作成する場合は、右上から【別のワークスペースを追加する】をクリックしてください。
*SlackのワークスペースURLを見つける方法は以下になります。
引用記事:自分が参加しているワークスペースの Slack URL を確認する
1.参加しているワークスペース名をクリック
2.ワークスペース名の下に、参加しているワークスペースの Slack URL を確認
②-④指定のワークスペースにログインする
②-⑤権限を許可する
②-⑥承認の確認後に【新しいチェネルを設定】をクリック
②-⑦設定名を入力
*設定名はお好きなものを設定してください。
*CloudWatchLogsにログを記録したい場合は、チェックを入れてください。
②-⑧Slackチャネルを選択
*パブリック・プライベートを選択してから、チャネル名を選択してください。
②-⑨ロールを設定
・チャネルIAMロール
slackのチャンネルにいる全メンバーに同じ権限を付与するロール
・ユーザロール
slackのチャンネルにいるメンバーそれぞれに別々の権限を付与するロール
②-⑩チェネルIAMロールを設定
*チェネルIAMロールは【テンプレートを使用してIAMロールを作成する】を選択
*ロール名は、お好きなものを決めてください。
②-⑪ポリシーテンプレートを設定
②-⑫チェネルガードレールポリシー
・チェネルガードレールポリシー
チェネルIAMロール・ユーザーロールより優先されるポリシーです。
CloudWatchReadOnlyAccessはつけておくとグラフが閲覧できます。
②-⑬通知設定
*トピックにSNSで作成したものを指定してください
③CloudWatch
*EC2は作成されている前提で進めてさせて頂きます。
③-①Cloudwatch>アラーム>【アラームの作成】をクリック
③-②お好みのメトリクスを選択
③-③アラーム条件を選択
③-④通知設定
③-④アラーム名を指定する
③-⑤【アラームの作成】をクリック
④通知テスト
④-①アラーム状態になっているか確認する
④-②アラームが通知されているか確認する
*閾値をアラートが発生しないようにすると以下のようにリカバリーが確認できます
まとめ
今回は、cloudwatchアラームをchatbotでslackに通知する方法について、話しました
slackでアラーム通知する際は、簡単にchatbotを使うと通知できます。
グラフURLやグラフの画像までついてくるので、アラームが非常に見やすいですね!
Slackは簡単に実装できますが、
Teams・chatworkでアラームを通知する場合は、Lambdaでpythonのコードを書いたり、Webhookを用意したり、色々な手間がかかります...
AWSにはぜひ、Teams・chatworkにもchatbotに対応させてほしいなと思いますね.....
たぶん無理そうですが.....