Jednoduché převzetí služeb při selhání pro web (monitorování + dynamický DNS)

V tomto článku chci ukázat, jak snadno a zdarma můžete vytvořit schéma převzetí služeb při selhání pro web (nebo jakoukoli jinou internetovou službu) pomocí kombinace monitorování okerr a dynamická služba DNS. To znamená, že v případě jakýchkoli problémů s hlavní stránkou (od problému s „chybou PHP“ na stránce, po nedostatek místa nebo jednoduše podezřele malý počet objednávek v případě internetového obchodu) budou noví návštěvníci být přesměrován na druhý (třetí atd.) dále) známý fungující server nebo na stránku „Omlouvám se“, kde zdvořile vysvětlí, že „nastal problém, již víme a již jej řešíme, to brzy opraví“ (a v tomto případě už budete vědět a můžete opravit).

Žít se selháním nebo bez?

Dokud nenastane nějaký problém, není velký rozdíl. Ale když se to stane, bez převzetí služeb při selhání se často stane následující: snažíte se rychle zjistit, v čem je problém, nefunguje to (nenasazují se zálohy, software z nějakého důvodu nefunguje tak, jak by měl z dokumentace , atd.), ale není čas, žádný server - stránky se povalují, klienti volají, všichni mají nervy, snažíte se to nějak hrubě a špinavě „páskou“ opravit, pak se to nějak rozběhne s berlemi a životy. Myslíte si, že ve volném čase na to budete muset přijít podrobněji a všechno krásně předělat, ale není nic trvalejšího než dočasné.

Nyní, jak se to stane v krásné verzi s filerem:

  • Dojde k chybě
  • Chyba je detekována automaticky
  • Upozornění je odesláno
  • Přepnutí na jeden ze záložních serverů se přenese
  • V klidu a bez paniky je problém vyřešen, opraven a server je znovu uveden do provozu.

Toto schéma může mít samozřejmě také své vlastní problémy, ale přesto je schéma lineární, každá fáze je jednoduchá a hlavní věc je, že může být laděna samostatně, takže šance na selhání tohoto schématu je mnohem nižší a všechny akce lze automatizovat a provádět rychle (na rozdíl od úkolu najít a opravit neznámé epické svinstvo). Vaše letadlo přistálo ve vzdálené zemi, zapnete telefon a v telegramu uvidíte upozornění, že server havaroval, ale vše je v pořádku, záložní server byl aktivován, můžete pokračovat v cestě, nepotřebujete odletět zpět nebo to opravit přes SSH z nejbližší kavárny s WiFi . Na to přijdeš, až to bude pohodlnější.

Budoucnost už je tady!

Dříve byla hlavním problémem, kvůli kterému bylo převzetí služeb při selhání často nepřijatelné řešení, výše nákladů, které to stojí. Nebo bylo nutné koupit drahý hardware (a pozvat ještě dražší specialisty). Nebo JZD něco složitého podle příruček (dokonce jsem narazil na variantu, kdy jsou dva servery navíc propojeny kabelem nulového modemu a ty přes něj pošlou tlukot srdce, aby to záložní server v pravý čas poznal a převzal řízení). Nyní existují jednodušší a bezplatné způsoby. Pokud máte web s kočkami, neexistuje žádná omluva, abyste na něj ještě nenasadili failover!

No, kromě toho, pro schéma převzetí služeb při selhání potřebujete další server (a možná více než jeden) a dříve to byly velké náklady, nyní můžete získat VDS za haléře.

Nejspolehlivější stránka s kočkami

Pro praktickou ukázku řešení s okerr + dynamic dns jsme spustili naše webové stránky s kočkami cat.okerr.com. Nesnášíme kočky, takže jich tam moc nebude. Existují celkem tři weby, každý vypadá zhruba stejně (všechny na stejné šabloně), ale s různými koťaty, aby se daly snadno rozlišit, a každý píše technické informace, aby viděl, jak funguje převzetí služeb při selhání. Stránka se sama aktualizuje jednou za 1 minutu, ale vždy můžete kliknout na znovu načíst v prohlížeči.

V technických informacích je řádek „stav=OK“. Někdy servery předstírají problémy a zapisují stav = ERR. Hlavní server „zdá se, že spadne“ ve 20 minutách každou hodinu (0:20, 1:20, 2:20, …). Záložní server za 40 minut. Poslední server („sorry“ server) je vždy spuštěn. Každou hodinu v 0 minutách jsou primární a záložní servery „obnoveny“.

Jednoduché převzetí služeb při selhání pro web (monitorování + dynamický DNS)

Pokud stránku otevřete a necháte ji v záložce, uvidíte, že nikdy nespadne (ačkoli každý jednotlivý server pravidelně simuluje problém) a v případě problému se serverem jednoduše „běží“ mezi živými servery. Změní se obrázek, název a adresa serveru a jeho role. Někdy můžete zachytit okamžik, kdy status = ERR (problém již existuje, ale celé schéma převzetí služeb při selhání ještě nefungovalo), ale další aktualizace vám ukáže stránku z funkčního webu.

Failover na okerr + dynamický DNS

Pojďme se podívat, jak to funguje pod kapotou. Úkolem fileru je zajistit, aby adresa cat.okerr.com vždy ukazovala na IP adresu fungujícího serveru.
Za každým ze serverů, které hostují naši kočičí stránku v okerru, je indikátor, který jednou za minutu kontroluje její stav.

Jednoduché převzetí služeb při selhání pro web (monitorování + dynamický DNS)

Na tomto snímku obrazovky vidíme, jak je stránka cat.okerr.com kontrolována ze serveru alpha.okerr.com. Stránka by měla obsahovat status=OK, a jak vidíme výše, stav našeho indikátoru je nyní v pořádku. Když se server „rozbije“, objeví se ERR. (Toto je jen jeden příklad indikátoru, okerr monitoruje, takže můžete připojit jakýkoli typ indikátoru, například zkontrolovat volné místo na disku, počet nových objednávek v databázi a dokonce i logické indikátory, například , v noci budou některá chybová kritéria a během dne jiná) .

V nastavení projektu jsme vytvořili schéma převzetí služeb při selhání s těmito indikátory:

Jednoduché převzetí služeb při selhání pro web (monitorování + dynamický DNS)

Schéma má tři indikátory (tři servery), které se liší prioritou. Hlavním serverem pro stránku je charlie, pokud nefunguje (nebude mít „stav=OK“ nebo je prostě nedostupný), pak bravo a v druhém případě - alfa. Pravá strana stránky zobrazuje stav DNS záznamu na různých serverech.

Pro ty, kteří si všimli, že se používá název cat.he.okerr.com: Používáme trochu složitější schéma. Místo pouhé změny DNS záznamu cat.okerr.com změníme cat.he.okerr.com (u poskytovatele dynamické DNS Elektrický hurikán) a cat.okerr.com je CNAME (alias), který se nemění, vždy ukazuje na cat.he.okerr.com. Hurricane se nám líbí víc jako dynamický DNS a má klíče pro správu jednoho záznamu (spíše než celé zóny), myslíme si, že je to bezpečnější. Také nemusíte zadávat klíčová hesla v okerr pro správu celé domény, ale pouze pro subdoménu nebo záznam.

Od pádu ke vstávání

Krok za krokem, jak toto schéma funguje:

  1. Na serveru nastane (simulovaný) problém
  2. Senzor okerr kontroluje stav každého serveru jednou za minutu a podává zprávy hlavnímu serveru projektu v okerr
  3. Odpovídající indikátor serveru se změní z OK na ERR
  4. Když se stav indikátoru změní, přepočítá se převzetí služeb při selhání a vypočítá se, jakou adresu je potřeba nastavit (pokud je to nutné. Pokud například funguje hlavní server a zároveň zemřel záložní server, neproběhnou žádné změny vyrobeno)
  5. Tato adresa je hlášena službě dynamické DNS. Po dokončení této fáze uvidíte vpravo stav „synchronizace“.
  6. Velmi brzy (v sekundách) se záznam dostane na DNS servery vaší domény (pro kočičí stránky je to ns1-ns5.he.net).
  7. Od tohoto okamžiku již budou někteří uživatelé na novém živém serveru. Ale ne všechny servery DNS na světě ještě aktualizovaly záznamy a starý záznam může být stále někde v mezipaměti. Můžete vidět, jak data na veřejných serverech DNS „tančí“ a zobrazují novou nebo starou hodnotu. Pokud aktualizujete konfigurační stránku převzetí služeb při selhání, operátor si sám vyžádá nová data ze serverů DNS.
  8. Po stabilizaci dat je starý záznam v mezipaměti shnilý všude - všech 100 % požadavků jde na nový server.

Pro urychlení fáze 7 (často nejdelší) by mělo být TTL dynamického DNS záznamu nastaveno co nejnižší. Služby obvykle umožňují intervaly 90–120 sekund. To je naprosto rozumný kompromis.

Dále

To vše lze nakonfigurovat za večer (pokud již máte záložní server). Služby okerr i dynamické DNS jsou zdarma. Chcete-li získat více kontrol v okerr a kratší dobu ověřování, musíte absolvovat školení (ze stránky vašeho profilu). Po dokončení se úroveň okamžitě zvýší (20 indikátorů za hodinu + 1 rychlý, 10 minut). A kdyby jich bylo málo, napište [chráněno e-mailem], s největší pravděpodobností bude možné zvýšit (zatím vždy příležitost byla, nikdy jsem neodmítl, naopak jsem ji sám nabízel). Je to tak, že zpočátku nechci všem slibovat všechno, nejsem si jistý, zda mám dostatek kapacit, abych dodržel slovo. Zatím je ale málo uživatelů, takže problémy se zvyšováním limitů nejsou.

Co umí okerr obecně - podívejte se na web představení. Obecně se jedná o monitorování (zabbix z cloudu) a filer je příjemná doplňková funkce. Můžete také přistupovat k demo z webu bez registrace.

При изменении состояния индикатора — отсылается уведомление на почту или Telegram. (Мы тут посмотрели что происходит, и поняли, что, похоже, telegram — самый надежный мессенджер. Спасибо РКН за стресс-тест!) При правильной настройке okerr, любое уведомление — это либо сигнал “бросайте все, надо чинить!”, либо “отбой!”. Лишних алертов от окерра быть не должно (если они есть — надо настраивать как-то иначе). Например, для нашего котосайта сервер alpha последний и никогда не имитирует ошибку. Если он ляжет — мы должны знать. А вот остальные сервера постоянно симулируют ошибки, поэтому, чтоб не получать алерты несколько раз в час, у тех индикаторов стоит статус “тихий”.

Smysluplné je také vytvořit si omluvný server (na jakémkoli nejlevnějším hostingu), na kterém bude buď vaše omluvná stránka (v případě výpadku všech hlavních i záložních serverů), nebo vás přesměruje na stavovou stránku na okerr (například náš cp.okerr.com/status/okerr) nebo statuspage.io.

Zdroj: www.habr.com

Přidat komentář