INTEGRITY Dokumentace

Filtry

Následující tabulka uvádí podporované porovnávací operátory a příklady hodnot. Filtry se přidávají jako escapované řetězce JSON ve formátu {"key":"<field>","operator":"<comparison_operator>","value":"<value>"}.

Název Zápis operátorů Řetězec Int Bool Array Objekt Příklad
Stejné jako eq ✅ ✅ ✅ ❌ ❌ {"key":"ClientRequestHost","operator":"eq","value":"example.com"}
Nerovná se !eq ✅ ✅ ✅ ❌ ❌ {"key":"ClientCountry","operator":"!eq","value":"ca"}
Less than lt ❌ ✅ ❌ ❌ ❌ {"key":"BotScore","operator":"lt","value":"30"}
Menší nebo rovno leq ❌ ✅ ❌ ❌ ❌ {"key":"BotScore","operator":"leq","value":"30"}
Větší než gt ❌ ✅ ❌ ❌ ❌ {"key":"BotScore","operator":"gt","value":"30"}
Větší nebo rovno geq ❌ ✅ ❌ ❌ ❌ {"key":"BotScore","operator":"geq","value":"30"}
Začíná na startsWith ✅ ❌ ❌ ❌ ❌ {"key":"ClientRequestPath","operator":"startsWith","value":"/foo"}
Končí na endsWith ✅ ❌ ❌ ❌ ❌ {"key":"ClientRequestPath","operator":"endsWith","value":"/foo"}
Nezačíná na !startsWith ✅ ❌ ❌ ❌ ❌ {"key":"ClientRequestPath","operator":"!startsWith","value":"/foo"}
Nekončí na !endsWith ✅ ❌ ❌ ❌ ❌ {"key":"ClientRequestPath","operator":"!endsWith","value":"/foo"}
Obsahuje contains ✅ ❌ ❌ ✅ ❌ {"key":"ClientRequestPath","operator":"contains","value":"/static"}
Neobsahuje !contains ✅ ❌ ❌ ✅ ❌ {"key":"ClientRequestPath","operator":"!contains","value":"/static"}
Hodnota je v množině hodnot in ✅ ✅ ❌ ❌ ❌ {"key":"EdgeResponseStatus","operator":"in","value":[200,201]}
Hodnota není v množině hodnot !in ✅ ✅ ❌ ❌ ❌ {"key":"EdgeResponseStatus","operator":"!in","value":[200,201]}

Pole filtru má limit přibližně 30 operátorů a 1000 bajtů. Cokoli nad tuto hodnotu vrátí chybu.

Logické operátory

Zde je několik příkladů použití logických operátorů. X, Y a Z se používají k vyjádření kritérií filtru:

Filtry Logpush fungují jako propustná brána, nikoli jako vylučovací seznam. Když je více podmínek spojeno pomocí AND:

Častým omylem je vykládat si filtr jako exclude logs matching ALL conditions místo include logs matching ALL conditions.

Nastavte filtry přes API nebo dashboard

Filtry lze nastavit přes API nebo v Cloudflare dashboardu. Použití filtru je volitelné, pokud jej ale použijete, musí obsahovat where klíč.

API

Zde je příklad požadavku pomocí cURL přes API:

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
Vytvořit úlohu Logpush
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"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/"
	}'

Dashboard

Chcete-li nastavit filtry prostřednictvím dashboardu:

  1. V dashboardu Cloudflare přejděte na Logpush stránku na úrovni účtu nebo domény (známé také jako zóna).

    Pro účet: Přejděte na Logpush ↗

    Pro doménu (známou také jako zóna): Přejděte na Logpush ↗

  2. Vyberte datovou sadu, kterou chcete odesílat do úložné služby. Podle vaší volby máte k dispozici datové sady v rozsahu účtu a datové sady s rozsahem zóny, v uvedeném pořadí.

  3. Níže Výběr datových polí, v Filtr sekci si můžete nastavit filtry.

  4. Musíte vybrat pole datasetu, Operátor, a Hodnota.

  5. Další filtry můžete připojit pomocí AND a OR logické operátory.

  6. Vyberte Next a pokračujte v nastavení úlohy Logpush.