Datadogで異常検知時に簡単にAWS内で後続処理を実行する方法

この記事を書いたメンバー:

那須 隆

Datadogで異常検知時に簡単にAWS内で後続処理を実行する方法

目次

AWS Loft Osaka、なかなか快適です。那須です。
AWS外からのイベントをトリガーになにか処理をしたい時ってありますよね?
ちょっと前だとAPI Gateway等を通じてLambdaに流したりしていたのですが、ふとEventBridgeの存在を思い出しました。

https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html

Datadogを使ってモニタリングして、その結果をwebhookで連携していたのをEventBridgeに変えたら仕組みが少しだけシンプルになるなーと思ったのでやってみました。

今回やってみること

datadogで異常検知したら内容をメール通知してみます。
どんな内容で飛んでくるのかも知りたいのでJSONそのままを投げましょう。
今回はメール通知ですが、EC2インスタンスにAPIコールしたり、SSMでアクション実行したり、Kinesisストリームに投げたり、別アカウントのイベントバスに投げたり、、まあいろいろなターゲットが指定できますよ。

設定の流れ

ざっくり流れを書くとこんな感じです。
1. Datadog用のイベントバスを作成
2. EventBridgeでルール作成
3. Datadogのモニタリング設定で異常検知時にEventBridgeに投げるように指定

1. Datadog用のイベントバスを作成

まずはEventBridgeコンソールに行きましょう。
左のメニューからパートナーイベントソースをクリックします。

Datadogのところの設定を押すと…

設定の流れの概要が出てきます。
これに従ってイベントバス設定します。
AWSアカウント番号だけはメモしてきましょう。

DatadogのIntegrations画面で、Amazon EventBridgeをクリックします。

説明と一緒に設定画面が表示されます。
説明書きにもありますが、Datadogが使うIAMロールのポリシーにevents:CreateEventBusアクションが許可されている必要があるので、事前に調整しておきましょう。
では画面下のAdd Event Busをクリックします。

作成するイベントバスの名前とリージョンを指定して、Saveを押します。
ちなみに、2019年10月21日時点では東京リージョンは指定できませんでした。
早く東京リージョンにも来てほしいですね!

DatadogのIAMロールのポリシーに問題がなければ、このように指定したリージョンに指定した名前でイベントバスが作成されていることがEventBridgeコンソールで確認できますよ。

2. EventBridgeでルール作成

次にEventBridgeコンソールでルールを作成します。
まずはルールの名前を決めましょう。

パターンを定義します。
パターンは、何かしらのトリガーを基にして処理するのか、スケジュールで処理するのかのどちらかを指定します。
今回はイベントパターンです。
Datadog用のイベントバスを利用するので、サービス名でDatadogを指定しましょう。

イベントバスの選択のところで、さきほど作成したイベントバスを指定します。

ターゲットを指定します。
ここではメール通知するだけにしたのでSNSを指定していますが、他にも選択できるターゲットはたくさんありますよ。
最後に作成ボタンを押しましょう。

3. EventBridgeに投げる指定

DatadogのMonitor設定画面で、このように@awseventbridge-~と書くことで先程作成したEventBridgeのルールの通りに動きます。

実際にテストアラートを投げると、JSONが含まれたメールが飛んできました。

最後に

今まではAWS外からなにか処理を実行させようとするとwebhookが便利でしたが、EventBridgeを使うことで簡単に連携することができるようになっています。
今回はDatadogを例にしてやってみましたが、他にも連携できるサービスがいろいろあるので是非EventBridgeコンソールで確認してみてください。

カテゴリー
タグ

Pick upピックアップ

Search記事を探す

キーワード

SAPシステムや基幹システムのクラウド移行・構築・保守、
DXに関して
お気軽にご相談ください

03-6260-6240 (受付時間 平日9:30〜18:00)