コンテンツにスキップ

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
}