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 へ通知する方法について話します!
前回のブログ記事では、AWS Lambda・Pythonを触って通知する面白い記事を書いたので、
興味ある方は、ぜひ見てくださいね!
構成図
構成図は上記になります!
CloudWatch で EC2 のメトリクスを取得して、アラームが発生すれば SNS に通知します
そして、SNS は CloudWatch から送られてきたアラームを Chatbot に送信します
次に、Chatbot はそのアラームを Slack に送信するという流れになります!
Teams・Chatwork より AWS Lambda を使わないので、簡単に実装できます。
では、一緒に頑張って構築していきましょう!
構築手順
① SNS
①-① SNS>トピック>トピックの作成をクリック
①-② 以下情報を指定して【トピックの作成】をクリック
タイプ:スタンダード
名前:好きな名前を記入してください
①-③ 正常に作成されたことを確認する
② Chatbot
②-① Chatbot>設定済みクライアント>【新しいクライアントを設定】をクリック
②-② Slackを選択して【設定】をクリック
②-③ワークスペースにサインインする
*すでにログインしたことがある場合は、以下の画面になります。
新しいワークスペースを作成する場合は、右上から【別のワークスペースを追加する】をクリックしてください。
*Slack のワークスペース URL を見つける方法は以下になります。
引用記事:自分が参加しているワークスペースの Slack URL を確認する
1.参加しているワークスペース名をクリック
2.ワークスペース名の下に、参加しているワークスペースの Slack URL を確認
②-④ 指定のワークスペースにログインする
②-⑤ 権限を許可する
②-⑥ 承認の確認後に【新しいチャネルを設定】をクリック
②-⑦ 設定名を入力
*設定名はお好きなものを設定してください。
*CloudWatch Logs にログを記録したい場合は、チェックを入れてください。
②-⑧ Slack チャネルを選択
*パブリック・プライベートを選択してから、チャネル名を選択してください。
②-⑨ ロールを設定
・チャネル IAM ロール
Slack のチャンネルにいる全メンバーに同じ権限を付与するロール
・ユーザーロール
Slack のチャンネルにいるメンバーそれぞれに別々の権限を付与するロール
②-⑩ チャネル IAM ロールを設定
*チャネル IAM ロールは【テンプレートを使用して IAM ロールを作成する】を選択
*ロール名は、お好きなものを決めてください。
②-⑪ ポリシーテンプレートを設定
②-⑫ チャネルガードレールポリシー
・チャネルガードレールポリシー
チャネル IAM ロール・ユーザーロールより優先されるポリシーです。
CloudWatchReadOnlyAccess はつけておくとグラフが閲覧できます。
②-⑬ 通知設定
*トピックに SNS で作成したものを指定してください
③ CloudWatch
*EC2 は作成されている前提で進めてさせて頂きます。
③-① Cloudwatch>アラーム>【アラームの作成】をクリック
③-② お好みのメトリクスを選択
③-③ アラーム条件を選択
③-④ 通知設定
③-④ アラーム名を指定する
③-⑤【アラームの作成】をクリック
④ 通知テスト
④-① アラーム状態になっているか確認する
④-②アラームが通知されているか確認する
*閾値をアラートが発生しないようにすると、以下のようにリカバリーが確認できます
まとめ
今回は、CloudWatch アラームを Chatbot で Slack に通知する方法について、話しました。
Slack でアラーム通知する際は、簡単に Chatbot を使うと通知できます。
グラフURLやグラフの画像までついてくるので、アラームが非常に見やすいですね!
Slack は簡単に実装できますが、
Teams・Chatworkでアラームを通知する場合は、AWS Lambda で Python のコードを書いたり、Webhook を用意したり、色々な手間がかかります...
AWS にはぜひ、Teams・Chatwork にも Chatbot に対応させてほしいなと思いますね.....
たぶん無理そうですが.....