← Cloudflare Logs / logs
Logs Engine
Logs Engine vám umožňuje ukládat protokoly do R2 a přímo je dotazovat.
Ukládejte protokoly do R2
- Nastavte Logpush do R2 úlohy.
- Vytvořte R2 access key s alespoň oprávněními ke čtení R2.
- Ujistěte se, že máte oprávnění ke čtení Logshare.
- Alternativně vytvořte token Cloudflare API s následujícími oprávněními:
- Rozsah účtu
- Oprávnění ke čtení protokolů
Vyhledávání v protokolech
Protokoly můžete pomocí API dotazovat a stahovat podle časového rozsahu nebo RayID.
Ověřování
Pro všechna volání API jsou vyžadovány následující hlavičky:
X-Auth-Email- e-mailová adresa účtu Cloudflare přiřazená k doméněX-Auth-Key- klíč API Cloudflare
Alternativně lze k autentizaci použít také API tokeny s oprávněním Logs edit:
Authorization: Bearer <API_TOKEN>
Povinné hlavičky
Kromě zmíněných povinných autentizačních hlaviček jsou pro přístup API k protokolům uloženým ve vašem bucketu R2 vyžadovány následující hlavičky.
R2-access-key-id(povinné) - R2 Access Key IdR2-secret-access-key(povinné) - R2 Secret Access Key
Seznam souborů
Vypište relevantní objekty R2 obsahující protokoly odpovídající zadaným parametrům dotazu pomocí endpointu GET /accounts/{accountId}/logs/list.
Parametry dotazu
-
start(povinné) string (TimestampRFC3339) - počáteční čas ve formátu RFC 3339, napříkladstart=2022-06-06T16:00:00Z. -
end(povinné) string (TimestampRFC3339) - koncový čas ve formátu RFC 3339, napříkladend=2022-06-06T16:00:00Z. -
bucket(povinné) string (Bucket) - název bucketu R2, napříkladbucket=cloudflare-logs. -
prefixřetězec (Prefix), pod kterým se protokoly v R2 bucketu ukládají, napříkladprefix=http_requests/example.com/{DATE}. -
limitčíslo (Limit): maximální počet výsledků k vrácení, napříkladlimit=100.
Načíst protokoly podle časového rozsahu
Streamujte protokoly uložené v R2, které odpovídají zadaným parametrům dotazu, pomocí endpointu GET /accounts/{accountId}/logs/retrieve.
Parametry dotazu
-
start(povinné) string (TimestampRFC3339) - počáteční čas ve formátu RFC 3339, napříkladstart=2022-06-06T16:00:00Z -
end(povinné) string (TimestampRFC3339) - koncový čas ve formátu RFC 3339, napříkladend=2022-06-06T16:00:00Z -
bucket(povinné) string (Bucket) - název bucketu R2, napříkladbucket=cloudflare-logs -
prefixřetězec (Prefix), pod kterým se protokoly v R2 bucketu ukládají, napříkladprefix=http_requests/example.com/{DATE}
Příklad požadavku API
curl --globoff "https://api.cloudflare.com/client/v4/accounts/{account_id}/logs/retrieve?start=2022-06-01T16:00:00Z&end=2022-06-01T16:05:00Z&bucket=cloudflare-logs&prefix=http_requests/example.com/{DATE}" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "R2-Access-Key-Id: R2_ACCESS_KEY_ID" \
--header "R2-Secret-Access-Key: R2_SECRET_ACCESS_KEY"Výsledky lze do souboru přesměrovat pomocí > logs.json.
Pokud navíc chcete přijímat nezpracovaná data GZIP, aniž by je váš klient transparentně dekomprimoval, přidejte hlavičku --header "Accept-Encoding: gzip".
Načíst protokoly podle Ray ID
Pomocí protokolů uložených v R2 - funkce Logpull RayID Lookup umožňuje dotazovat se na indexovaný časový rozsah na přítomnost RayID a vrátit odpovídající výsledek. Tato funkce je dostupná uživatelům s beta předplatným Logpull RayID Lookup.
Vyhledání RayID je dvoukrokový proces. Nejprve je potřeba, aby byl indexován časový rozsah, teprve poté lze o záznam podle RayID požádat.
Indexy automaticky vyprší po sedmi dnech bez použití.
Indexovat časový rozsah
Před spuštěním dotazu můžete zadat časový rozsah, který chcete indexovat, a zúžit tak rozsah dotazu. V následujícím příkladu indexujeme jednu minutu protokolů uložených v bucketu R2 "cloudflare-logs" pod prefixem "http_requests/{DATE}".
Příklad požadavku API
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/logs/rayids/index \
--header "Authorization: Bearer <API_TOKEN>" \
--header "R2-Access-Key-Id: <R2_ACCESS_KEY_ID>" \
--header "R2-Secret-Access-Key: <R2_SECRET_ACCESS_KEY>" \
--header "Content-Type: application/json" \
--data-raw '{
"start": "2022-08-16T20:30:00Z",
"end": "2022-08-16T20:31:00",
"bucket": "cloudflare-logs",
"prefix": "http_requests/example.com/{DATE}"
}'Vyhledání RayID
Po indexování časového rozsahu proveďte GET požadavek s RayID. Pokud se v indexovaném časovém rozsahu najde odpovídající výsledek, záznam se vrátí. Upozorňujeme, že se parametry přesunuly z těla požadavku do URL. -g příznak je nutný, aby se předešlo {DATE} parametr, aby ho cURL nesprávně neinterpretoval.
Příklad požadavku API
curl --globoff "https://api.cloudflare.com/client/v4/accounts/{account_id}/logs/rayids/<RAY_ID>?bucket=cloudflare-logs&prefix=http_requests/example.com/{DATE}" \
--header "Authorization: Bearer <API_TOKEN>" \
--header "R2-Access-Key-Id: <R2_ACCESS_KEY_ID>" \
--header "R2-Secret-Access-Key: <R2_SECRET_ACCESS_KEY>"Řešení potíží
Při přístupu k API se zobrazuje chyba
- Chyba: Časový rozsah vrátil příliš mnoho výsledků. Zkraťte časový rozsah a zkuste to znovu.
Stavový kód HTTP 422 se vrátí, pokud je časový rozsah mezi parametry start a end příliš široký. Pokud na tento limit narazíte, zkuste dotaz na kratší časové rozmezí.
- Chyba: Poskytnutý token nemá povolené požadované funkce.
Obraťte se na svého account managera, aby k vašemu účtu přidal beta předplatné Logpull RayID Lookup.
- Chyba: Časový rozsah vrátil příliš mnoho výsledků. Zkraťte časový rozsah a zkuste to znovu.
Zóny s vysokým objemem provozu mohou v R2 vytvářet velké množství souborů protokolu. Zkuste zúžit počáteční a koncový časový rozsah, dokud nenajdete délku, která nejlépe vyhovuje objemu vašich protokolů.
Jak zjistím, jaký časový rozsah indexovat?
V současné době neexistuje proces indexování protokolů v okamžiku jejich doručení. Pokud znáte RayID a čas odeslání požadavku, zkuste zaindexovat protokoly z 5 až 10 minut po jeho dokončení.
Jaké je časové zpoždění mezi okamžikem, kdy událost nastane, a okamžikem, kdy si ji můžete vyžádat dotazem?
Logpush doručuje protokoly v dávkách co nejdříve, obvykle do jedné minuty. Poté je možné k protokolům přistupovat pomocí Logs Engine.
Má R2 nástroje pro řízení doby uchovávání dat?
R2 v současnosti nemá zavedeny kontrolní mechanismy uchovávání dat. Dotazovat se můžete zpětně až do okamžiku vytvoření úlohy Logpush.
Se kterými datovými sadami je Logs Engine kompatibilní?
Rozhraní retrieval API je kompatibilní se všemi datovými sadami, které podporujeme. Úplný seznam najdete na Datové sady sekce.