Datadogの有効化
Cloudflare Logpushは、CloudflareダッシュボードまたはAPIを介して、ログを直接Datadogにプッシュすることをサポートしています。
-
Log in to the Cloudflare dashboard ↗.
-
Select the Enterprise account or domain (also known as zone) you want to use with Logpush. Depending on your choice, you have access to account-scoped datasets and zone-scoped datasets, respectively.
-
Go to Analytics & Logs > Logpush.
-
Select Create a Logpush job.
-
宛先の選択で、Datadogを選択します。
-
次の宛先情報を入力または選択します:
- Datadog URLエンドポイントは、以下のいずれかです。違いについてはDatadog APIリファレンス ↗を参照してください。
https://http-intake.logs.datadoghq.com/v1/input
https://http-intake.logs.datadoghq.com/api/v2/logs
-
Datadog APIキーは、これらの手順 ↗に従って取得できます。
-
サービス、ホスト名、Datadog ddsourceフィールド、およびddtagsフィールドは、URLパラメータとして設定できます。詳細については、Datadogのドキュメントのログセクション ↗を参照してください。これらのパラメータはオプションですが、ログのインデックス作成や処理に役立つ場合があります。これらのパラメータの値には特殊文字が含まれる場合があり、URLエンコードする必要があります。
宛先の詳細を入力し終えたら、続行を選択します。
-
ストレージサービスにプッシュするデータセットを選択します。
-
次のステップでは、logpushジョブを構成する必要があります:
- ジョブ名を入力します。
- ログが一致する場合の下で、ログに含めるイベントや除外するイベントを選択できます。詳細についてはフィルターを参照してください。すべてのデータセットにこのオプションが利用できるわけではありません。
- 次のフィールドを送信で、すべてのログをストレージ宛先にプッシュするか、プッシュしたいログを選択的に選ぶことができます。
-
詳細オプションでは、次のことができます:
- ログのタイムスタンプフィールドの形式を選択します(
RFC3339(デフォルト)、Unix、またはUnixNano)。 - ログのサンプリングレートを選択するか、ランダムにサンプリングされたログのパーセンテージをプッシュします。
CVE-2021-44228のための赤actionを有効にします。このオプションは、${のすべての出現をx{に置き換えます。
- ログのタイムスタンプフィールドの形式を選択します(
-
logpushジョブの構成が完了したら、送信を選択します。
Datadog Logpushジョブを設定するには:
- 適切なエンドポイントURLと認証パラメータを使用してジョブを作成します。
- ジョブを有効にして、ログのプッシュを開始します。
Ensure Log Share permissions are enabled, before attempting to read or configure a Logpush job. For more information refer to the Roles section.
ジョブを作成するには、次のフィールドを持つLogpushジョブエンドポイントにPOSTリクエストを送信します:
-
name(オプション) - ドメイン名をジョブ名として使用します。
-
destination_conf - エンドポイントURL、認証ヘッダー、およびDatadogがサポートするゼロまたはそれ以上のオプションパラメータからなるログ宛先。
<DATADOG_ENDPOINT_URL>: DatadogのHTTPログインテークエンドポイントで、以下のいずれかです。違いについてはDatadog APIリファレンス ↗を参照してください。
https://http-intake.logs.datadoghq.com/v1/inputhttps://http-intake.logs.datadoghq.com/api/v2/logs -
<DATADOG_API_KEY>: Datadog APIトークンは、これらの手順 ↗に従って取得できます。例えば、20e6d94e8c57924ad1be3c29bcaee0197d。 -
ddsource:cloudflareに設定します。 -
service、host、ddtags: Datadogが許可するオプションパラメータ。
"datadog://<DATADOG_ENDPOINT_URL>?header_DD-API-KEY=<DATADOG_API_KEY>&ddsource=cloudflare&service=<SERVICE>&host=<HOST>&ddtags=<TAGS>"- dataset - 受信したいログのカテゴリ。サポートされているデータセットの完全なリストについてはログフィールドを参照してください。
- output_options(オプション) - フィールド、サンプルレート、タイムスタンプ形式を構成するには、ログ出力オプションを参照してください。
cURLを使用したリクエストの例:
curl -s -X POST \https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs \--header "X-Auth-Email: <EMAIL>" \--header "X-Auth-Key: <API_KEY>" \--header "Content-Type: application/json" \--data '{"name":"<DOMAIN_NAME>","destination_conf": "datadog://<DATADOG_ENDPOINT_URL>?header_DD-API-KEY=<DATADOG_API_KEY>&ddsource=cloudflare&service=<SERVICE>&host=<HOST>&ddtags=<TAGS>","output_options": { "field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp", "EdgeResponseBytes", "EdgeResponseStatus" ,"EdgeStartTimestamp", "RayID"], "timestamp_format": "rfc3339"},"dataset": "http_requests"}' | jq .レスポンス:
{ "errors": [], "messages": [], "result": { "id": 100, "dataset": "http_requests", "enabled": false, "name": "<DOMAIN_NAME>", "output_options": { "field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp", "EdgeResponseBytes", "EdgeResponseStatus" ,"EdgeStartTimestamp", "RayID"], "timestamp_format": "rfc3339" }, "destination_conf": "datadog://<DATADOG_ENDPOINT_URL>?header_DD-API-KEY=<DATADOG_API_KEY>", "last_complete": null, "last_error": null, "error_message": null }, "success": true}ジョブを有効にするには、LogpushジョブエンドポイントにPUTリクエストを送信します。前のステップで返されたジョブIDをURLに使用し、リクエストボディに{"enabled": true}を送信します。
cURLを使用したリクエストの例:
curl -s -X PUT \https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs/100 -d'{"enabled":true}' | jq .レスポンス:
{ "errors": [], "messages": [], "result": { "id": 100, "dataset": "http_requests", "enabled": true, "name": "<DOMAIN_NAME>", "output_options": { "field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp", "EdgeResponseBytes", "EdgeResponseStatus" ,"EdgeStartTimestamp", "RayID"], "timestamp_format": "rfc3339" }, "destination_conf": "datadog://<DATADOG_ENDPOINT_URL>?header_DD-API-KEY=<DATADOG_API_KEY>", "last_complete": null, "last_error": null, "error_message": null }, "success": true}