Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

HTTP 送信先を有効にする

最終更新 Markdown で表示Agent セットアップ

Cloudflare Logpush は、設定可能な HTTP エンドポイントへのログ送信に対応しています。

HTTP エンドポイントへ Logpush する場合、プッシュされたログの認証はお客様側で行う必要があります。たとえば、Logpush 送信先の URL や HTTP ヘッダーにシークレットトークンを指定できます。

Cloudflare ダッシュボードで管理する

  1. Cloudflare ダッシュボードで、アカウントまたはドメイン(ゾーンとも呼ばれます)の Logpush ページを開きます。

    アカウントの場合: Logpush を開く ↗

    ドメイン(ゾーン)の場合: Logpush を開く ↗

  2. 選んだ範囲に応じて、それぞれ アカウントスコープのデータセットゾーンスコープのデータセット を利用できます。

  3. Create a Logpush job を選択します。

  1. Select a destinationHTTP destination を選びます。

  2. ログの送信先となる HTTP endpoint を入力し、Continue を選択します。 - リクエストヘッダーを設定するには "header_*" URL パラメーターを使えます。たとえば、HTTP エンドポイントへ認証トークンを渡す場合です。

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

  4. 次の手順で、Logpush ジョブを設定します。

    • Job name を入力します。
    • If logs match では、ログに含めるイベントや除外するイベントを選べます。詳細は フィルター を参照してください。このオプションがないデータセットもあります。
    • Send the following fields では、すべてのログをストレージ送信先へプッシュするか、プッシュするログを選ぶかを選べます。
  5. Advanced Options では、次の設定ができます。

    • ログ内のタイムスタンプフィールドの形式(RFC3339(デフォルト)、Unix、または UnixNano)を選びます。
    • ログの サンプリングレート を選ぶか、ランダムにサンプリングした割合のログをプッシュします。
    • CVE-2021-44228 のリダクションを有効にします。このオプションは ${ の出現をすべて x{ に置き換えます。
  6. Logpush ジョブの設定が終わったら Submit を選択します。

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(任意): ログバッチの非圧縮時の最大ファイルサイズです。値は 5 MB 以上 1 GB 以下である必要があります。最小ファイルサイズは設定できません。そのため、ログファイルはこのバッチサイズよりかなり小さいことがあります。
    • max_upload_records(任意): バッチあたりの最大ログ行数です。1,000 行以上 1,000,000 行以下である必要があります。バッチあたりの最小行数は指定できません。そのため、ログファイルはこの値よりかなり少ない行数になることがあります。

cURL を使ったリクエスト例です。

Required API token permissions

At least one of the following token permissions is required:
  • Logs Write
Create Logpush jobbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "<DOMAIN_NAME>",
		"destination_conf": "https://logs.example.com?header_Authorization=Basic%20REDACTED&tags=host:theburritobot.com,dataset:http_requests",
		"output_options": {
				"field_names": [
						"ClientIP",
						"ClientRequestHost",
						"ClientRequestMethod",
						"ClientRequestURI",
						"EdgeEndTimestamp",
						"EdgeResponseBytes",
						"EdgeResponseStatus",
						"EdgeStartTimestamp",
						"RayID"
				],
				"timestamp_format": "rfc3339"
		},
		"max_upload_bytes": 5000000,
		"max_upload_records": 1000,
		"dataset": "http_requests",
		"enabled": true
	}'

レスポンス:

{
  "errors": [],
  "messages": [],
  "result": {
    "id": <JOB_ID>,
    "dataset": "http_requests",
    "kind": "",
    "max_upload_bytes": 5000000,
    "max_upload_records": 1000,
    "enabled": true,
    "name": "<DOMAIN_NAME>",
    "output_options": {
      "field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp", "EdgeResponseBytes", "EdgeResponseStatus" ,"EdgeStartTimestamp", "RayID"],
      "timestamp_format": "rfc3339"
    },
    "destination_conf": "https://logs.example.com?header_Authorization=Basic%20REDACTED&tags=host:theburritobot.com,dataset:http_requests",
    "last_complete": null,
    "last_error": null,
    "error_message": null
  },
  "success": true
}

ジョブの更新(有効化と無効化を含む)は、cURL で Logpush を管理する を参照してください。

役に立ちましたか?