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
Ż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
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”.
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.
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:
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
Od upadku do wzlotu
Krok po kroku jak działa ten schemat:
- Wystąpił problem (symulowany) na serwerze
- Czujnik okerr sprawdza stan każdego serwera raz na minutę i raportuje do głównego serwera projektu w okerr
- Odpowiedni wskaźnik serwera zmienia się z OK na ERR
- 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)
- Adres ten jest raportowany do usługi dynamicznego DNS. Po zakończeniu tego etapu po prawej stronie zobaczysz status „zsynchronizowany”.
- Wkrótce (w sekundach) rekord dotrze na serwery DNS Twojej domeny (w przypadku witryny cat jest to ns1-ns5.he.net).
- 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.
- 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ą
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
Źródło: www.habr.com