Przejdź do treści
JT CONSULTING
Menu

Monitoring serwera i stron: Uptime Kuma w praktyce

Juliusz Tomeczek,

W poprzednim tekście tej serii opisałem pierwszą godzinę z nowym serwerem i zapowiedziałem narzędzie, które co minutę sprawdza, czy moje strony i aplikacje odpowiadają. Tym narzędziem jest Uptime Kuma, darmowy program open source do monitorowania dostępności, który instaluje się na własnym serwerze. Sprawdza strony i usługi w stałym rytmie i wysyła powiadomienie, gdy któraś przestaje odpowiadać albo wraca do pracy.

Opisuję, co u mnie sprawdza, kiedy podnosi alarm i czego nie widzi. Nie podaję instrukcji instalacji ani listy tego, co monitoruję, bo taki wykaz byłby mapą serwera dla każdego, kto chciałby się do niego dobrać.

Po co monitoring, skoro strona działa

Na serwerze, który prowadzę, pracuje kilkanaście usług i strony klientów. Każda z nich może przestać odpowiadać z powodu, który nie ma nic wspólnego z moją pracą: kończy się certyfikat, zapełnia się dysk, aktualizacja zmienia zachowanie programu. Bez monitoringu o takiej awarii dowiaduję się od osoby, która próbowała wejść na stronę, czyli najpóźniej, jak się da, i od osoby, od której najmniej chciałbym to usłyszeć.

Monitoring odwraca tę kolejność. Narzędzie zauważa awarię w ciągu kilku minut, a powiadomienie przychodzi do mnie, zanim ktokolwiek zdąży napisać.

Co sprawdza monitor

Najprostsze sprawdzenie zachowuje się jak przeglądarka. Co minutę wysyła zapytanie pod adres strony i ocenia odpowiedź. Jeżeli strona odpowiada poprawnie i w rozsądnym czasie, wszystko jest w porządku. Jeżeli nie odpowiada, zwraca błąd albo odpowiada zbyt długo, monitor zapisuje awarię.

Poprawna odpowiedź nie zawsze oznacza otwartą stronę. Strona testowa, którą przed publikacją zamykam hasłem, ma odpowiadać odmową dostępu, więc dla jej monitora prawidłowym wynikiem jest właśnie odmowa. Gdyby strona testowa nagle otworzyła się bez hasła, byłby to problem, a nie powód do zadowolenia.

Drugi rodzaj sprawdzenia dotyczy usług, których z internetu w ogóle nie widać, takich jak baza danych albo poczta wychodząca. Tu monitor sprawdza tylko, czy usługa przyjmuje połączenie wewnątrz serwera. To wystarcza, żeby zauważyć, że baza przestała działać, zanim przestaną działać aplikacje, które z niej korzystają.

Przy każdej stronie monitor pilnuje też certyfikatu. Powiadomienie o jego wygaśnięciu przychodzi trzykrotnie: na 21, 14 i 7 dni przed terminem. Certyfikaty odnawia u mnie automatycznie pośrednik, przez który przechodzi ruch do wszystkich stron, więc to ostrzeżenie jest kontrolą automatu, a nie przypomnieniem o pracy do wykonania.

Jak wypróbować program bez instalacji

Uptime Kuma można sprawdzić bez własnego serwera. Twórcy programu udostępniają wersję demonstracyjną, która działa przez 10 minut, a po tym czasie usuwa wszystkie dane. Na potrzeby takiego krótkiego testu wystarczy założyć tymczasowe konto i dodać adres swojej strony. Tak zrobiłem przy pisaniu tego tekstu: kilkoma kliknięciami ustawiłem monitoring strony jt-consulting.pl, a zrzut niżej pochodzi właśnie z tego testu.

Zrzut ekranu Uptime Kuma: monitor strony jt-consulting.pl ze statusem Online, paskiem sprawdzeń wykonywanych co 60 sekund, czasem odpowiedzi, dostępnością i datą ważności certyfikatu, a niżej wykres czasu odpowiedzi (powiększ)
Monitor strony jt-consulting.pl w wersji demonstracyjnej Uptime Kuma. Każda kreska na pasku to jedno sprawdzenie, a zielona oznacza poprawną odpowiedź. Niżej widać czas odpowiedzi strony i liczbę dni do wygaśnięcia certyfikatu.

Kiedy przychodzi alarm

Powiadomienie przychodzi przy każdej zmianie stanu: gdy usługa przestaje odpowiadać i gdy wraca do pracy. Kanał zależy od konfiguracji, bo Uptime Kuma potrafi wysłać powiadomienie pocztą elektroniczną albo na jeden z kilkudziesięciu komunikatorów. U mnie trafia na komunikator. Drugie powiadomienie jest równie ważne jak pierwsze, bo mówi, czy awaria minęła sama, czy wymaga mojej reakcji.

Monitor nie podnosi jednak alarmu po pierwszym nieudanym sprawdzeniu, tylko po trzech kolejnych próbach w odstępie minuty. To nie jest nadmiar ostrożności, tylko warunek, bez którego monitoring przestałby działać. Każda zmiana w kodzie moich stron uruchamia ich automatyczną przebudowę, a przebudowa na chwilę wyłącza stronę. Monitor bez powtórzeń zgłaszałby awarię przy każdym wdrożeniu. Po tygodniu takich powiadomień nikt by ich nie czytał, a alarm, którego nikt nie czyta, nie chroni przed niczym.

Czego monitor nie widzi

Awarii całego serwera, jeżeli monitor stoi na tej samej maszynie. Uptime Kuma zainstalowana na serwerze, którego pilnuje, przestaje działać razem z nim, gdy serwer padnie w całości, i nie wysyła wtedy żadnego powiadomienia. Najlepszym rozwiązaniem są dwie instalacje: jedna na pilnowanym serwerze, a druga na zewnętrznej maszynie, na przykład u innego dostawcy. Obie monitorują się nawzajem, więc gdy jedna przestanie działać, druga to zauważy i podniesie alarm.

Daty wygaśnięcia niektórych domen. Przy jednej z moich domen z końcówką .com.pl monitor pokazywał datę wygaśnięcia z przeszłości, choć domena działała bez zarzutu. Wygląda to na sposób odczytu danych rejestrowych dla tej końcówki. Terminu odnowienia domen pilnuję więc w panelu rejestratora, a nie w monitorze.

Tego, czy serwer jest zdrowy. Monitor odpowiada na pytanie, czy strona działa, ale nie powie, że dysk zapełnia się od tygodnia albo że ostatnia kopia zapasowa jest sprzed kilku dni. Na takie pytania mogą odpowiadać osobne skrypty, które działają bezpośrednio na serwerze i regularnie sprawdzają jego stan: zajętość dysku i pamięci, świeżość kopii zapasowych, terminy certyfikatów i to, czy pracują wszystkie potrzebne kontenery. Wynik przesyłają w raporcie. Jak pokazał błąd opisany w poprzednim odcinku, taka kontrola musi sprawdzać właściwą rzecz: datę ostatniej kopii, a nie samo to, że plik kopii istnieje.

Czy monitoring jest potrzebny małej firmie

Jeżeli firma ma jedną stronę u dostawcy hostingu, monitoring może wydawać się zbędny. Wystarczy jednak jedna awaria, która trwa cały weekend, żeby się przekonać, ile kosztuje dowiadywanie się o niej w poniedziałek od klienta. Proste sprawdzanie dostępności strony kosztuje niewiele i nie wymaga własnego serwera.

Przy własnym serwerze monitoring nie jest dodatkiem, tylko częścią pracy, tak samo jak kopie zapasowe. Zakładam i prowadzę takie serwery dla firm, razem z monitoringiem i reagowaniem na alarmy, a zakres tej pracy opisuje strona Własny serwer zamiast abonamentów.

Co dalej w tej serii

W następnym odcinku opiszę automatyzacje, czyli narzędzie, które na moim serwerze łączy ze sobą pozostałe programy i wykonuje powtarzalną pracę bez mojego udziału. Przez nie przechodzą u mnie także raporty skryptów, które sprawdzają stan serwera.

Ten tekst powstał z użyciem narzędzi sztucznej inteligencji, bo tak pracuję na co dzień i tego uczę. Każde twierdzenie w nim sprawdziłem i odpowiadam za nie z imienia i nazwiska. Rysunki w tym dziale powstały tak samo: są wektorowe, napisane jako kod przy tej samej pomocy. Zrzuty ekranu pokazują prawdziwe programy i robię je sam.

Juliusz Tomeczek, JT CONSULTING

Porozmawiajmy o współpracy

Napisz krótko, czego potrzebujesz, a odezwę się z propozycją następnego kroku. Odpowiadam osobiście, bo w JT CONSULTING nie ma działu obsługi.

Jeżeli wolisz najpierw poczytać, więcej tekstów o sztucznej inteligencji znajdziesz na moim blogu AI for Everyone. Zobacz blog