Amazon EventBridge で Datadog と連携してみた! #datadog

2019.09.30

こんにちは 園部です。

少し前になりますが、 Amazon EventBridge が発表されました。

Datadog は、Amazon EventBridge 統合 SaaS アプリケーションパートナー となっています。
早速やってみたいと思います。

ユースケース

1) Datadog Synthetics でレスポンス遅延を検知 SSM OpsCenter で課題管理を行う
2) Datadog Infrastruture で EC2 ステータスエラーを検知 SSM Automation で再起動を行う

やってみる

Amazon EventBridge 初期設定

以下を参考に初期設定を行っていきます。

0. (Datadog コンソール) AWS Integration 設定

今回、手順は割愛しますが、Amazon EventBridge を利用するには、 AWS Integration が必要となります。

1. (AWS コンソール) Amazon EventBridge 用権限の追加

AWS Integration のために作成している IAM Role(Policy)に、今回必要となる events:CreateEventBus を追加します。 以下の例は、Core Permission に追加してものです。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "cloudwatch:Get*",
                "cloudwatch:List*",
                "ec2:Describe*",
                "support:*",
                "tag:GetResources",
                "tag:GetTagKeys",
                "tag:GetTagValues",
                "events:CreateEventBus"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

2. (Datadog コンソール) Amazon EventBridge Integration 設定

Integration から Amazon EventBridge を選択し、 Add Event Bus を選択します。

作成する Event Bus の NAME と REGION を入力します。

※ 現在(2019.09.30 時点)は、以下のリージョンが対応しています。
us-east-1, us-east-2, us-west-1, us-west-2, sa-east-1, eu-central-1, eu-west-1, eu-west-2, eu-west-3

東京リージョンは未対応のようです...

入力を終えたら、 Save します。

AWS コンソールへ戻り、先ほど指定したリージョンの Amazon EventBridge を表示すると、パートナーイベントソース として作成されています。

これで初期設定は完了です。続けて、ユースケースでのルール作成を行います。

ユースケース1

このユースケースでは、Datadog Synthetics で、外形監視している サービスでレスポンス遅延が発生したと想定して、そのアラートをチケットとして SSM OpsCenter へ連携し管理を行ってみます。

ルール作成

Amazon EventBridge で、ルールを作成します。

一覧に表示されます。

(Datadog コンソール) Monitor からテスト通知

Monitor にて、Synthetics のレスポンスタイムを指定した内容を選択します。

Notify your team で、今回作成した Event Bus を指定し、 Test Notifications を選択します。

Run Test を選択します。

(AWS コンソール) OpsCenter を確認

Event Bus と同じリージョンの OpsCenter に Opsitem として登録されています。
今回内容は詳細に設定していないため、Datadog Alert Notification といった簡素な内容となっています。

ユースケース2

このユースケースでは、Datadog Infrastructure で監視している EC2が ステータスチェックでエラーになったと想定して、該当インスタンスを SSM Automation で再起動します。

※ 対象となる EC2 には SSM Agent と Role がアタッチされている必要があります。

(Datadog コンソール) Event Bus 追加

新しいユースケース用に Event Bus を追加します。

新しくパートナーイベントソースが作成されています。

(AWS コンソール) ルール作成

ユースケース1 と類似する部分は割愛しています。

今回作成した Event Bus を選択します。

実行する SSM Automation を設定します。

(Datadog コンソール) Monitor からテスト通知

ユースケース1 と同様に設定し、Test Notifications を選択します。

(AWS コンソール) Automation の実行履歴を確認

その他

監視

Amazon EventBridge の画面自体には実行状況などの情報は記載されていませんが、CloudWatch にて以下の3項目が確認できます。

  • 呼び出し (Invocations)
  • TriggeredRules
  • FailedInvocations

Event Bus と ルール

今回、二つのユースケースを行いましたが当初は、一つのパートナーイベントソースで実現することを想定していましたが、複数ルールをアラートによって分岐させる方法を確認することができず、パートナーイベントソースを分けて登録して実施しました。
確かに用途(ターゲット)の異なるのであれば、分けて登録する方が自然かもしれません。この辺りはもう少し確認が必要な部分です。

まとめ

あまり良いユースケースではなかったかなという思いもありますが、Amazon EventBridge と Datadog の連携イメージを把握することが出来ました。あとは、Amazon EventBridge での Datadog 対応リージョンに東京リージョンが追加されれば、色々と使い道はあるのではないでしょうか!!

今後も両サービスを追っていきたいと思います!