コンテンツにスキップ

Datadogの有効化

Cloudflare Logpushは、CloudflareダッシュボードまたはAPIを介して、ログを直接Datadogにプッシュすることをサポートしています。

Cloudflareダッシュボードを介して管理

  1. Log in to the Cloudflare dashboard ↗.

  2. 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.

  3. Go to Analytics & Logs > Logpush.

  4. Select Create a Logpush job.

  1. 宛先の選択で、Datadogを選択します。

  2. 次の宛先情報を入力または選択します:

  • https://http-intake.logs.datadoghq.com/v1/input
  • Datadog APIキーは、これらの手順 ↗に従って取得できます。

  • サービス、ホスト名、Datadog ddsourceフィールド、およびddtagsフィールドは、URLパラメータとして設定できます。詳細については、Datadogのドキュメントのログセクション ↗を参照してください。これらのパラメータはオプションですが、ログのインデックス作成や処理に役立つ場合があります。これらのパラメータの値には特殊文字が含まれる場合があり、URLエンコードする必要があります。

宛先の詳細を入力し終えたら、続行を選択します。

  1. ストレージサービスにプッシュするデータセットを選択します。

  2. 次のステップでは、logpushジョブを構成する必要があります:

    • ジョブ名を入力します。
    • ログが一致する場合の下で、ログに含めるイベントや除外するイベントを選択できます。詳細についてはフィルターを参照してください。すべてのデータセットにこのオプションが利用できるわけではありません。
    • 次のフィールドを送信で、すべてのログをストレージ宛先にプッシュするか、プッシュしたいログを選択的に選ぶことができます。
  3. 詳細オプションでは、次のことができます:

    • ログのタイムスタンプフィールドの形式を選択します(RFC3339(デフォルト)、Unix、またはUnixNano)。
    • ログのサンプリングレートを選択するか、ランダムにサンプリングされたログのパーセンテージをプッシュします。
    • CVE-2021-44228のための赤actionを有効にします。このオプションは、${のすべての出現をx{に置き換えます。
  4. logpushジョブの構成が完了したら、送信を選択します。

APIを介して管理

Datadog Logpushジョブを設定するには:

  1. 適切なエンドポイントURLと認証パラメータを使用してジョブを作成します。
  2. ジョブを有効にして、ログのプッシュを開始します。

Ensure Log Share permissions are enabled, before attempting to read or configure a Logpush job. For more information refer to the Roles section.

1. ジョブを作成

ジョブを作成するには、次のフィールドを持つLogpushジョブエンドポイントにPOSTリクエストを送信します:

  • name(オプション) - ドメイン名をジョブ名として使用します。

  • destination_conf - エンドポイントURL、認証ヘッダー、およびDatadogがサポートするゼロまたはそれ以上のオプションパラメータからなるログ宛先。

    • <DATADOG_ENDPOINT_URL>: DatadogのHTTPログインテークエンドポイントで、以下のいずれかです。違いについてはDatadog APIリファレンス ↗を参照してください。

    https://http-intake.logs.datadoghq.com/v1/input

  • <DATADOG_API_KEY>: Datadog APIトークンは、これらの手順 ↗に従って取得できます。例えば、20e6d94e8c57924ad1be3c29bcaee0197d。

  • ddsource: cloudflareに設定します。

  • service、host、ddtags: Datadogが許可するオプションパラメータ。

Terminal window
"datadog://<DATADOG_ENDPOINT_URL>?header_DD-API-KEY=<DATADOG_API_KEY>&ddsource=cloudflare&service=<SERVICE>&host=<HOST>&ddtags=<TAGS>"
  • dataset - 受信したいログのカテゴリ。サポートされているデータセットの完全なリストについてはログフィールドを参照してください。
  • output_options(オプション) - フィールド、サンプルレート、タイムスタンプ形式を構成するには、ログ出力オプションを参照してください。

cURLを使用したリクエストの例:

Terminal window
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
}

2. ジョブを有効にする(更新)

ジョブを有効にするには、LogpushジョブエンドポイントにPUTリクエストを送信します。前のステップで返されたジョブIDをURLに使用し、リクエストボディに{"enabled": true}を送信します。

cURLを使用したリクエストの例:

Terminal window
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
}