Zpět na blog

Multi-region monitoring: jak eliminovat false-positive výpadky

· 6 min čtení

Falešné poplachy naučí tým ignorovat alerty. Multi-region cross-check označí výpadek až tehdy, když ho potvrdí několik nezávislých sond.

Multi-region monitoring: jak eliminovat false-positive výpadky

Proč single-region monitoring lže

Klasický monitoring má jedinou pozorovací pozici (jeden server nebo cloudový region). Když tato sonda nedostane odpověď, ohlásí výpadek. Příčinou přitom může být cokoli z následujícího:

  • Problém v síti samotné sondy (route flap, peering issue jejího providera)
  • Krátkodobý DNS glitch na straně sondy
  • Geograficky omezený výpadek (CDN edge v jedné zemi spadl)
  • Rate limiting nebo IP blok na straně vaší infrastruktury

Z pohledu reálných uživatelů může být web úplně v pořádku - jen nedostupný pro jeden konkrétní monitorovací host.

Důsledek: alert fatigue

Tým, který dostává 3 upozornění na "výpadek" týdně a z toho 2 jsou falešné poplachy (false-positive), postupně přestane reagovat. Když pak přijde skutečný výpadek, reakce se zpozdí nebo si ho nikdo nevšimne. Tento jev se nazývá alert fatigue (únava z upozornění) a v devops literatuře je dobře zdokumentovaný.

Cílem je co nejlepší poměr signálu k šumu (signal-to-noise ratio). Lepší je dostat 1 upozornění měsíčně, které je vždy reálné, než 10 upozornění, z nichž je 7 šum.

Multi-region pattern: consensus z N sond

Princip:

  1. Máte 3 worker nody ve 3 městech (primary v Liptovském Hrádku, eu2 v Liptovském Mikuláši, eu1 v Bratislavě). Výchozí threshold = 2 ze 3, což dává skutečný consensus (ne unanimous). Architektura podporuje libovolný počet nodů, při rozšíření se přidávají do existujícího consensus mechanismu.
  2. Při každém intervalu všechny sondy paralelně otestují endpoint.
  3. Výsledek sloučíte: výpadek = potvrzený, pokud ho hlásí M z N sond (typicky M = 2 nebo více).
  4. Selhání jedné sondy nespustí poplach - pokud jedna sonda hlásí "down", ale ostatní hlásí "up", systém zůstává ve stavu UP.

Jde o takzvaný consensus algorithm (algoritmus konsenzu), podobný jako u Raftu nebo Paxosu - rozhodnutí padá většinou hlasů.

Praktické nastavení

V ePulz.io admin panelu se multi-region zapne jedním přepínačem a nakonfiguruje se přes:

  • Aktivní regiony - seznam workerů, typicky 3-5
  • Consensus threshold - kolik regionů musí říct DOWN (výchozí: 2)
  • Worker token - sdílený tajný klíč (shared secret) mezi hlavním serverem a workery k ověření

Při každé kontrole hlavní server paralelně osloví všechny workery přes HTTP API. Worker provede lokální HTTP, TCP nebo ping test a vrátí výsledek. Hlavní server vyhodnotí konsenzus a upozornění eskaluje až tehdy, když se překročí prahová hodnota (threshold).

Trade-offs

Plusy:

  • Drasticky méně falešných poplachů
  • Geografická vizualizace - vidíte, ze kterých regionů web nefunguje
  • Detekce regionálních výpadků (problém s Cloudflare PoP, chybné směrování u ISP)

Mínusy:

  • Mírně delší latence mezi reálným výpadkem a upozorněním (čeká se na konsenzus z více zdrojů)
  • Vyšší nároky na infrastrukturu a vyšší cenový plán
  • Dostupnost workerů - pokud je polovina workerů sama nedostupná, prahová hodnota nemusí být dosažitelná (řešením je dynamický threshold = M z aktuálně živých sond)

Příklad consensus výpočtu

Konfigurace 3 reálně nasazených worker nodů: primary v Liptovském Hrádku (SK), eu2 v Liptovském Mikuláši (SK), eu1 v Bratislavě (SK), threshold = 2.

Scénář primary (Liptov) eu1 (Bratislava) eu2 (Liptov) Alert?
Všechno OK UP UP UP Ne
BGP flap mezi Liptovem a vaším hostingem DOWN UP UP Ne (1 ze 3)
HW selhání primary stroje DOWN UP DOWN Ano (2 ze 3)
Reálný výpadek vašeho serveru DOWN DOWN DOWN Ano

Jak nasadit vlastní workery

Worker je jednoduchá služba, která přijímá kontrolní úlohy přes HTTPS, provede test a vrátí výsledek. ePulz.io podporuje vlastní workery přes WireGuard tunel, takže mohou běžet na libovolné VPS bez veřejné IP a s hlavním serverem komunikovat přes šifrovaný tunel.

Konfigurace jednoho workeru trvá v praxi přibližně 10 minut (apt install wireguard, zkopírování peer configu, systemctl enable). Získáte tak opravdu nezávislé pozorovací pozice, které kombinují geografickou diverzitu (různá města) s hardwarovou redundancí (různé stroje ve stejném městě).

Závěr

Multi-region monitoring není jen marketingová fráze. Je to konkrétní inženýrský vzor (kvórum, resp. konsenzus), který posouvá monitoring z roviny "vidím to, co vidí jedna síťová pozice" do roviny "vidím to, co vidí internet". Pro kritické byznysové aplikace je to dnes standard.

Eliminujte false-positive alerty

Multi-region cross-check v základních plánech (centrálně spravované). 7 dní zdarma.

Spustit monitoring →

Související

Sdílet: Odkaz zkopírován

Vyzkoušejte ePulz.io zdarma - 7 dní bez kreditní karty.

Vytvořit účet