エンジニア通信Vol.7 ~AWS Tips: Slackに通知送信~
こんにちは。
開発エンジニアのAです。
最近、自宅用の眼鏡を新調しました。
画面に向かう仕事では、目の保養も大事ですね。
さて、今回も私からはAWS Tipsをご紹介します。
テーマはSlackへのエラーログ通知です。
一緒に見ていきましょう。
前回同様、webアプリケーションのシステムは構築済みである前提で
通知部分のみ確認していきたいと思います。
システムは構築してリリースした後、運用という新たなフェーズに入ります。
不具合は早急に検知・対応したいですよね。
普段のコミュニケーションにSlackを利用しているチームであれば
Slackに通知が飛ぶようにしておけば、
直接ログを確認しにいく手間も減り、誰かが周知する必要もなくなります。
全体の構成イメージは下記のようになります。
今回は赤枠の部分を見ていきます。
ECSで稼働しているアプリケーションのログを、CloudWatchLogsに出力している想定です。
①Slack⇒②AWS Chatbot⇒③AmazonSNS⇒④AmazonCloudWatchの順に
クライアント側から設定していきましょう。
①まずSlackでは、送信先のSlackチャネルを決定します。
例. 通知 など
②次にAWS ChatbotとSlackを紐づけます。
AWS Chatbotの画面を開き、「新しいクライアントを作成」しましょう。
ワークスペースとの紐づけが完了すると、設定済みクライアントとして表示されるかと思います。
設定済みクライアントからワークスペースの設定を開き、
「Slackチャネルを設定」します。
先ほど作成した通知用のチャネルを設定しておきます。
③続いて、AmazonSNSのトピックを作成します。
SNS(Simple Notification Service)が、CloudWatchとChatbotの橋渡しをするイメージです。
SNSの画面を開き、新規トピックを作成します。
トピックの設定はデフォルトで一旦問題ないかと思います。
トピックを作成したら、トピックの設定画面から
「サブスクリプションを作成」します。
トピックARNの欄で先ほど作成したChatbotの設定を選択します。
④SNSの設定が完了したら、最後にCloudWatchでアラーム設定を行います。
まず、CloudWatchLogsで対象のログストリームを選択し、
「メトリクスフィルターを作成」します。
今回は、エラーログのみ通知したいので、
「ERROR」という文字列を検知の対象とします。
※出力内容に合わせて適宜調整しましょう。
そのまま画面の指示に従ってメトリクスフィルターを作成できたら、
CloudWatchアラームを作成します。
メトリクスの選択で、直前に作成したメトリクスを選択します。
その後、条件の詳細を設定していきます。
何件以上検知されたらアラーム状態とするか、
どのくらいの時間間隔でアラーム状態を切り替えるか、などプロジェクトに合わせて設定しましょう。
次に通知先の選択をします。
先ほど設定したSNSトピックを選択し、アラームを作成すれば完了です!
最低限の設定ではありますが
これで、対象ログストリームにエラーログが含まれていた場合、
Slackにエラー通知が飛ぶようになります。
以上、Tipsをご紹介いたしました。
今回はSlackとの連携でしたが、
SNSからメールを送信したり、連携先を変えたりすることもできますので
ご自身の環境に合わせて設定いただくことで、
情報共有がスムーズに進むかと思います。
またログ通知だけでなく、システムの稼働状況を通知するなど
色々な用途で利用できます。
駆け足でしたが、雰囲気を掴んでいただけますと幸いです。
それではまた。
~~~~
ドリームビジョンではエンジニアの採用を通年で行っております。
ご興味のあるかたはご連絡お待ちしております。
▼ドリームビジョン