← Cloudflare Load Balancing / load-balancing
Monitory
Monitor v pravidelných intervalech odesílá kontrolní požadavky, aby vyhodnotil stav každého koncového bodu v rámci pool.
Když pool stane se nedostupným, load balancer daný pool vyřadí z rotace koncových bodů.
flowchart RL
accTitle: Load balancing monitor flow
accDescr: Monitors issue health monitor requests, which validate the current status of servers within each pool.
Monitor -- Health Monitor ----> Endpoint2
Endpoint2 -- Response ----> Monitor
subgraph Pool
Endpoint1((Endpoint 1))
Endpoint2((Endpoint 2))
end
Požadavky monitoru stavu, které vedou ke změně stavu endpointu, se zaznamenávají jako události v protokolu událostí Load Balancing.
Vlastnosti
Aktuální seznam vlastností monitoru najdete v Vlastnosti monitoru v naší dokumentaci k API.
Vytvoření monitorů
Podrobný postup krok za krokem najdete v Vytvoření monitorů.
Monitor Groups
Monitor Groups umožňují sloučit více monitorů stavu do jedné logické skupiny a vytvořit tak přesnější a inteligentnější kontroly stavu vašich aplikací. Agregací výsledků z několika monitorů lépe vystihnete skutečný stav aplikace a zvýšíte odolnost směrování provozu. Další podrobnosti najdete v Monitor Groups dokumentační stránku.
Regiony monitoru stavu
Když připojit monitor k fondu, můžete vybrat více regionů a zvýšit tak přesnost hlášení.
Pro každou možnost vybranou u poolu v poli Regiony monitoru stavu, Cloudflare odesílá požadavky monitoru stavu ze tří samostatných datacenter v daném regionu.
Pokud většina datových center v daném regionu projde požadavky monitoru stavu, je tento region považován za zdravý. Pokud je zdravá většina regionů, je za zdravý považován i samotný endpoint.
Konfigurace
Všechna datacentra (pouze Enterprise)
Sondy monitoru stavu se odesílají z každého jednotlivého datového centra v síti Cloudflare na endpointy v přidruženém poolu. Díky tomu sondy zasáhnou každý endpoint v intervalech, které nastaví zákazník.
Všechny regiony (pouze Enterprise)
Ke každému koncovému bodu v přiřazeném poolu se z každého regionu odesílají tři sondy health monitoru. Celkem je 13 regionů, což znamená 39 sond.
Regional
Z každého regionu uvedeného v konfiguraci poolu se odesílají tři sondy health monitoru.
Chování sond IPv4 a IPv6
Sondy monitoru stavu standardně používají IPv4. Sondy IPv6 se odesílají pouze v případě, že adresa endpointu nemá žádnou A záznamy (pouze AAAA). Každý endpoint dostává jednu sondu za interval, Cloudflare totiž nekontroluje sondami zároveň IPv4 i IPv6 pro stejný endpoint.
Chcete-li vynutit probing přes IPv6, nastavte adresu endpointu buď na přímou IPv6 adresu, nebo na hostname, který obsahuje pouze AAAA záznamy.
Priorita hlavičky Host
Hlavičky hostitele používané v požadavcích monitoru stavu lze nakonfigurovat buď na samotném monitoru nebo na koncové body ve fondu.
Pokud je hlavička hostitele nastavena současně u monitoru i u endpointu, přednost má hlavička hostitele nastavená u endpointu před hlavičkou hostitele nastavenou u monitoru.
Pokud není zadána žádná hlavička hostitele, Cloudflare použije Adresa endpointu nakonfigurovaný na koncových bodech jako hlavička hostitele pro požadavky monitoru stavu.
Podrobnosti uvádí Přepis hlaviček HTTP Host.
Příkazy API
Cloudflare API podporuje pro monitory následující příkazy. Příklady jsou uvedeny pro endpoint na úrovni uživatele, ale platí i pro endpoint na úrovni účtu.
| Příkaz | Metoda | Endpoint |
|---|---|---|
| Vytvoření monitoru | POST |
accounts/:account_id/load_balancers/monitors |
| Odstranění monitoru | DELETE |
accounts/:account_id/load_balancers/monitors/:id |
| Seznam Monitorů | GET |
accounts/:account_id/load_balancers/monitors |
| Podrobnosti monitoru | GET |
accounts/:account_id/load_balancers/monitors/:id |
| Přepsat konkrétní vlastnosti | PATCH |
accounts/:account_id/load_balancers/monitors/:id |
| Přepsat existující monitor | PUT |
accounts/:account_id/load_balancers/monitors/:id |
| Preview Monitor | POST |
accounts/:account_id/load_balancers/monitors/:id/preview |
Podporované protokoly
Následující tabulka shrnuje jednotlivé typy monitorů dostupných v Cloudflare Load Balancing, jejich typy monitorování a způsob, jakým každý proces kontroly stavu vyhodnocuje kritéria úspěchu při určování stavu koncového bodu:
| Typ monitoru | Typ monitorování | Popis | Proces kontroly stavu | Kritéria úspěchu |
|---|---|---|---|---|
| HTTP/HTTPS | Veřejné a privátní | Používá se pro endpointy HTTP a HTTPS se specifickými atributy protokolu. | Sonda se konfiguruje pomocí nastavení a kritérií úspěchu, jako jsou Method, Simulate Zone, Follow Redirects, Request Headers a Response Body. Sonda pak vyhodnocuje nakonfigurovaná kritéria úspěchu pomocí protokolu HTTP. Po celou nakonfigurovanou dobu timeoutu zůstává TCP spojení aktivní pomocí keep-alive, i když není přijata žádná odpověď. | Úspěch je založen na splnění nakonfigurovaných kritérií úspěchu HTTP. Pokud v rámci nastaveného časového limitu a počtu opakování nedorazí žádná odpověď, je endpoint považován za unhealthy. |
| TCP | Veřejné a privátní | Kontroluje TCP konektivitu pokusem o otevření spojení s endpointem. | Monitor odešle zprávu TCP SYN na zadaný port. Úspěšná kontrola stavu vyžaduje přijetí zprávy SYN/ACK, která navazuje spojení. Spojení se uzavírá odesláním paketu FIN nebo RST, případně přijetím paketu FIN od koncového bodu. | Pokud se nepodaří navázat připojení TCP v rámci nakonfigurovaného časového limitu a počtu opakování, považuje se stav za nezdravý. |
| ICMP Ping | Veřejné a Tunel | Ověřuje základní konektivitu na vrstvě 3 (L3) k endpointu pomocí ICMP. Endpointy musí mít povoleno odpovídat na pakety ICMP a veškeré síťové vybavení mezi nimi musí ICMP podporovat. | Monitor odešle ICMP/ICMPv6 echo request (ping) a očekává od koncového bodu odpověď ICMP/ICMPv6 echo reply. | Aby byl koncový bod považován za funkční, musí odpovědět na ICMP ping ve stanoveném časovém limitu a počtu opakování. |
| UDP-ICMP | Veřejné a Tunel | Monitor UDP-ICMP odesílá sondovací paket UDP poté, co monitor ICMP Ping dokončí kontrolu s výsledkem funkční. | Po přijetí úspěšné odpovědi ICMP odešle monitor na endpoint sondovací paket UDP. Pokud nepřijde zpráva ICMP Port Unreachable, je endpoint považován za funkční. | Pokud monitor v rámci nakonfigurovaného časového limitu a počtu opakování obdrží zprávu ICMP Port Unreachable, je endpoint považován za nezdravý. |
| SMTP | Veřejný | Ověřuje dostupnost SMTP na aplikační vrstvě. | Monitor vytvoří TCP spojení a odešle příkaz SMTP HELO. Očekává odpověď s kódem 250. Poté odešle příkaz SMTP QUIT a očekává odpověď s kódem 221. Na konci každého intervalu se TCP spojení uzavře odesláním paketu TCP FIN. | Aby byl koncový bod považován za funkční, musí odpovědět správnými kódy SMTP (250 pro HELO, 221 pro QUIT) ve stanoveném časovém limitu a počtu opakování. |