コンテンツにスキップ

HTTP宛先の有効化

Cloudflare Logpushは、構成可能なHTTPエンドポイントにログを送信する機能をサポートするようになりました。

HTTPエンドポイントへのLogpushを使用する際、Cloudflareの顧客はプッシュされたログの認証を自分で行うことが期待されています。たとえば、顧客はLogpush宛先のURLまたはHTTPヘッダーに秘密のトークンを指定することができます。

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. 宛先を選択で、HTTP宛先を選択します。

  2. ログを送信したいHTTPエンドポイントを入力し、続行を選択します。

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

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

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

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

APIから管理

Logpushジョブを作成するには、適切なパラメータを使用してLogpushジョブ作成エンドポイントURLPOSTリクエストを行います。

サポートされているパラメータは次のとおりです:

  • 他のソースから変更されていないフィールド:
    • dataset(必須):たとえば、http_requests
    • name(オプション):ジョブ名としてドメイン名を使用することをお勧めします。
    • output_options(オプション):フィールド、サンプルレート、タイムスタンプフォーマットを構成するためにログ出力オプションを参照してください。
  • ユニークフィールド:
    • destination_conf:ログを送信する場所。これはエンドポイントURLと使用されるHTTPヘッダーで構成されます。
      • "header_*" URLパラメータはリクエストヘッダーを設定するために使用されます。
        • HTTPSエンドポイントには、設定した"header_*" URLパラメータと競合するカスタムURLパラメータを含めることはできません。
        • これらのパラメータは正しくURLエンコードされている必要があります(つまり、空白には"%20"を使用するなど)、そうでないと一部の特殊文字が正しくデコードされない場合があります。
      • destination_confには、特殊な"header_*"パラメータに加えて、さらに多くのURLパラメータが含まれる場合があります。
        • URLエンコードされていない特殊文字は、アップロード時にエンコードされます。
      • 例:https://logs.example.com?header_Authorization=Basic%20REDACTED&tags=host:theburritobot.com,dataset:http_requests
    • max_upload_bytes(オプション):ログのバッチの最大未圧縮ファイルサイズ。これは少なくとも5MBである必要があります。最小ファイルサイズを設定することはできません。つまり、ログファイルはこのバッチサイズよりもはるかに小さい場合があります。
    • max_upload_records(オプション):バッチごとの最大ログ行数。これは少なくとも1000行以上である必要があります。バッチごとの最小ログ行数を指定することはできません。つまり、ログファイルにはこの行数よりもはるかに少ない行が含まれる場合があります。

例 curlリクエスト

Terminal window
$ curl -s https://api.cloudflare.com/client/v4/zones/$ZONE_TAG/logpush/jobs -X POST -d '
{
"name": "theburritobot.com-https",
"output_options": {
"field_names": ["EdgeStartTimestamp", "RayID"],
"timestamp_format": "rfc3339"
},
"destination_conf": "https://logs.example.com?header_Authorization=Basic%20REDACTED&tags=host:theburritobot.com,dataset:http_requests",
"max_upload_bytes": 5000000,
"max_upload_records": 1000,
"dataset": "http_requests",
"enabled": true
}' \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json"