フィルター
以下の表は、サポートされている比較演算子とその例を示しています。フィルターは、{"key":"<field>","operator":"<comparison_operator>","value":"<value>"}の形式でエスケープされたJSON文字列として追加されます。
-
各データセットに関連するフィールドのリストについては、ログフィールドページを参照してください。
-
比較演算子は、式がtrueを返すために、値がログ行のフィールドにどのように関連する必要があるかを定義します。
-
値はフィールドに関連付けられたデータを表します。
フィルターのフィールドには、約30の演算子と1000バイトの制限があります。この値を超えるとエラーが返されます。
-
フィルターは、
AND、ORの論理演算子を使用して接続できます。 -
論理演算子はネストできます。
以下は、論理演算子の実装例です。X、Y、Zはフィルター基準を表します:
-
X AND Y AND Z -
{"where":{"and":[{X},{Y},{Z}]}} -
X OR Y OR Z -
{"where":{"or":[{X},{Y},{Z}]}} -
X AND (Y OR Z) -
{"where":{"and":[{X}, {"or":[{Y},{Z}]}]}} -
(X AND Y) OR Z -
{"where":{"or":[{"and": [{X},{Y}]},{Z}]}}
フィルターはAPIまたはCloudflareダッシュボードを介して設定できます。フィルターの使用はオプションですが、使用する場合はwhereキーを含める必要があります。
以下は、APIを介してcURLを使用したリクエストの例です:
curl -s -X POST https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs \-H 'X-Auth-Key: <KEY>' \-H 'X-Auth-Email: <EMAIL>' \-H 'Content-Type: application/json' \-d '{"name":"static-assets","output_options": { "field_names": ["ClientIP", "EdgeStartTimestamp", "RayID"], "sample_rate": 0.1, "timestamp_format": "rfc3339" "CVE-2021-44228": "true"},"dataset": "http_requests","filter":"{\"where\":{\"and\":[{\"key\":\"ClientRequestPath\",\"operator\":\"contains\",\"value\":\"/static\"},{\"key\":\"ClientRequestHost\",\"operator\":\"eq\",\"value\":\"example.com\"}]}}","destination_conf": "s3://<BUCKET_PATH>?region=us-west-2/"}' | jq .ダッシュボードを介してフィルターを設定するには:
- Cloudflareダッシュボード ↗にログインし、使用するドメインを選択します。
- Analytics & Logs > Logsに移動します。
- Add Logpush jobを選択します。モーダルウィンドウが開きます。
- ストレージサービスにプッシュするデータセットを選択します。
- Select data fieldsの下のFilterセクションでフィルターを設定できます。
- Field、Operator、およびValueを選択する必要があります。
ANDおよびORの論理演算子を使用して、さらにフィルターを接続できます。- Nextを選択して、Logpushジョブの設定を続行します。