LoginSignup
19

More than 5 years have passed since last update.

メール経由の監視系の通知をどのようにSlackに集約するか on AWS

Last updated at Posted at 2016-12-04

こんにちは、GoodpatchProttチームでインフラを担当しています @urapico です。

今回は、メール経由で通知がくるものをどのように、Slack に集約するのかというお話です。主にAWSのお話でもあります。


サーバー監視系のソフトウェアの場合、結果をメールで通知してくるものが、いくつかあります。
例)
- Tripwire
- Logwatch

ただ、Prottチームでは、様々なディスカッション、CIの結果、コードレビューのメンション、DeployなどをSlack上で行っています。
なので、上記のようなソフトウェアの結果もSlackに集約できることがよりベターです。

AWS SES :e-mail:

まず、ソフトウェアのメールの受け先として、AWS SESを利用します。
SESは、メール送信のプラットフォームとして、非常に有名で活用している人も多いと思いますが、実は、メールを受信することも可能です。
しかも、受信可能な最大容量は、30Mと十分な容量です。

Amazon SES を使用した E メールの受信

この設定を利用すれば、SESで受信したタイミングで、AWS SNSやLambdaのfunctionなどを呼び出すということが可能です。

Serverless Framework / AWS Lambda :zap:

次に、SESで受信した内容をどのようにSlackに通知する処理を動かすのかという点ですが、そのためだけにサーバーを構築するのも億劫ですし、ここは、今流行りのServerlessの力を借りたいと思います。今回は、AWS Lambdaを利用します。

Lambda を活用する場合、素の状態だと、以下の項目の管理が非常に厳しいです。

  • コードの管理
  • Lambda自身の権限管理
  • テストコード、CI
  • Deploy
  • etc.

そこで、最近巷では、Lambdaを有効に活用ができるように、いくつかFrameworkが出てきています。
今回活用したのは、Serverless Framework です。 (名前からしてすごい。。。)

image

私は、以前に素の状態で、Lambdaを使って、画像圧縮処理などを実装した経験がありましたが、その時に感じたのは、
バージョン管理や、CIなど通常のDeploy作業などと異なり、かなり属人的で、人の手がかかる所が多く、
このまま利用し続けるのは、難しいというものでした。

ただ、このServerless Frameworkを使ったところ、その不安感を拭い去ってくれるのでした。
バージョン管理や、Deployや環境ごとに、変数の値を変更したりなど、非常に簡単にこのFramework上で扱えました。

Slackへの通知 :mailbox:

Slackへの通知で1点気をつけないといけないことは、Slackの1ポストの容量が決まっている点です。
監視系のツールがポストしてくる量は、それを上回ることが多いため、今回は、Slackに通知すると同時に、
S3のバケットにもuploadするようにしています。

このS3に対する権限管理も Serverless Frameworkが担ってくれます。
非常にシームレスに、Serverless のアプリケーションが構築でき、非常に満足です。

その他にも活躍 :muscle:

Serverless Frameworkの活躍する場は、上記以外にも、色々とあると思います。
具体的には、AWS Cloudwatch logs などで集約したログを監視して、該当のログがあった場合に、それを加工して、Slackのチャンネルに投稿することも可能です。

最後に / 宿題 :pencil:

今回、Slackに集約することができるようになりました。

ただ、このままではサーバーの数が増えると、Slackに通知される内容が多くなり、見るのも一苦労になってしまいます。
今後の宿題として、通知の量を何かしらのコントロールして、継続的に利用できるようにしていきたいと考えています。 :bow:

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19