S3互換エンドポイントの有効化
Cloudflare Logpushは、CloudflareダッシュボードまたはAPIを介して、S3互換の宛先にログをプッシュすることをサポートしています。これには以下が含まれます:
- Alibaba Cloud OSS ↗
- Backblaze B2 ↗
- DigitalOcean Spaces ↗
- IBM Cloud Object Storage ↗
- JD Cloud Object Storage Service ↗
- Linode Object Storage ↗
- Oracle Cloud Object Storage ↗
- オンプレミスのCeph Object Gateway ↗
Logpushおよび現在のプロダクションAPIに関する詳細は、Cloudflare Logpushのドキュメントを参照してください。
-
Log in to the Cloudflare dashboard ↗.
-
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.
-
Go to Analytics & Logs > Logpush.
-
Select Create a Logpush job.
-
宛先の選択で、S3-Compatibleを選択します。
-
次の宛先情報を入力または選択します:
- Bucket - S3互換バケット名
- Path - ストレージコンテナ内のバケットの場所
- ログを日次のサブフォルダーに整理(推奨)
- Endpoint URL - バケット名やパスを含まないURL。例:
sfo2.digitaloceanspaces.com。 - Bucket region
- Access Key ID
- Secret Access Key
宛先の詳細を入力し終えたら、続行を選択します。
-
ストレージサービスにプッシュするデータセットを選択します。
-
次のステップでは、logpushジョブを構成する必要があります:
- ジョブ名を入力します。
- ログが一致する場合の下で、ログに含めるイベントや除外するイベントを選択できます。詳細についてはフィルターを参照してください。このオプションはすべてのデータセットで利用できるわけではありません。
- 次のフィールドを送信で、すべてのログをストレージ宛先にプッシュするか、プッシュしたいログを選択的に選ぶことができます。
-
詳細オプションでは、次のことができます:
- ログ内のタイムスタンプフィールドの形式を選択します(
RFC3339(デフォルト)、Unix、またはUnixNano)。 - ログのサンプリングレートを選択するか、ランダムにサンプリングされたログのパーセンテージをプッシュします。
CVE-2021-44228のためのレダクションを有効にします。このオプションは、${のすべての出現をx{に置き換えます。
- ログ内のタイムスタンプフィールドの形式を選択します(
-
logpushジョブの構成が完了したら、送信を選択します。
S3互換エンドポイントを設定するには:
- 適切なエンドポイントURLと認証パラメータを使用してジョブを作成します。
- ジョブを有効にして、ログのプッシュを開始します。
Ensure Log Share permissions are enabled, before attempting to read or configure a Logpush job. For more information refer to the Roles section.
ジョブを作成するには、次のフィールドを含むLogpushジョブエンドポイントにPOSTリクエストを送信します:
- name(オプション) - ドメイン名をジョブ名として使用します。
- destination_conf - エンドポイント名、バケット名、バケットパス、リージョン、access-key-id、およびsecret-access-keyを含むログ宛先を次の文字列形式で指定します:
"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を使用したリクエストの例:
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}ジョブを有効にするには、LogpushジョブエンドポイントにPUTリクエストを送信します。前のステップで返されたジョブIDをURLに使用し、リクエストボディに{"enabled": true}を送信します。
cURLを使用したリクエストの例:
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}