INTEGRITY Dokumentace

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

  1. V dashboardu Cloudflare přejděte na Instant Logs stránce.

    Přejděte na Instant Logs ↗
  2. Vyberte Spustit streamování.

  3. (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:

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é:
Vytvoření úlohy Instant Logs
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:

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