CloudWatch LogsデータをMetrics化しSlack通知にAWS Chatbotを使ってみました

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

M5StickC with ENV Hatで遊んでいた学習していた所
つい先日、AWS ChatbotがGA!という話題が社内Slackで話されていたので、早速試してみました。

※本来AWS ChatbotはSlackに通知を行うだけでなく、対話型でCommand等も実行できるChatOpsツールです。

https://www.skyarch.net/blog/?p=18393
M5StickCで取得した部屋の温度/湿度をCloudWatch Logsに飛ばしているのですが
こちらをFilter条件でMetrics化し、Alarmを作成、SNSに通知を飛ばし、Chatbotに連携という流れです。

CloudWatch Logs ⇢ CloudWatch Metrics ⇢ CloudWatch Alarm ⇢ SNS ⇢ Chatbot

※AWS ChatbotでSlackに投稿するだけであれば、CloudWatch Logs云々は必要ありません。
連携可能なサービスはこちら
Using AWS Chatbot with other AWS services
https://docs.aws.amazon.com/chatbot/latest/adminguide/related-services.html

出来たもの

DataDog等でよく見る、素敵なグラフ付き通知がSlackに、コードレスで出来ました!

目次

手順の概要

  1. CloudWatch LogsのFilter条件を作成
  2. CloudWatch Metricsが作成された事を確認
  3. SNS Topicを作成
  4. CloudWatch Alarmを作成
  5. Chatbot設定を実施

手順

1. CloudWatch LogsのFilter条件を作成

定期的にCloudWatch Logsに飛んでくる、上記のようなJSON形式のログをMetrics化するため下記Filterを作成

2. CloudWatch Metricsが作成された事を確認

3. SNS Topicを作成

名前以外特に設定無し

4. CloudWatch Alarmを作成

アラーム条件として、室温が28度より大きい、湿度が40%より大きいを設定してみました

5. Chatbot設定を実施

チャットクライアントとして、Slackを選択し作成を進めると
Slack側の認証画面へ遷移し、Botインストール時と同様、アクセス許可を実施後、PostするSlackチャンネル指定を行います。
指定の必要なIAMRoleは自動生成されたもの、ChatbotがサブスクライブするSNSTopicとして 手順3で作成したTopicを指定します。

まとめ

これまではLambda等で自分でコードを書く/保守する必要がありましたが、その必要がないため気軽に利用でき素晴らしいと感じました。
連携先のサービスが増えていくとさらに使いやすい物になりそうです。

AWS CloudWatchとは?
Datadogとは?

投稿者プロフィール

takashi
Japan AWS Ambassadors 2023, 2024
開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て
2010年よりスカイアーチネットワークスに在籍しております

機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。

ABOUTこの記事をかいた人

Japan AWS Ambassadors 2023, 2024 開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て 2010年よりスカイアーチネットワークスに在籍しております 機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。