Skip to content

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

Cloudflare R2 を有効にする

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

Cloudflare Logpush は、ログを R2 へ直接送信できます。自動セットアップ(Cloudflare が R2 バケットを作成します)か、自分で R2 バケットを用意するカスタムセットアップがあります。自動セットアップは、バケットをすぐ用意したい場合やテスト向けです。設定を細かく制御したい場合は、カスタムセットアップを使います。

R2 の詳細は、Cloudflare R2 のドキュメントを参照してください。

自動セットアップ

Logpush ジョブに自動セットアップを使う場合は、次の手順に従います。

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

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

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

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

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

  1. 送信先として R2 Object Storage - automatic を選びます。

  2. 使うデータセットとストレージリージョンを選びます。

  3. Create Logpush job を選んで完了します。

これでセットアップは完了です。設定を細かく制御したい場合は、カスタムセットアップを検討してください。

カスタムセットアップ

Cloudflare Logpush は、Cloudflare ダッシュボードまたは API から、ログを R2 へ直接送信できます。

始める前に、次を用意します。

  • R2 バケットを作成し、R2 API トークンを設定します。

    1. R2 の UI を開き、Create bucket を選びます。

    2. Manage R2 API Tokens を選びます。

    3. Create API token を選びます。

    4. Permission で、トークンに Edit 権限を選びます。

    5. Secret Access Key と Access Key ID をコピーします。Logpush ジョブの設定時に使います。

  • 次の権限があることを確認します。

    • R2 write、Logshare Edit。

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

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

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

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

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

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

  1. Select a destinationR2 Object Storage を選びます。

  2. 次の送信先の詳細を入力または選択します。

    • Bucket - R2 バケット名
    • Path - バケット内の場所。例: cloudflare-logs/http_requests/example.com
    • Organize logs into daily subfolders(推奨)
    • AuthenticationR2 Access Key IDR2 Secret Access Key を追加します。詳細は Manage R2 API tokens を参照してください。

送信先の詳細を入力したら、Continue を選びます。

  1. ストレージサービスへ送るデータセットを選びます。

  2. 次のステップで Logpush ジョブを設定します。

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

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

API で管理する

ジョブを作成するには、Logpush jobs エンドポイントへ POST リクエストを送り、次のフィールドを指定します。

  • name(任意)- ジョブ名にはドメイン名を使います。
  • destination_conf - バケットパス、アカウント ID、R2 access key ID、R2 secret access key からなるログ送信先です。
r2://<BUCKET_PATH>/{DATE}?account-id=<ACCOUNT_ID>&access-key-id=<R2_ACCESS_KEY_ID>&secret-access-key=<R2_SECRET_ACCESS_KEY>
  • dataset - 受け取るログのカテゴリです。対応データセットの一覧は データセット を参照してください。
  • output_options(任意)- フィールド、サンプルレート、タイムスタンプ形式の設定は API configuration options を参照してください。

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>",
		"output_options": {
				"field_names": [
						"ClientIP",
						"ClientRequestHost",
						"ClientRequestMethod",
						"ClientRequestURI",
						"EdgeEndTimestamp",
						"EdgeResponseBytes",
						"EdgeResponseStatus",
						"EdgeStartTimestamp",
						"RayID"
				],
				"timestamp_format": "rfc3339"
		},
		"destination_conf": "r2://<BUCKET_PATH>/{DATE}?account-id=<ACCOUNT_ID>&access-key-id=<R2_ACCESS_KEY_ID>&secret-access-key=<R2_SECRET_ACCESS_KEY>",
		"dataset": "http_requests",
		"enabled": true
	}'

レスポンス:

{
  "errors": [],
  "messages": [],
  "result": {
    "id": <JOB_ID>,
    "dataset": "http_requests",
    "kind": "",
    "enabled": true,
    "name": "<DOMAIN_NAME>",
    "output_options": {
      "field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp", "EdgeResponseBytes", "EdgeResponseStatus" ,"EdgeStartTimestamp", "RayID"],
      "timestamp_format": "rfc3339"
    },
    "destination_conf": "r2://<BUCKET_PATH>/{DATE}?account-id=<ACCOUNT_ID>&access-key-id=<R2_ACCESS_KEY_ID>&secret-access-key=<R2_SECRET_ACCESS_KEY>",
    "last_complete": null,
    "last_error": null,
    "error_message": null
  },
  "success": true
}

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

R2 からログをダウンロードする

ログが R2 に保存されたら、次の方法でダウンロードできます。

ダッシュボード

  1. Cloudflare ダッシュボードで R2 ページを開きます。

    Overview を開く ↗
  2. バケットを選びます。

  3. バケットのページで、対象のログファイルを探します。

  4. ファイル横の ... アイコンを選んでダウンロードします。

ログファイルの一覧

AWS CLI

Cloudflare R2 は S3 互換なので、AWS CLI で操作できます。

  • AWS CLI に R2 の認証情報を設定します。
  • aws s3 cp コマンドでログファイルをダウンロードします。
aws s3 cp s3://<BUCKET-NAME>/<PATH-TO-LOG-FILE> <LOCAL-DESTINATION>

<bucket-name><path-to-log-file><local-destination> を実際の値に置き換えます。

ダウンロードしたファイルは gzip 圧縮されているため、テキストエディターで開く前に展開してください。

役に立ちましたか?