コンテンツにスキップ

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に設定します。

  • servicehostddtags: 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
}