INTEGRITY Dokumentace

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.

Přejděte na Tunnels ↗
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 v

Vš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 v

Vš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.

Další informace

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.

  1. Na svém lokálním počítači ověřte cloudflared do vašeho účtu Cloudflare:

    cloudflared tunnel login
  2. Spustit cloudflared tail pro 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 .
  1. Pokud používáte více repliky, můžete zadat, ze které repliky se mají streamovat protokoly:
    cloudflared tail --connector-id <REPLICA ID> <UUID>
    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.

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:

  1. V Cloudflare dashboardu přejděte na Sítě > Tunnels a vyberte svůj tunel.

    Přejděte na Tunnels ↗
  2. Přejděte na Protokoly v reálném čase kartě.

  3. 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/metrics

Nakonfigurujte vlastní adresu

Chcete-li zpřístupnit metriky na vlastní IP adrese a portu, proveďte tyto kroky na cloudflared hostitele:

  1. Spuštění tunelu pomocí --metrics příznak. Například,

    cloudflared tunnel --metrics 127.0.0.1:60123 run my-tunnel
  2. 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.1 nebo 0.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

  1. (Pouze pro Linux) Chcete-li do protokolů zahrnout síťovou diagnostiku, povolte cloudflared už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/traceroute

    Pokud nenastavíte cap_net_raw, poté nebudou data traceroute k dispozici.

  2. Získání diagnostických protokolů:

    cloudflared tunnel diag

    Pokud existuje více instancí cloudflared běží 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.

  1. Zjistěte port serveru metrik pro cloudflared instance běžící v Dockeru.

  2. 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 port 20241 na port kontejneru získaný v kroku 1:

    docker run -d -p 20241:<metrics_port> docker.io/cloudflare/cloudflared tunnel ...
  3. Ověřte, že můžete dosáhnout adresy serveru metrik z prostředí hostitele Docker:

    curl localhost:20241/diag/tunnel

    Tento 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"]
    }
  4. 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 cloudflared shromáž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ů.

  1. Zjistěte u tunelu port serveru metrik.

  2. 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 rozsahu 20241 na 20245.
    • <metrics_port> je port podu Kubernetes pro cloudflared instance, 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:12345

    Připojení navázaná k místnímu portu 20244 jsou přesměrovány na port 12345 podu, ve kterém běží tunel.

  3. Spusťte diagnostiku:

    cloudflared tunnel diag --diag-pod-id=<podID>

    Pokud pod spouští více aplikací nebo služeb a cloudflared není 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

  1. Pokud je soubor protokolu prázdný, možná bude potřeba nastavit --loglevel na debug když spustíte tunel. --loglevel parametr je vyžadován pouze v případě, že jste tunel spustili z rozhraní CLI pomocí cloudflared tunnel run příkaz. Není nutný, pokud tunel běží jako služba Linux/macOS nebo v Dockeru/Kubernetes. ↩