← Cloudflare Logs / logs / logpush / logpush-job
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>"}.
-
Viz Datové sady stránku se seznamem polí souvisejících s jednotlivými datovými sadami.
-
Operátory porovnání určují, jaký vztah musí mít hodnoty k polím v řádku protokolu, aby výraz vrátil hodnotu true.
-
Hodnoty představují data přiřazená k polím.
| 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
-
Filtry lze propojit pomocí
AND,ORlogické operátory. -
Logické operátory lze vnořovat.
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:
-
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}]}}
Filtry Logpush fungují jako propustná brána, nikoli jako vylučovací seznam. Když je více podmínek spojeno pomocí AND:
- Aby byl protokol odeslán, musí být splněny všechny podmínky (vyhodnoceny jako TRUE).
- Pokud je kterákoli jednotlivá podmínka FALSE, protokol se vyloučí.
Č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é:Logs Write
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:
-
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 ↗
-
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í.
-
Níže Výběr datových polí, v Filtr sekci si můžete nastavit filtry.
-
Musíte vybrat pole datasetu, Operátor, a Hodnota.
-
Další filtry můžete připojit pomocí
ANDaORlogické operátory. -
Vyberte Next a pokračujte v nastavení úlohy Logpush.