Auth0のログをDatadogへ飛ばす with terraform
Hakucho (白鳥)
Auth0のログをDatadogに飛ばそうとして困ったのでメモ
Auth0のログをDatadogに飛ばす
Auth0にはDatadogにログを飛ばすためのIntegrationがある
しかし弊社のDatadogがあるAP1じゃ使えない。
困った。
直接DatadogのAPIを叩く
こういうときのよくある手段としてDatadogのAPIを直接叩くというのがある。
今回もその手段をとろうとした。
しかし上記画像を見てもらえればわかるように、ブラウザ上からはヘッダーのカスタムができない。
DatadogのAPIを叩くにはDD-API-KEY
というヘッダーにDatadogのAPIキーを入れなくてはいけないが、ヘッダーがカスタムできないとAPIキーを入れられない。
困った。
Terraformを使って設定する
色々調べてみたら、terraformを使えばヘッダーをカスタムできることがわかった。
↓公式のドキュメントを参考にterraformを書く
resource "auth0_log_stream" "datadog-log-stream" {
name = "send-to-datadog"
type = "http"
sink {
# ↓自分の使っているリージョンに合わせて変更する
http_endpoint = "https://http-intake.logs.ap1.datadoghq.com/api/v2/logs?ddsource=auth0"
http_content_type = "application/json"
http_content_format = "JSONARRAY"
http_custom_headers = [
{
header = "DD-API-KEY"
# ↓APIキーを入れる
value = "hogehoge-api-key"
}
]
}
}
あとは terraform apply
すればDatadogにログが飛ぶ
おまけ:DatadogにAuth0のIntegrationを入れる
Datadogの方にAuth0のIntegrationを入れる。
Datadogのインテグレーションは外部から来たログを綺麗に整形するので、外部のログをDatadogの飛ばすなら、その飛ばし方が何であれとりあえずIntegrationを探して入れといた方がいい。