← Cloudflare Tunnel / tunnel
Monitoring
Cloudflare Tunnel poskytuje protokoly, metriky a diagnostické nástroje, které vám pomohou sledovat stav tunelu a řešit problémy.
Stav tunelu
Stav připojení tunelu můžete zkontrolovat v Cloudflare dashboard ↗ přechodem na Sítě > Tunnels, nebo spuštěním cloudflared tunnel list.
| Stav | Význam | Doporučená akce |
|---|---|---|
| Funkční | Tunel je aktivní a obsluhuje provoz prostřednictvím čtyř připojení ke globální síti Cloudflare. | Není nutná žádná akce. Váš tunel funguje správně. |
| Neaktivní | Tunel byl vytvořen (přes API nebo dashboard), ale cloudflared connector nebyl nikdy spuštěn k navázání připojení. |
Nainstalujte a spusťte cloudflared na vašem origin serveru, aby se tunel připojil ke Cloudflare. Instalační příkaz najdete v Cloudflare dashboardu v části Sítě > Tunnels : vyberte svůj tunel a poté na Přehled kartě vyberte Přidejte repliku. Pro nastavení založené na API si přečtěte Instalace a spuštění tunelu. |
| Nedostupný | Tunel byl dříve připojen, ale nyní je odpojen, protože cloudflared proces se zastavil. |
1. Zajistěte, že cloudflared služba nebo proces na vašem serveru aktivně běží. 2. Zkontrolujte problémy na straně serveru, například vypnutý počítač, pád aplikace nebo nedávné změny v síti. |
| Degradovaný | cloudflared connector běží a tunel obsluhuje provoz, ale alespoň jedno jednotlivé připojení selhalo. Další zhoršení dostupnost tunelu by mohlo způsobit výpadek tunelu a přerušení obsluhy provozu. |
1. Zkontrolujte své cloudflared protokoly pro chyby připojení nebo chybové zprávy. 2. Prověřte pravidla lokální sítě a firewallu, zda neblokují připojení k IP adresy a porty Cloudflare Tunnel. |
Oznámení
Administrátoři mohou dostávat upozornění při změně stavu funkčnosti nebo nasazení tunelů. Oznámení lze doručovat e-mailem, webhookem nebo prostřednictvím služeb třetích stran.
Chcete-li nastavit oznámení tunelu, přečtěte si Vytvořit oznámení.
Tunnel Creation or Deletion Event
Pro koho je určeno?Zákazníci, kteří chtějí dostávat oznámení při vytvoření nebo odstranění Cloudflare Tunnels ve svém účtu.
Další možnosti / filtryŽádné.
Zahrnuto vVšechny plány Cloudflare Zero Trust.
Co dělat, když upozornění obdržíte?Není potřeba žádná akce.
Tunnel Health Alert
Pro koho je určeno?Zákazníci, kteří chtějí být upozorněni na změny stavu funkčnosti svých Cloudflare Tunnels.
Další možnosti / filtryŽádné.
Zahrnuto vVšechny plány Cloudflare Zero Trust.
Co dělat, když upozornění obdržíte?V průběhu času sledujte stav tunelu a zvažte nasazení cloudflared repliky nebo load balancery.
Viz Stav tunelu a zobrazit seznam možných stavů tunelu (Healthy, Inactive, Down a Degraded).
Protokoly
Protokoly Tunnelu zaznamenávají veškerou aktivitu mezi cloudflared a globální sítí Cloudflare, přičemž veškerá aktivita mezi cloudflared a vaším origin serverem.
Protokoly na straně serveru
Pokud máte přístup k origin serveru, můžete použít --loglevel příznak povolit protokolování při spuštění tunelu. Ve výchozím nastavení cloudflared vypisuje protokoly do stdout a neukládá je na serveru. Volitelně můžete použít --logfile příznak k zápisu protokolů do souboru.
Chcete-li povolit protokoly, spusťte tunel pomocí --loglevel info a --logfile <PATH> příznaky. Například,
cloudflared tunnel --loglevel info --logfile cloudflared.log run <UUID>Vzdálené streamování protokolů
Protokoly z běžícího tunelu můžete streamovat v reálném čase bez přístupu k serveru přes SSH.
cloudflared démon dokáže streamovat protokoly libovolného tunelu ve vašem účtu do místního příkazového řádku. cloudflared musí být nainstalováno jak na vašem místním počítači, tak na origin serveru.
-
Na svém lokálním počítači ověřte
cloudflareddo vašeho účtu Cloudflare:cloudflared tunnel login -
Spustit
cloudflared tailpro konkrétní tunel:cloudflared tail <UUID>Pro přehlednější zobrazení zprávy JSON můžete výstup přesměrovat do nástrojů, jako je jq ↗:
cloudflared tail --output=json <UUID> | jq .
- Pokud používáte více repliky, můžete zadat, ze které repliky se mají streamovat protokoly:
Chcete-li najít ID repliky, přejděte na Sítě > Tunnels a vyberte svůj tunel. Všechny aktivní repliky se zobrazí v Connectory na stránce přehledu tunelu. ID repliky je ID Connectoru.
cloudflared tail --connector-id <REPLICA ID> <UUID>
Možnosti filtrování protokolů
Protokoly můžete filtrovat podle typu události (--event), úroveň události (--level), nebo vzorkovací frekvence (-sampling) ke snížení objemu protokolů streamovaných z origin serveru. To pomáhá zmírnit dopad na výkon origin serveru, zejména když je origin server běžně vysoce vytížený. Například:
cloudflared tail --level debug <UUID>| Příznak | Popis | Povolené hodnoty | Výchozí hodnota |
|---|---|---|---|
--event |
Filtrujte podle typu události nebo požadavku. | cloudflared, http, tcp, udp |
Všechny události |
--level |
Vrací protokoly na této úrovni a vyšší. Funguje nezávisle na --loglevel nastavení na serveru. |
debug, info, warn, error, fatal |
debug |
--sampling |
Vzorkuje zlomek z celkových protokolů. | Číslo od 0.0 na 1.0 |
1.0 |
Chcete-li streamovat protokoly tunelu z dashboardu:
-
V Cloudflare dashboardu přejděte na Sítě > Tunnels a vyberte svůj tunel.
Přejděte na Tunnels ↗ -
Přejděte na Protokoly v reálném čase kartě.
-
Vyberte Naživo ke spuštění streamování.
Zobrazit protokoly pro repliku
Pokud používáte více cloudflared instance pro stejný tunel (známé také jako repliky), protokoly ze všech připojených replik se streamují automaticky a seskupují podle hostname, což usnadňuje identifikaci, který hostitelský počítač vytvořil danou položku protokolu.
Chcete-li omezit datový proud na konkrétní repliky, vyberte Filtr ikonu a rozbalte Repliky sekce. Můžete také filtrovat podle Úroveň protokolu a Typ události.
Metriky
Metriky tunelu zobrazují propustnost a využití prostředků Cloudflare Tunnel v průběhu času. Když spustíte tunel, cloudflared spustí endpoint metrik Prometheus, tedy HTTP server, který zpřístupňuje metriky ve Prometheus ↗ formátu. Pomocí sady nástrojů Prometheus na vzdáleném počítači můžete získávat (scrapovat) metriky z cloudflared server.
Výchozí adresa serveru metrik
V prostředích bez kontejnerizace, cloudflared spustí server metrik na 127.0.0.1:<PORT>/metrics, kde <PORT> je první dostupný port v rozsahu 20241 na 20245. Pokud nejsou dostupné žádné porty, cloudflared se naváže na náhodný port. V kontejnerizovaných prostředích (Docker, Kubernetes) je výchozí adresa 0.0.0.0:<PORT>/metrics.
Chcete-li zjistit výchozí port, zkontrolujte svůj protokoly tunelu kolem doby, kdy byl tunel spuštěn. Například:
2024-12-19T21:17:58Z INF Starting metrics server on 127.0.0.1:20241/metricsNakonfigurujte vlastní adresu
Chcete-li zpřístupnit metriky na vlastní IP adrese a portu, proveďte tyto kroky na cloudflared hostitele:
-
Spuštění tunelu pomocí
--metricspříznak. Například,cloudflared tunnel --metrics 127.0.0.1:60123 run my-tunnel -
Ověřte, že server metrik běží, a přejděte na
http://localhost:60123/metrics. Bude to fungovat pouze v případě, že jste nakonfigurovali IP adresu localhost (127.0.0.1nebo0.0.0.0).
Nyní můžete metriky exportovat do Prometheus a Grafana a data vizualizovat i dotazovat. Více informací najdete v Tutoriál pro Grafana pro pokyny, jak s těmito nástroji začít.
metriky cloudflared
| Název | Popis | Typ | Štítky |
|---|---|---|---|
build_info |
Informace o sestavení a verzi. | GAUGE | goversion, revision, type, version |
cloudflared_config_local_config_pushes |
Počet lokálních odeslání konfigurace do Cloudflare. | COUNTER | |
cloudflared_config_local_config_pushes_errors |
Počet chyb při odesílání lokální konfigurace. | COUNTER | |
cloudflared_orchestration_config_version |
Verze konfigurace. | GAUGE | |
cloudflared_tcp_active_sessions |
Počet souběžných relací TCP proxovaných na libovolný origin. | GAUGE | |
cloudflared_tcp_total_sessions |
Celkový počet relací TCP, které byly proxovány na libovolný origin server. | COUNTER | |
cloudflared_tunnel_active_streams |
Celkový počet aktivních streamů. | GAUGE | |
cloudflared_tunnel_concurrent_requests_per_tunnel |
Počet souběžných požadavků proxovaných přes jednotlivé tunely. | GAUGE | |
cloudflared_tunnel_ha_connections |
Počet aktivních HA připojení. | GAUGE | |
cloudflared_tunnel_request_errors |
Počet chyb při proxování na origin. | COUNTER | |
cloudflared_tunnel_server_locations |
Kam je každý tunel připojen. 1 znamená aktuální umístění, 0 znamená předchozí umístění. |
GAUGE | connection_id, edge_location |
cloudflared_tunnel_timer_retries |
Počet nepotvrzených heartbeatů. | GAUGE | |
cloudflared_tunnel_total_requests |
Počet požadavků proxovaných přes všechny tunely. | COUNTER | |
cloudflared_tunnel_tunnel_authenticate_success |
Počet úspěšných událostí ověření tunelu. | COUNTER | |
cloudflared_tunnel_tunnel_register_success |
Počet úspěšných registrací tunelu. | COUNTER | rpcName |
cloudflared_udp_active_sessions |
Počet souběžných relací UDP proxovaných na libovolný origin. | GAUGE | |
cloudflared_udp_total_sessions |
Celkový počet relací UDP, které byly proxovány na libovolný origin server. | COUNTER | |
coredns_panics_total |
Počet panic. | COUNTER | |
quic_client_closed_connections |
Počet uzavřených připojení. | COUNTER | |
quic_client_latest_rtt |
Poslední naměřená doba odezvy (RTT) daného připojení. | GAUGE | conn_index |
quic_client_lost_packets |
Počet paketů ztracených v rámci připojení. | COUNTER | conn_index, reason |
quic_client_min_rtt |
Nejnižší naměřená hodnota RTT na připojení v ms. | GAUGE | conn_index |
quic_client_packet_too_big_dropped |
Počet paketů přijatých z originu, které jsou příliš velké na odeslání do Cloudflare, a proto jsou zahozeny. | COUNTER | |
quic_client_smoothed_rtt |
Vyhlazené RTT vypočítané pro připojení, v ms. | GAUGE | conn_index |
quic_client_total_connections |
Počet zahájených připojení. U všech metrik QUIC znamená klient stranu, která připojení zahajuje. | COUNTER |
Metriky Prometheus
| Název | Popis | Typ | Štítky |
|---|---|---|---|
promhttp_metric_handler_requests_in_flight |
Aktuální počet právě obsluhovaných scrapů. | GAUGE | |
promhttp_metric_handler_requests_total |
Celkový počet scrapů podle stavového kódu HTTP. | COUNTER | code |
Metriky runtime Go
| Název | Popis | Typ | Štítky |
|---|---|---|---|
go_gc_duration_seconds |
Přehled doby pozastavení cyklů garbage collection. | SHRNUTÍ | |
go_goroutines |
Počet aktuálně existujících goroutin. | GAUGE | |
go_info |
Informace o prostředí Go. | GAUGE | version |
go_memstats_alloc_bytes |
Počet alokovaných bajtů, které jsou stále používány. | GAUGE | |
go_memstats_alloc_bytes_total |
Celkový počet alokovaných bajtů, včetně těch, které byly následně uvolněny. | COUNTER | |
go_memstats_buck_hash_sys_bytes |
Počet bajtů používaných hashovací tabulkou profilovacích bucketů. | GAUGE | |
go_memstats_frees_total |
Celkový počet uvolnění (free). | COUNTER | |
go_memstats_gc_sys_bytes |
Počet bajtů používaných pro systémová metadata garbage collection. | GAUGE | |
go_memstats_heap_alloc_bytes |
Počet alokovaných bajtů haldy, které jsou stále používány. | GAUGE | |
go_memstats_heap_idle_bytes |
Počet bajtů haldy čekajících na použití. | GAUGE | |
go_memstats_heap_inuse_bytes |
Počet používaných bajtů haldy. | GAUGE | |
go_memstats_heap_objects |
Počet alokovaných objektů. | GAUGE | |
go_memstats_heap_released_bytes |
Počet bajtů haldy uvolněných operačnímu systému. | GAUGE | |
go_memstats_heap_sys_bytes |
Počet bajtů haldy získaných od systému. | GAUGE | |
go_memstats_last_gc_time_seconds |
Počet sekund od roku 1970 od poslední garbage collection. | GAUGE | |
go_memstats_lookups_total |
Celkový počet vyhledávání ukazatelů. | COUNTER | |
go_memstats_mallocs_total |
Celkový počet alokací (malloc). | COUNTER | |
go_memstats_mcache_inuse_bytes |
Počet bajtů používaných strukturami mcache. | GAUGE | |
go_memstats_mcache_sys_bytes |
Počet bajtů používaných strukturami mcache získaných od systému. | GAUGE | |
go_memstats_mspan_inuse_bytes |
Počet bajtů používaných strukturami mspan. | GAUGE | |
go_memstats_mspan_sys_bytes |
Počet bajtů používaných strukturami mspan získaných od systému. | GAUGE | |
go_memstats_next_gc_bytes |
Počet bajtů haldy, při kterém proběhne další garbage collection. | GAUGE | |
go_memstats_other_sys_bytes |
Počet bajtů používaných pro ostatní systémové alokace. | GAUGE | |
go_memstats_stack_inuse_bytes |
Počet bajtů používaných alokátorem zásobníku. | GAUGE |
Diagnostické protokoly
Cloudflare Tunnel generuje diagnostické zprávy, které shromažďují data z jedné cloudflared instance běžící na místním počítači. To vyžaduje cloudflared verze 2024.12.2 nebo novější.
Generování diagnostiky
-
(Pouze pro Linux) Chcete-li do protokolů zahrnout síťovou diagnostiku, povolte
cloudflareduživateli vytvářet sokety RAW a PACKET bez oprávnění root:sudo setcap cap_net_raw+ep /usr/bin/traceroute && sudo setcap cap_net_raw+ep /usr/bin/traceroutePokud nenastavíte
cap_net_raw, poté nebudou data traceroute k dispozici. -
Získání diagnostických protokolů:
cloudflared tunnel diagPokud existuje více instancí
cloudflaredběží na stejném hostiteli, uveďte IP adresa a port serveru metrik pro instanci, kterou chcete diagnostikovat. Například:cloudflared tunnel diag --metrics 127.0.0.1:20241
Tento příkaz vypíše stav každé diagnostické úlohy a umístí cloudflared-diag-YYYY-MM-DDThh-mm-ss.zip soubor ve svém pracovním adresáři.
Diagnostika Dockeru
cloudflared čte diagnostická data z server metrik tunelu. Chcete-li získat diagnostické protokoly, musí být Metrics Server exponován z kontejneru Docker a dostupný z hostitelského počítače.
-
Zjistěte port serveru metrik pro
cloudflaredinstance běžící v Dockeru. -
Ujistěte se, že je kontejner nasazen s povoleným přesměrováním portů. Diagnostická funkce si vyžádá informace z instance Docker prostřednictvím místního portu
20241, proto byste měli přesměrovat port20241na port kontejneru získaný v kroku 1:docker run -d -p 20241:<metrics_port> docker.io/cloudflare/cloudflared tunnel ... -
Ověřte, že můžete dosáhnout adresy serveru metrik z prostředí hostitele Docker:
curl localhost:20241/diag/tunnelTento příkaz by měl vrátit JSON:
{ "tunnelID": "ef96b330-a7f5-4bce-a00e-827ce5be077f", "connectorID": "d236670a-9f74-422f-adf1-030f5c5f0523", "connections": [ { "isConnected": true, "protocol": 1, "edgeAddress": "198.41.192.167"}, {"isConnected": true, "protocol": 1, "edgeAddress": "198.41.200.113", "index": 1}, {"isConnected": true, "protocol": 1, "edgeAddress": "198.41.192.47", "index": 2}, {"isConnected": true, "protocol": 1, "edgeAddress": "198.41.200.73", "index": 3} ], "icmp_sources": ["192.168.1.243", "fe80::c59:bd4a:e815:ed6"] } -
Spusťte diagnostiku pomocí ID kontejneru Docker:
cloudflared tunnel diag --diag-container-id=<containerID>Případně můžete místo ID kontejneru zadat jeho název:
cloudflared tunnel diag --diag-container-id=<containerName>Spuštění diagnostického příkazu s ID kontejneru umožňuje
cloudflaredshromáždit informace z prostředí Docker, například protokoly a podrobnosti o kontejnerech.
Tento příkaz vypíše stav každé diagnostické úlohy a umístí cloudflared-diag-YYYY-MM-DDThh-mm-ss.zip soubor ve svém pracovním adresáři.
Diagnostika Kubernetes
Diagnostická funkce si vyžádá data z server metrik tunelu pomocí portů 20241 na 20245. Budete muset použít přesměrování portů, abyste povolili místní cloudflared instance k připojení k serveru metrik na jednom z těchto portů.
-
Zjistěte u tunelu port serveru metrik.
-
Povolte předávání portů:
kubectl port-forward <pod> <diagnostic_port>:<metrics_port><pod>: Název podu, ve kterém tunel běží<diagnostic_port>je libovolný místní port v rozsahu20241na20245.<metrics_port>je port podu Kubernetes procloudflaredinstance, kterou chcete diagnostikovat (získaná v kroku 1).
Pokud například nastavíte adresu serveru metrik na
0.0.0.0:12345:kubectl port-forward cloudflared-6d4897585b-r8kfz 20244:12345Připojení navázaná k místnímu portu
20244jsou přesměrovány na port12345podu, ve kterém běží tunel. -
Spusťte diagnostiku:
cloudflared tunnel diag --diag-pod-id=<podID>Pokud pod spouští více aplikací nebo služeb a
cloudflarednení v podu první, musíte zadat buď ID kontejneru, nebo jeho název:cloudflared tunnel diag --diag-pod-id=<podID> --diag-container-id=<containerName>
Tento příkaz vypíše stav každé diagnostické úlohy a umístí cloudflared-diag-YYYY-MM-DDThh-mm-ss.zip soubor ve svém pracovním adresáři.
Obsah diagnostického souboru
cloudflared-diag-YYYY-MM-DDThh-mm-ss.zip archiv obsahuje níže uvedené soubory. Data v souboru se vztahují buď k cloudflared diagnostikovaná instance (diagnosee) nebo instance, která diagnostiku spustila (diagnoser). Pokud například váš tunel běží v kontejneru Docker, diagnosee je instance Docker a diagnoser je hostitelská instance.
| Název souboru | Popis | Instance |
|---|---|---|
cli-configuration.json |
Parametry spuštění tunelu použitá při spouštění tunelu | diagnosee |
cloudflared_logs.txt |
Soubor protokolu tunelu1 | diagnosee |
configuration.json |
Parametry konfigurace tunelu | diagnosee |
goroutine.pprof |
profil goroutin zpřístupněný pomocí pprof |
diagnosee |
heap.pprof |
profil haldy zpřístupněný pomocí pprof |
diagnosee |
metrics.txt |
Snímek Metriky tunelu v době diagnostiky | diagnosee |
network.txt |
Trasování (traceroute) ve formátu JSON do globální sítě Cloudflare pomocí IPv4 a IPv6 | diagnoser |
raw-network.txt |
Nezpracované trasování (traceroute) do globální sítě Cloudflare pomocí IPv4 a IPv6 | diagnoser |
systeminformation.json |
Informace o operačním systému a využití prostředků | diagnosee |
task-result.json |
Výsledek jednotlivých diagnostických úloh | diagnoser |
tunnelstate.json |
Připojení tunelu v době diagnostiky | diagnosee |
Poznámky pod čarou
-
Pokud je soubor protokolu prázdný, možná bude potřeba nastavit
--loglevelnadebugkdyž spustíte tunel.--loglevelparametr je vyžadován pouze v případě, že jste tunel spustili z rozhraní CLI pomocícloudflared tunnel runpříkaz. Není nutný, pokud tunel běží jako služba Linux/macOS nebo v Dockeru/Kubernetes. ↩