コンテンツにスキップ

S3互換エンドポイントの有効化

Cloudflare Logpushは、CloudflareダッシュボードまたはAPIを介して、S3互換の宛先にログをプッシュすることをサポートしています。これには以下が含まれます:

Logpushおよび現在のプロダクションAPIに関する詳細は、Cloudflare Logpushのドキュメントを参照してください。

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

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

    • Bucket - S3互換バケット名
    • Path - ストレージコンテナ内のバケットの場所
    • ログを日次のサブフォルダーに整理(推奨)
    • Endpoint URL - バケット名やパスを含まないURL。例:sfo2.digitaloceanspaces.com。
    • Bucket region
    • Access Key ID
    • Secret Access Key

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

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

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

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

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

APIを介して管理

S3互換エンドポイントを設定するには:

  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 - エンドポイント名、バケット名、バケットパス、リージョン、access-key-id、およびsecret-access-keyを含むログ宛先を次の文字列形式で指定します:
Terminal window
"s3://<BUCKET_NAME>/<BUCKET_PATH>?region=<REGION>&access-key-id=<ACCESS_KEY_ID>&secret-access-key=<SECRET_ACCESS_KEY>&endpoint=<ENDPOINT_URL>"
  • dataset - 受信したいログのカテゴリ。サポートされているデータセットの完全なリストについてはログフィールドを参照してください。
  • output_options(オプション) - フィールド、サンプルレート、およびタイムスタンプ形式を構成するには、ログ出力オプションを参照してください。

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

Terminal window
curl -s -X POST \
https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs \
-d '{
"name":"<DOMAIN_NAME>",
"destination_conf":"s3://<BUCKET_NAME>/<BUCKET_PATH>?region=<REGION>&access-key-id=<ACCESS_KEY_ID>&secret-access-key=<SECRET_ACCESS_KEY>&endpoint=<ENDPOINT_URL>",
"output_options": {
"field_names": ["ClientIP", "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": "s3://<BUCKET_NAME>/<BUCKET_PATH>?region=<REGION>&access-key-id=<ACCESS_KEY_ID>&secret-access-key=<SECRET_ACCESS_KEY>&endpoint=<ENDPOINT_URL>",
"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": "s3://<BUCKET_NAME>/<BUCKET_PATH>?region=<REGION>&access-key-id=<ACCESS_KEY_ID>&secret-access-key=<SECRET_ACCESS_KEY>&endpoint=<ENDPOINT_URL>",
"last_complete": null,
"last_error": null,
"error_message": null
},
"success": true
}