← Cloudflare Logs / logs
Instant Logs
Instant Logs umožňuje zákazníkům Cloudflare sledovat živý přenos provozu své domény přímo z Cloudflare dashboardu nebo z rozhraní příkazové řádky (CLI). Data v reálném čase vám pomohou vyšetřit útok, řešit problémy, ladit nebo otestovat změny provedené ve vaší síti. Instant Logs je odlehčený nástroj, snadno se používá a nevyžaduje žádné další nastavení.
Dostupnost
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
| Dostupnost | Ne | Ne | Ano | Ano |
Instant Logs přes Cloudflare dashboard
-
V dashboardu Cloudflare přejděte na Instant Logs stránce.
Přejděte na Instant Logs ↗ -
Vyberte Spustit streamování.
-
(volitelné) Vyberte Přidat filtr k omezení zobrazených událostí.
Pole podporovaná v naší Datová sada HTTP requests lze použít při přidávání filtrů. Některá pole vyžadující další předplatné nejsou v dashboardu podporována, budete muset použít rozhraní příkazového řádku.
Jakmile vyberete filtr a stream se spustí, zobrazí se pouze řádky protokolu odpovídající zadaným kritériím filtru. Filtry se zpětně nevztahují na protokoly, které se v dashboardu zobrazovaly už dříve.
Instant Logs přes CLI
1. Vytvořte úlohu Instant Logs
Vytvořte relaci odesláním POST požadavek na koncový bod úlohy Instant Logs s následujícími parametry:
-
Pole - Uveďte libovolné pole dostupné v Datová sada HTTP requests.
-
Ukázka - Parametr sample je frekvence vzorkování záznamů nastavená klientem:
"sample": 1je 100 % záznamů"sample": 10je 10 % a tak dále.
- Filtry - Pomocí filtrů se můžete zaměřit na konkrétní události. Filtr se skládá ze tří částí: klíče, operátoru a hodnoty.
Všechny podporované operátory najdete v Filtry stránce.
Níže uvádíme tři příklady filtrů:
# Filter when client IP country is not Canada:
"filter": "{\"where\":{\"and\":[{\"key\":\"ClientCountry\",\"operator\":\"neq\",\"value\":\"ca\"}]}}"# Filter when the status code returned from Cloudflare is either 200 or 201:
"filter": "{\"where\":{\"and\":[{\"key\":\"EdgeResponseStatus\",\"operator\":\"in\",\"value\":[200,201]}]}}"# Filter when the request path contains "/static" and the request hostname is "example.com":
"filter": "{\"where\":{\"and\":[{\"key\":\"ClientRequestPath\",\"operator\":\"contains\",\"value\":\"/static\"}, {\"where\":{\"and\":[{\"key\":\"ClientRequestHost\",\"operator\":\"eq\",\"value\":\"example.com\"}]}}"Příklad požadavku pomocí cURL:
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:Logs Read
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/edge/jobs" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"fields": "ClientIP,ClientRequestHost,ClientRequestMethod,ClientRequestURI,EdgeEndTimestamp,EdgeResponseBytes,EdgeResponseStatus,EdgeStartTimestamp,RayID",
"sample": 100,
"filter": "",
"kind": "instant-logs"
}'Odpověď:
Odpověď bude obsahovat nové pole s názvem destination_conf. Hodnotou tohoto pole je vaše jedinečná adresa WebSocketu, na kterou budou přicházet zprávy z globální sítě Cloudflare.
{
"errors": [],
"messages": [],
"result": {
"id": <JOB_ID>,
"fields": "ClientIP,ClientRequestHost,ClientRequestMethod,ClientRequestURI,EdgeEndTimestamp,EdgeResponseBytes,EdgeResponseStatus,EdgeStartTimestamp,RayID",
"sample": 100,
"filter": "",
"destination_conf": "wss://logs.cloudflare.com/instant-logs/ws/sessions/<SESSION_ID>",
"kind": "instant-logs"
},
"success": true
}2. Připojte se k WebSocketu
Pomocí nástroje CLI, jako je Websocat ↗, se můžete připojit k WebSocketu a okamžitě začít přijímat protokoly.
websocat wss://logs.cloudflare.com/instant-logs/ws/sessions/<SESSION_ID>Odpověď:
Po připojení k websocketu začnete dostávat zprávy ve formátu JSON odděleného řádky.
Angle Grinder
Jakmile máte připojení k websocketu Cloudflare a přijímáte protokoly z globální sítě Cloudflare, můžete protokoly začít dále třídit a analyzovat. Užitečným nástrojem pro to je Angle Grinder ↗. Angle Grinder umožňuje na stdin provádět filtrování, transformace a agregace s plnou podporou JSON. Pokud chcete například zjistit počet návštěvníků z jednotlivých zemí, můžete sečíst počet událostí podle ClientCountry .
websocat wss://logs.cloudflare.com/instant-logs/ws/sessions/<SESSION_ID> | agrind '* | json | sum(sampleInterval) by ClientCountry'Odpověď:
| ClientCountry | _sum |
|---|---|
| pt | 4 |
| fr | 3 |
| nás | 3 |
| om | 2 |
| ar | 1 |
| au | 1 |
Dostupné datové sady
Prozatím HTTP requests je jediná podporovaná datová sada. V budoucnu plánujeme rozšíření na další datové sady.
Export
Tabulku protokolů zobrazenou v řídicím panelu můžete stáhnout ve formátu JSON přes Export tlačítko.
Limity
Instant Logs má nastavené tři limity:
- Na jednu zónu připadá jen jedna aktivní relace Instant Logs.
- Maximální doba trvání relace je 60 minut.
- Pokud přestanete socket poslouchat déle než pět minut.
Pokud je dosaženo některého z těchto limitů, streamování protokolů se automaticky zastaví.
Spojte se s námi
Pokud máte návrhy na nové funkce nebo jste narazili na chybu, podělte se o zpětnou vazbu přímo s námi, a to prostřednictvím Komunita vývojářů Cloudflare na Discordu ↗.