Cloudflare のログを Elastic へ送信し、すぐに可視化して分析できます。Elastic との連携を有効にすると、Cloudflare のオブザーバビリティとセキュリティデータを確認できる定義済みダッシュボードが使えます。
Cloudflare Logpush 連携は、次の 3 つのモードでデータを収集できます。
- HTTP Endpoint モード - Cloudflare が、Elastic Agent がホストする HTTP エンドポイントへログを直接送信します。
- AWS S3 polling モード - Cloudflare が S3 にデータを書き込み、Elastic Agent が S3 バケットの内容を一覧して新しいファイルを読み取ります。
- AWS S3 SQS モード - Cloudflare が S3 にデータを書き込み、S3 が新しいオブジェクト通知を SQS に送り、Elastic Agent が SQS から通知を受け取り、S3 オブジェクトを読み取ります。このモードでは複数の Agent を使えます。
使う方法を決め、Cloudflare ダッシュボードまたは API で適切な Logpush ジョブを設定します。
Elastic はデフォルトの JSON 形式に対応しています。
短期間の保存とバッファリングのためにオブジェクトストレージへログを送信し、そのあと Elastic に取り込む場合(推奨)は、次の送信先向けに Logpush ジョブを設定します。AWS S3、Google Cloud Storage、または Azure Blob Storage です。
HTTP Endpoint モード を使う場合は、API で Elastic Agent が受け持つ HTTP エンドポイントへログを送信します。
追加のセキュリティのため、同じカスタムヘッダーとその値を両方の側に設定します。
たとえば、特定のデータセット向けにジョブを作成し、ヘッダーと値を付ける場合です。
Required API token permissions
At least one of the following token permissions is required:Logs Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "<PUBLIC_DOMAIN>",
"destination_conf": "https://<PUBLIC_DOMAIN>:<PUBLIC_PORT>?header_<SECRET_HEADER>=<SECRET_VALUE>",
"dataset": "http_requests",
"output_options": {
"field_names": [
"RayID",
"EdgeStartTimestamp"
],
"timestamp_format": "rfc3339"
}
}'Logpush ジョブを設定したら、Elastic アプリで Integration のセットアップ ↗ の手順に従います。
Elastic アカウント ↗ にログインし、事前構築済みダッシュボードの表示とアラートの設定を行います。