INTEGRITY Dokumentace

Logs Engine

Logs Engine vám umožňuje ukládat protokoly do R2 a přímo je dotazovat.

Ukládejte protokoly do R2

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:

Alternativně lze k autentizaci použít také API tokeny s oprávněním Logs edit:

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.

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

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

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

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í.

Obraťte se na svého account managera, aby k vašemu účtu přidal beta předplatné Logpull RayID Lookup.

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.