← Cloudflare Logs / logs / logpush / logpush-job / enable-destinations
Povolení Splunk
HTTP Event Collector (HEC) ↗ je spolehlivá metoda pro příjem dat ze Splunk Enterprise nebo Splunk Cloud Platform. Cloudflare Logpush podporuje odesílání protokolů přímo do Splunk HEC prostřednictvím dashboardu Cloudflare nebo přes API.
Správa přes dashboard Cloudflare
-
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 ↗
-
Podle vaší volby máte přístup k datové sady v rozsahu účtu a datové sady s rozsahem zóny, v uvedeném pořadí.
-
Vyberte Vytvoření úlohy Logpush.
-
V Vyberte cíl, vyberte Splunk.
-
Zadejte nebo vyberte následující informace o cíli:
- Splunk HEC URL
- ID kanálu - Jde o náhodné GUID, které můžete vygenerovat pomocí guidgenerator.com ↗.
- Auth Token - Token Event Collector s předponou ve tvaru slova
Splunk. Například:Splunk 1234EXAMPLEKEY. - Typ zdroje - Například
cloudflare:json. Pokud používáte Cloudflare App for Splunk ↗, nahlédněte do odpovídajícího typu zdroje pro příslušné datasety v Podrobnosti sekce. Například u protokolů požadavků Zero Trust Access je typ zdrojecloudflare:access. - Použití možnosti insecure skip verify (nedoporučuje se).
Jakmile zadáte podrobnosti cíle, vyberte Pokračovat.
-
Vyberte datovou sadu, kterou chcete odesílat do úložné služby.
-
V dalším kroku musíte nakonfigurovat úlohu Logpush:
- Zadejte Název úlohy.
- V části Pokud se protokoly shodují, můžete vybrat, které události chcete do protokolů zahrnout nebo z nich odstranit. Více informací najdete v Filtry s dalšími informacemi. Tato možnost není dostupná u všech datových sad.
- V Odešlete následující pole, můžete se rozhodnout, zda chcete do cílového úložiště odesílat všechny protokoly, nebo si vybrat, které protokoly chcete odesílat.
-
V Advanced Options, můžete:
- Zvolte formát polí s časovým razítkem ve svých protokolech (
RFC3339(výchozí),Unix, neboUnixNano). - Vyberte míra vzorkování pro vaše protokoly, nebo odesílejte náhodně vzorkované procento protokolů.
- Povolte maskování pro
CVE-2021-44228. Tato možnost nahradí každý výskyt${hodnotoux{.
- Zvolte formát polí s časovým razítkem ve svých protokolech (
-
Vyberte Odeslat jakmile dokončíte konfiguraci úlohy Logpush.
Správa přes API
Chcete-li nastavit úlohu Logpush pro Splunk:
- Vytvořte úlohu s příslušnou URL adresou koncového bodu a autentizačními parametry.
- Povolte úlohu, aby mohla začít odesílat protokoly.
Zajistěte, že Log Share oprávnění povolena, než se pokusíte přečíst nebo nakonfigurovat úlohu Logpush. Další informace najdete na Sekce Role.
1. Vytvořte úlohu
Chcete-li vytvořit úlohu, proveďte POST požadavek na koncový bod úloh Logpush s následujícími poli:
-
název (volitelné) - Jako název úlohy použijte název své domény.
-
destination_conf - Cíl protokolů složený z URL endpointu, ID kanálu, příznaku insecure-skip-verify, typu zdroje a autorizační hlavičky ve formátu řetězce níže.
- <SPLUNK_ENDPOINT_URL>: URL adresa raw HTTP Event Collectoru Splunk včetně portu. Například:
splunk.cf-analytics.com:8088/services/collector/raw.- Cloudflare očekává, že endpoint Splunk bude
/services/collector/rawpři konfiguraci a nastavování úlohy Logpush. - Ujistěte se, že máte ve Splunk povoleno HEC. Přečtěte si Integrace Splunk Analytics s informacemi, jak nastavit HEC ve Splunku.
- Při zadání nesprávné adresy URL si můžete všimnout, že požadavek API selhal s chybou 504. Adresa URL koncového bodu Splunk Cloud obvykle obsahuje
http-inputs-nebo podobný text před názvem hostitele.
- Cloudflare očekává, že endpoint Splunk bude
- <SPLUNK_CHANNEL_ID>: Jedinečné ID kanálu. Jde o náhodné GUID, které můžete vygenerovat takto:
- Pomocí online nástroje, jako je Generátor GUID ↗.
- Pomocí příkazového řádku. Například:
python -c 'import uuid; print(uuid.uuid4())'.
- <INSECURE_SKIP_VERIFY>: Booleovská hodnota. Cloudflare doporučuje nastavit tuto hodnotu na
false. Nastavením této hodnoty natrueje ekvivalentní použití-kmožnost scurljak je uvedeno v příkladech Splunk, a je ne doporučeno. Tuto hodnotu nastavte pouze natruekdyž HEC používá self-signed certifikát.
- <SOURCE_TYPE>: Typ zdroje Splunk. Například:
cloudflare:json. - <SPLUNK_AUTH_TOKEN>: Autorizační token Splunk zakódovaný pro URL adresu, který musí mít na začátku slovo
Splunk. Například:Splunk e6d94e8c-5792-4ad1-be3c-29bcaee0197d.
- <SPLUNK_ENDPOINT_URL>: URL adresa raw HTTP Event Collectoru Splunk včetně portu. Například:
"splunk://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&insecure-skip-verify=<INSECURE_SKIP_VERIFY>&sourcetype=<SOURCE_TYPE>&header_Authorization=<SPLUNK_AUTH_TOKEN>"-
dataset - Kategorie protokolů, které chcete přijímat. Viz Datové sady pro úplný seznam podporovaných datových sad.
-
output_options (volitelné) - Chcete-li nakonfigurovat pole, sample rate a formát časového razítka, viz Možnosti výstupu protokolu. Pro časové razítko Cloudflare doporučuje použít
timestamps=rfc3339.
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 Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "<DOMAIN_NAME>",
"destination_conf": "splunk://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&insecure-skip-verify=<INSECURE_SKIP_VERIFY>&sourcetype=<SOURCE_TYPE>&header_Authorization=<SPLUNK_AUTH_TOKEN>",
"output_options": {
"field_names": [
"ClientIP",
"ClientRequestHost",
"ClientRequestMethod",
"ClientRequestURI",
"EdgeEndTimestamp",
"EdgeResponseBytes",
"EdgeResponseStatus",
"EdgeStartTimestamp",
"RayID"
],
"timestamp_format": "rfc3339"
},
"dataset": "http_requests",
"enabled": true
}'Odpověď:
{
"errors": [],
"messages": [],
"result": {
"id": <JOB_ID>,
"dataset": "http_requests",
"kind": "",
"enabled": true,
"name": "<DOMAIN_NAME>",
"output_options": {
"field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp","EdgeResponseBytes", "EdgeResponseStatus", "EdgeStartTimestamp", "RayID"],
"timestamp_format": "rfc3339"
},
"destination_conf": "splunk://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&insecure-skip-verify=<INSECURE_SKIP_VERIFY>&sourcetype=<SOURCE_TYPE>&header_Authorization=<SPLUNK_AUTH_TOKEN>",
"last_complete": null,
"last_error": null,
"error_message": null
},
"success": true
}Viz Spravovat Logpush pomocí cURL k aktualizaci úlohy (včetně jejího zapnutí a vypnutí).
Viz Logpush (FAQ) s informacemi o řešení potíží.
3. Vytvořte vlastní pravidlo WAF pro koncový bod Splunk HEC (volitelné)
Pokud je název hostitele cíle Logpush proxyován přes Cloudflare a máte zapnutý Cloudflare Web Application Firewall (WAF), může být požadavek Cloudflare na Splunk HTTP Event Collector (HEC) vyzván k ověření nebo zablokován. Aby k tomu nedocházelo, musíte vytvořit vlastní pravidlo která umožňuje Cloudflare obejít HEC endpoint.
-
V dashboardu Cloudflare přejděte na Bezpečnostní pravidla stránce.
Přejděte na Bezpečnostní pravidla ↗ -
Vyberte Vytvořit pravidlo > Custom rules.
-
Zadejte popisný název pravidla (například
Splunk). -
V části Když příchozí požadavky odpovídají, použijte Pole, Operátor, a Hodnota a vytvořte pravidlo. Po dokončení každého řádku vyberte And a vytvořte další řádek pravidel. Hodnoty, které máte zadat, najdete v tabulce níže:
Pole Operátor Hodnota Request Method equalsPOSTHostname equalsNázev hostitele koncového bodu Splunk. Například: splunk.cf-analytics.comURI Path equals/services/collector/rawŘetězec dotazu URI containschannelAS Num is in13335,132892,202623User Agent equalsGo-http-client/2.0 -
Po zadání hodnot podle tabulky by se v poli Expression Preview mělo zobrazit vámi zadané znění pro dané pravidlo. Následující příklad odpovídá názvu hostitele
splunk.cf-analytics.com.(http.request.method eq "POST" and http.host eq "splunk.cf-analytics.com" and http.request.uri.path eq "/services/collector/raw" and http.request.uri.query contains "channel" and ip.geoip.asnum in {13335 132892 202623} and http.user_agent eq "Go-http-client/2.0") -
V části Poté > Zvolte akci rozbalovací nabídce vyberte Přeskočit.
-
V části Komponenty WAF k přeskočení, vyberte Všechna spravovaná pravidla.
-
Vyberte Nasadit.
WAF by nyní měl ignorovat požadavky, které Cloudflare zasílá do Splunk HEC.
Řešení problémů s cíli Splunk
Ověřování chyb cíle
Pokud při nastavování úlohy pro Splunk obdržíte chybu ověření, zkontrolujte následující:
- URL endpointu: Cloudflare podporuje koncový bod Splunk HEC raw pouze přes HTTPS. Ověřte, že je URL adresa koncového bodu správná a obsahuje port (obvykle
:8088). - Autentizační token: Ujistěte se, že je autentizační token Splunk zakódovaný pro URL adresu a má na začátku
Splunk. Můžete například použít%20pro mezery v tokenu. - Konfigurace certifikátu: Certifikáty vygenerované Splunkem nebo certifikáty třetích stran musí mít Obecný název odpovídalo názvu domény serveru Splunk. Jinak se mohou zobrazit chyby jako:
x509: certificate is valid for SplunkServerDefaultCert, not <YOUR_INSTANCE>.splunkcloud.com.
Pochopení insecure-skip-verify
insecure-skip-verify parametr, pokud je nastaven na true, vytváří nezabezpečené spojení se Splunk. To odpovídá použití -k možnost s curl a je nedoporučuje se.
Proč tento parametr existuje: Certifikáty vygenerované Splunkem nebo certifikáty třetích stran by měly mít Obecný název odpovídalo názvu domény serveru Splunk. Pokud se neshodují (zejména u výchozích certifikátů, které Splunk generuje při spuštění), odesílání selže, dokud certifikáty neopravíte. Tento parametr slouží pro vzácné případy, kdy nemáte možnost k certifikátům přistupovat nebo je upravovat, například u instancí Splunk Cloud, které neumožňují měnit konfiguraci serveru.
Ověřování HEC před nastavením
Před vytvořením úlohy Logpush ověřte, že váš Splunk HEC funguje správně, a to publikováním testovacích událostí prostřednictvím curl bez -k příznakem a s insecure-skip-verify=false:
curl "https://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&insecure-skip-verify=false&sourcetype=<SOURCE_TYPE>" \
--header "Authorization: Splunk <SPLUNK_AUTH_TOKEN>" \
--data '{"BotScore":99,"BotScoreSrc":"Machine Learning","CacheCacheStatus":"miss","CacheResponseBytes":2478}'Očekávaná odpověď:
{"text":"Success","code":0}Požadavky na síťové porty
Cloudflare očekává, že síťový port HEC bude nakonfigurován na :443 nebo :8088. Jiné porty nejsou podporovány.
Integrace Cloudflare Splunk App
Logpush se integruje s Cloudflare App for Splunk ↗. Pokud protokoly přijímáte pomocí cloudflare:json typu zdroje můžete použít Cloudflare Splunk App k analýze a vizualizaci svých protokolů.
Podrobné pokyny k nastavení najdete v Integrace Splunk Analytics.