Proste przełączanie awaryjne dla strony internetowej (monitoring + dynamiczny DNS)

W tym artykule chcę pokazać, jak łatwo i bezpłatnie można utworzyć schemat przełączania awaryjnego dla witryny internetowej (lub dowolnej innej usługi internetowej) za pomocą kombinacji monitorowania OK i dynamiczną usługę DNS. Oznacza to, że w przypadku jakichkolwiek problemów ze stroną główną (od problemu z „Błądem PHP” na stronie, po brak miejsca czy po prostu podejrzanie małą liczbę zamówień w przypadku sklepu internetowego), nowi odwiedzający zostanie przekierowany na drugi (trzeci itd. dalej) znany działający serwer, lub na stronę „Przepraszam”, gdzie grzecznie wyjaśnią, że „jest problem, już jesteśmy tego świadomi i już go naprawiamy, my wkrótce to naprawię” (w tym przypadku będziesz już o tym wiedział i będziesz mógł naprawić).

Żyć z przełączaniem awaryjnym czy bez?

Dopóki nie pojawi się jakiś problem, nie ma dużej różnicy. Ale kiedy to się stanie, bez przełączania awaryjnego, często dzieje się tak: próbujesz szybko dowiedzieć się, w czym tkwi problem, ale to nie działa (kopie zapasowe nie są wdrażane, oprogramowanie z jakiegoś powodu nie działa tak, jak powinno z dokumentacji itp.), ale nie ma czasu, nie ma serwera - strony leżą, klienci dzwonią, wszyscy są na krawędzi, próbujesz to jakoś z grubsza i brudno naprawić „taśmą”, potem jakoś wydaje się, że się uruchamia o kulach i życiu. Myślisz, że w wolnym czasie będziesz musiał przemyśleć to bardziej szczegółowo i pięknie wszystko przerobić, ale nie ma nic trwalszego niż tymczasowe.

A teraz jak to się dzieje w pięknej wersji z filerem:

  • Zdarza się błąd
  • Błąd jest wykrywany automatycznie
  • Alarm zostaje wysłany
  • Przełączenie na jeden z serwerów zapasowych zostaje przeniesione
  • Spokojnie i bez paniki problem zostaje rozwiązany, naprawiony, a serwer przywrócony do pracy.

Schemat ten oczywiście może mieć również swoje własne problemy, ale mimo to schemat jest liniowy, każdy etap jest prosty, a najważniejsze jest to, że można go debugować osobno, więc ryzyko niepowodzenia tego schematu jest znacznie niższe, i wszystkie czynności można zautomatyzować i wykonać szybko (w przeciwieństwie do zadania znalezienia i naprawienia nieznanego epickiego badziewia). Twój samolot wylądował w odległym kraju, włączasz telefon i widzisz w telegramie powiadomienie, że serwer się zawiesił, ale wszystko jest w porządku, serwer zapasowy został aktywowany, możesz kontynuować podróż, nie potrzebujesz aby polecieć z powrotem lub naprawić go przez SSH z najbliższej kawiarni z Wi-Fi. Przekonasz się, kiedy będzie ci wygodniej.

Przyszłość już tu jest!

Wcześniej głównym problemem, który powodował, że przełączanie awaryjne było często niedopuszczalnym rozwiązaniem, był wysoki koszt. Albo trzeba było kupić drogi sprzęt (i zaprosić jeszcze droższych specjalistów). Albo kołchoz coś skomplikowanego według poradników (natknąłem się nawet na opcję, gdzie dwa serwery są dodatkowo połączone kablem zerowym modemem i wysyłają przez niego puls, aby w odpowiednim momencie serwer zapasowy go rozpoznał i przejął kontrolę) kontrola). Teraz są łatwiejsze i bezpłatne sposoby. Jeśli masz witrynę internetową z kotami, nie ma wymówki, aby jeszcze nie wdrożyć dla niej przełączania awaryjnego!

No cóż, poza tym do schematu przełączania awaryjnego potrzebny jest inny serwer (a może więcej niż jeden) i wcześniej był to duży wydatek, teraz można dostać VDS za grosze.

Najbardziej wiarygodna strona o kotach

Aby praktycznie zilustrować rozwiązanie z okerr + dynamic dns, uruchomiliśmy naszą stronę internetową z kotami cat.okerr.com. Nienawidzimy kotów, więc nie będzie ich tam dużo. W sumie są trzy witryny, każda wygląda mniej więcej tak samo (wszystkie na tym samym szablonie), ale z różnymi ustawieniami, aby ułatwić ich rozróżnienie, i każda z nich zapisuje informacje techniczne, aby zobaczyć, jak działa przełączanie awaryjne. Strona aktualizuje się co 1 minutę, ale zawsze możesz kliknąć przycisk „Załaduj ponownie” w przeglądarce.

W informacji technicznej znajduje się wiersz „status=OK”. Czasami serwery udają problemy i zapisują status=ERR. Główny serwer „wydaje się zawieszać” co 20 minut o każdej godzinie (0:20, 1:20, 2:20,…). Serwer zapasowy w 40 minut. Ostatni serwer („serwer „przepraszam”) jest zawsze uruchomiony. O 0 minutach każdej godziny serwery podstawowy i zapasowy są „przywracane”.

Proste przełączanie awaryjne dla strony internetowej (monitoring + dynamiczny DNS)

Jeśli otworzysz witrynę i pozostawisz ją w zakładce, zobaczysz, że nigdy się nie zawiesza (chociaż każdy serwer okresowo symuluje problem), a w przypadku problemu z serwerem po prostu „działa” pomiędzy działającymi serwerami. Zmieni się zdjęcie, nazwa i adres serwera oraz jego rola. Czasami można wyłapać moment, gdy status = ERR (problem już istnieje, ale cały schemat przełączania awaryjnego jeszcze nie zadziałał), ale przy kolejnej aktualizacji wyświetli się strona z działającej witryny.

Przełączenie awaryjne na okerr + dynamiczny DNS

Zobaczymy jak to będzie działać pod maską. Zadaniem filera jest zadbanie o to, aby adres cat.okerr.com zawsze wskazywał na adres IP działającego serwera.
Za każdym z serwerów, na których znajduje się nasza strona o kotach w okerr, znajduje się wskaźnik, który raz na minutę sprawdza jej status.

Proste przełączanie awaryjne dla strony internetowej (monitoring + dynamiczny DNS)

Na tym zrzucie ekranu widzimy, jak strona cat.okerr.com jest sprawdzana z serwera alpha.okerr.com. Strona powinna zawierać status=OK i jak widzieliśmy powyżej, nasz status wskaźnika jest teraz OK. Gdy serwer się „zepsuje”, wystąpi błąd ERR. (To tylko jeden przykład wskaźnika, okerr monitoruje, więc można podpiąć dowolny typ wskaźnika, np. sprawdzić ilość wolnego miejsca na dysku, liczbę nowych zamówień w bazie danych, a nawet wskaźniki logiczne, np. , w nocy będą pewne kryteria błędów, a w ciągu dnia inne).

W ustawieniach projektu stworzyliśmy schemat przełączania awaryjnego z następującymi wskaźnikami:

Proste przełączanie awaryjne dla strony internetowej (monitoring + dynamiczny DNS)

Schemat ma trzy wskaźniki (trzy serwery), różniące się priorytetem. Głównym serwerem strony jest Charlie, jeśli nie działa (nie będzie miał „statusu=OK” lub jest po prostu niedostępny), to brawo, a w tym drugim przypadku – alfa. Prawa strona strony pokazuje status rekordu DNS na różnych serwerach.

Dla tych, którzy zauważyli, że używana jest nazwa cat.he.okerr.com: Używamy nieco bardziej złożonego schematu. Zamiast po prostu zmieniać rekord DNS cat.okerr.com, zmieniamy cat.he.okerr.com (u dostawcy dynamicznego DNS Huragan Elektryczny), a cat.okerr.com to CNAME (alias), który się nie zmienia, zawsze wskazuje na cat.he.okerr.com. Po prostu bardziej podoba nam się Hurricane jako dynamiczny DNS i ma klucze do zarządzania pojedynczym wpisem (a nie całą strefą), uważamy, że jest bezpieczniejszy. Nie musisz także podawać kluczowych haseł w okerr, aby zarządzać całą domeną, a jedynie subdomeną lub rekordem.

Od upadku do wzlotu

Krok po kroku jak działa ten schemat:

  1. Wystąpił problem (symulowany) na serwerze
  2. Czujnik okerr sprawdza stan każdego serwera raz na minutę i raportuje do głównego serwera projektu w okerr
  3. Odpowiedni wskaźnik serwera zmienia się z OK na ERR
  4. Gdy zmieni się stan wskaźnika, następuje ponowne przeliczenie pracy awaryjnej i wyliczenie, który adres należy ustawić (jeśli to konieczne. Np. jeśli serwer główny pracuje, a w tym samym momencie padł serwer zapasowy, zmiany nie zostaną dokonane). zrobiony)
  5. Adres ten jest raportowany do usługi dynamicznego DNS. Po zakończeniu tego etapu po prawej stronie zobaczysz status „zsynchronizowany”.
  6. Wkrótce (w sekundach) rekord dotrze na serwery DNS Twojej domeny (w przypadku witryny cat jest to ns1-ns5.he.net).
  7. Od tego momentu niektórzy użytkownicy będą już na nowym serwerze live. Jednak nie wszystkie serwery DNS na świecie zaktualizowały jeszcze rekordy, a stary rekord może nadal znajdować się gdzieś w pamięci podręcznej. Możesz zobaczyć, jak dane na publicznych serwerach DNS „tańczą”, pokazując nową lub starą wartość. Jeśli zaktualizujesz stronę konfiguracji przełączania awaryjnego, operator sam zażąda nowych danych z serwerów DNS.
  8. Po ustabilizowaniu się danych, stary rekord w pamięci podręcznej jest wszędzie zepsuty - wszystkie 100% żądań trafia do nowego serwera.

Aby przyspieszyć etap 7 (często najdłuższy), wartość TTL dynamicznego rekordu DNS powinna być ustawiona na jak najniższym poziomie. Zazwyczaj usługi umożliwiają interwały wynoszące 90–120 sekund. To całkowicie rozsądny kompromis.

dodatkowo

Wszystko to można skonfigurować wieczorem (jeśli masz już serwer zapasowy). Zarówno usługi okerr, jak i usługi dynamicznego DNS są bezpłatne. Aby uzyskać więcej kontroli w okerr i krótszy okres weryfikacji, musisz ukończyć szkolenie (ze strony swojego profilu). Po ukończeniu poziom natychmiast wzrasta (20 wskaźników na godzinę + 1 szybki, 10 minut). A jeśli jest ich mało, napisz do [email chroniony], najprawdopodobniej uda się zwiększyć (do tej pory zawsze była taka możliwość, nigdy nie odmówiłem, wręcz przeciwnie, sam ją oferowałem). Tyle, że na początku nie chcę wszystkim obiecywać wszystkiego, nie jestem pewien, czy mam wystarczające siły, aby dotrzymać słowa. Ale na razie użytkowników jest niewielu, więc nie ma problemów z zwiększaniem limitów.

Co ogólnie potrafi okerr - spójrz na stronę internetową prezentacja. Generalnie jest to monitorowanie (zabbix z chmury), a filer to fajna dodatkowa funkcja. Dostęp do wersji demonstracyjnej można uzyskać również na stronie bez rejestracji.

W przypadku zmiany stanu wskaźnika wysyłane jest powiadomienie e-mailem lub telegramem. (Przyjrzeliśmy się, co się dzieje i zdaliśmy sobie sprawę, że telegram wydaje się najbardziej niezawodnym komunikatorem. Dziękujemy RKN za test warunków skrajnych!) Przy poprawnie skonfigurowanym okerr każde powiadomienie jest albo sygnałem „rzuć wszystko, musimy to naprawić!” lub „zgaś światło!” Nie powinno być żadnych dodatkowych alertów z okerry (jeśli są, należy je skonfigurować w jakiś inny sposób). Na przykład w przypadku naszej witryny o kotach serwer alfa jest ostatnim i nigdy nie udaje błędu. Jeśli się położy, musimy wiedzieć. Ale inne serwery stale udają błędy, dlatego aby nie otrzymywać alertów kilka razy na godzinę, wskaźniki te mają status „cichy”.

Sensowne jest również utworzenie serwera z przeprosinami (na dowolnym najtańszym hostingu), który albo będzie miał stronę z przeprosinami (w przypadku, gdy wszystkie serwery główne i zapasowe nie działają), albo przekieruje Cię do strony statusu na okerr (na przykład nasz cp.okerr.com/status/okerr) lub statuspage.io.

Źródło: www.habr.com

Dodaj komentarz