Auth0ログの外部連携3選(DatadogとNew RelicとAmazon CloudWatch Logs)

2024.04.30

Auth0のログインやログアウト、Auth0の各種APIの実行ログとそれらのメトリクスはAuth0ダッシュボードからでも確認することができますが、あまり使い勝手のよいものではなく監視に特化したツールと連携することが望ましいです。

今回は、Auth0のLog Streamという機能を使って「Datadog」「New Relic」「Amazon CloudWatch Logs」と連携する方法を試します。

尚、監視ツールの選定は私の独断と偏見により、よく見かけるツールを選びました。

※Auth0のLog StreamはAuth0 Essentialプラン以上でのみ使用可能です。

では、はじめます。

Datadog

事前準備

アカウントを作成します。Datadogは14日間無料のトライアルがあります。

画面に従ってアカウントを作成します。

ただし、リージョン選択は注意が必要です。

Auth0側で設定できるリージョンは、EU・US1・US3・US5リージョンのみです(202404現在)

既にAP1リージョンでアカウント作成済みの方は、この方法では連携できないので、後述するCustom Webhookを使用してください。

アカウント作成後、ダッシュボードからAPI Keyを発行します。

Keyをコピーしておきます。

連携

Auth0のダッシュボードから Monitoring > Streams を選択し、Create Log Streamを選択します。

連携先を選択します。

Datadog を選択します。

先ほどメモしたAPI Keyを入力します。Regionは対応するリージョンを選択します。

SaveするとHealthタブから連携が成功しているかどうか確認できます。

ログイン・ログアウトしてみてから、Datadog側でログとメトリクスを確認します。

ちゃんと詳細ログも連携されていますね。

New Relic

事前準備

アカウントを作成します。New Relicは条件付きのフリープランがあります。

アカウント作成後、ダッシュボードから Add Data を選択し、Logs APIと検索します。

Begin installation を選択します。

Create a new key を選択し、Keyをコピーします。

HTTPS endpointもコピーします。

設定完了です。

連携

Auth0のダッシュボードから Monitoring > Streams を選択し、Create Log Streamを選択します。

連携先を選択します。

Custom Web hookを選択します。

Payload URLを入力します。

先ほどコピーしたHTTPS endpointとクエリストリングにAPI Keyを入力します。

New Relic側がApi-Keyヘッダーしか受け付けておらず、Auth0側のAuthorizationヘッダーによる認証は使えません。

SaveするとHealthタブから連携が成功しているかどうか確認できます。

ログイン・ログアウトしてみてから、New Relic側でログとメトリクスを確認します。

ちゃんと詳細ログも連携されていますね。

Amazon CloudWatch Logs

事前準備

AWSアカウントの作成は省略します。

連携

Auth0のダッシュボードから Monitoring > Streams を選択し、Create Log Streamを選択します。

連携先を選択します。

Amazon EventBridgeを選択します。

連携させたいAWSアカウントIDとRegionを入力します。

AWS側のAmazon EventBridgeを確認するとイベントソースが作成されています。

Associate with event busを選択します。

Associateを選択し、アクティベートします。

Auth0イベントのルールを作成します。

ルールの名前を入力して次へ

イベントパターンだけ定義したら、他はそのままで次へ

ターゲットを入力して次へ

あとは画面に従って進めていくと作成が完了します。

ログイン・ログアウトしてみてから、CloudWatch Logs側でログを確認します。

ちゃんと詳細ログも連携されていますね。

感想

Auth0のログは、プランにもよりますが最長で30日間までしか保存しないため、長期間ログをアーカイブしておきたい場合には、ログを退避させておくことが必要です。

ログをアーカイブするだけなら別の方法もありますが、今回のように監視ツールと連携させることで、アラート・監視やトラブルシュートに役立てることが出来ます。

以上です。