Przejdź do treści

Ustawienia plików cookie

Prosimy wybrać, na które rodzaje plików cookie Państwo zezwalają. Wybór można zmienić w dowolnym momencie w Ustawieniach plików cookie na dole każdej strony. Polityka prywatności

Niezbędne

Zawsze włączone

Potrzebne do logowania, zachowania koszyka i zapamiętania wyborów. Są zawsze włączone.

Jakie pliki cookie?
  • weboke_sessie, weboke_klant, weboke_remember: sesja i pozostanie zalogowanym
  • weboke_basket: koszyk
  • wkBtwIncl: wyświetlanie cen z VAT lub bez VAT
  • wok_cookies: wybór dotyczący plików cookie, 12 miesięcy

Mierzą, która reklama prowadzi do odwiedzin lub zamówienia, abyśmy nie płacili za reklamy, które nic nie dają.

Jakie pliki cookie?
  • Google Ads przez Google Tag Manager (_gcl_au, _gcl_aw), do 90 dni
  • OpenAI Ads, reklamy w ChatGPT
  • wok_aff: przez którego partnera trafili Państwo do nas (program partnerski), 60 dni

4,6

Kraj i język

Każdy kraj ma własną stronę z cenami i stawką VAT tego kraju.

Wyświetl

Monitorowanie serwera

Moduł 8: Kopie zapasowe i monitorowanie · Czas czytania: 10 min

Cel lekcji: Po tej lekcji będą Państwo potrafili określić, co monitorować na swoim serwerze (z zewnątrz i od wewnątrz), jakie progi mają sens oraz jak zadbać o to, by powiadomienie naprawdę do Państwa docierało, a jednocześnie nie zalewał Państwa nadmiar powiadomień.

Kluczowe pojęcia: monitorowanie z zewnątrz, monitorowanie od wewnątrz, uptime, kontrola http, kontrola portu, wygasanie certyfikatu, miejsce na dysku, pamięć, load, heartbeat (dead man's switch), próg, kanał powiadomień, zmęczenie alarmami, wykresy dostawcy

Dlaczego warto monitorować?

Bez monitorowania dowiadują się Państwo o problemach od klientów albo wcale. Strona, która nie działa od soboty, certyfikat, który wygasł, dysk, który się zapełnił, kopia zapasowa, która od trzech tygodni po cichu się nie udaje: wszystko to można było zauważyć na czas. Monitorowanie oznacza, że program stale sprawdza sytuację i ostrzega Państwa, gdy coś jest nie tak.

Dobre monitorowanie odpowiada na dwa pytania:

  1. Czy to działa dla użytkownika? To mierzy się z zewnątrz.
  2. Czy wkrótce coś się zepsuje? To mierzy się od wewnątrz: dysk, pamięć, aktualizacje, kopie zapasowe.

Z zewnątrz: to, co widzi użytkownik

Monitorowanie z zewnątrz działa na innej maszynie niż Państwa serwer, najlepiej u innego dostawcy. To logiczne: gdy serwer nie działa, sam nie może już nikogo ostrzec.

KontrolaCo robiDlaczego
http(s)co minutę pobiera stronę i sprawdza kod statusu (200) oraz ewentualnie słowo na stroniestrona naprawdę działa, a nie tylko serwer
portłączy się na przykład z portem 22 lub 443usługa nasłuchuje i jest osiągalna
pingwysyła pakiet ICMPserwer żyje (ale nie mówi to nic o stronie)
certyfikatodczytuje certyfikat i datę ważnościostrzega z dużym wyprzedzeniem przed wygaśnięciem
DNSodpytuje rekord Anazwa nadal wskazuje na właściwy serwer

Certyfikat zasługuje na szczególną uwagę. Certyfikaty Let's Encrypt są ważne krótko i odnawiane automatycznie (lekcja 7.3), ale jeśli odnowienie po cichu się nie powiedzie, zauważą to Państwo dopiero wtedy, gdy odwiedzający zobaczą ostrzeżenie. Sam Let's Encrypt od czerwca 2025 nie wysyła już e-maili przypominających o wygasających certyfikatach i sam zaleca monitorowanie. Kontrola certyfikatu, która ostrzega przy ważności krótszej niż 14 dni, nie jest więc luksusem.

Popularnym programem do samodzielnego monitorowania jest Uptime Kuma, który zainstalują Państwo w kontenerze w lekcji 9.4. Najlepiej nie umieszczać go na tym samym serwerze, który ma monitorować, albo połączyć go z drugą, zewnętrzną kontrolą. Istnieją też usługi zewnętrznych firm, które robią to samo; prosimy wybrać taką, która Państwu odpowiada, i zwrócić uwagę na to, gdzie ma siedzibę, jeśli w powiadomieniach mogą się znaleźć dane Państwa klientów.

Od wewnątrz: co wkrótce może się zepsuć

Niektóre problemy widać z zewnątrz dopiero wtedy, gdy jest za późno. Mierzy się je na samym serwerze:

CoJak to sprawdzićRozsądny próg
Miejsce na dyskudf -hostrzeżenie powyżej 80%, alarm powyżej 90%
Inody (liczba plików)df -ijak wyżej; dysk może być "pełny" przez miliony małych plików
Pamięćfree -h, komunikaty "Out of memory" w journalctl -kkażdy komunikat OOM jest sygnałem
Loaduptime, topprzez dłuższy czas wyższy niż liczba vCPU
Usługi, które uległy awariisystemctl --failed (lekcja 6.1)każda usługa, która uległa awarii
Aktualizacje i restart/var/run/reboot-required, apt list --upgradable (lekcja 4.2)aktualizacja bezpieczeństwa starsza niż dwa dni
Kopie zapasowekoniec Państwa skryptu kopii zapasowej (lekcja 8.2)każde nieudane lub pominięte uruchomienie

Można to zrobić prostym skryptem z timerem (lekcja 6.3), który po przekroczeniu progu wysyła powiadomienie, albo programem do monitorowania z agentem na serwerze (znane przykłady open source to Netdata oraz połączenie Prometheus z node_exporter). Prosimy zacząć od małej skali: dysk, usługi, które uległy awarii, i kopie zapasowe wychwytują większość problemów.

Wykresy w panelu Państwa dostawcy (procesor, pamięć, sieć, dysk w okresie od dnia do roku) świetnie uzupełniają monitorowanie, bo pokazują trendy: jeśli dysk co miesiąc zapełnia się o kilka procent, wiadomo, kiedy będzie pełny. W WebOké znajdują się one na ekranie VPS; u innych dostawców podobnie. Zazwyczaj nie wysyłają powiadomień, więc nie zastępują monitorowania.

Heartbeat: powiadomienie, gdy nic się nie dzieje

Niektóre rzeczy trzeba monitorować właśnie pod kątem braku sygnału. Najlepszym przykładem jest nocna kopia zapasowa: jeśli skrypt w ogóle się nie uruchomi (timer wyłączony, serwer wyłączony, skrypt uszkodzony), nie pojawi się też żaden komunikat o błędzie.

Rozwiązanie nazywa się heartbeat lub dead man's switch: system monitorowania codziennie oczekuje sygnału. Skrypt kopii zapasowej na końcu, tylko jeśli wszystko się udało, wysyła małe żądanie http na stały, tajny adres URL Państwa systemu monitorowania:

restic backup ... && restic check && curl -fsS -m 10 https://status.example.com/api/push/Xyz123abc?status=up >/dev/null

Jeśli sygnał nie nadejdzie przez dzień, otrzymają Państwo powiadomienie. Uptime Kuma ma do tego typ monitora Push; istnieją też programy do samodzielnego hostowania, takie jak Healthchecks. W ten sposób jedną linijką sprawdzają Państwo, czy kopia zapasowa naprawdę się wykonała.

Powiadomienia, które docierają, i to nie w nadmiarze

Powiadomienie, którego nikt nie czyta, to nie monitorowanie. Prosimy zadbać o trzy rzeczy:

  1. Kanał powiadomień, który Państwo naprawdę widzą: powiadomienie push na telefonie, kanał czatu, SMS. E-mail jest możliwy, ale tylko wtedy, gdy serwer potrafi niezawodnie wysyłać pocztę, a e-mail łatwo przeoczyć. Dla najważniejszych powiadomień prosimy używać dwóch kanałów.
  2. Niezależność od tego, co Państwo monitorują. Jeśli e-mail o pełnym dysku wysyła sam serwer, nie dotrze on, gdy dysk będzie pełny. Monitorowanie z zewnątrz i heartbeat to wychwytują.
  3. Mało, ale zasadnie. Jeśli codziennie otrzymują Państwo dziesięć powiadomień, z którymi nic nie robią, zaczną je Państwo ignorować, także to jedno, które jest ważne. Nazywa się to zmęczeniem alarmami. Prosimy ustawić progi tak, by powiadomienie oznaczało: trzeba coś zrobić. Niech powiadomienie uruchamia się dopiero po kilku nieudanych kontrolach z rzędu (na przykład trzech), aby jeden zgubiony pakiet nie budził Państwa w nocy.

Prosimy przetestować powiadomienia: na chwilę wyłączyć usługę i sprawdzić, czy powiadomienie nadejdzie i ile to trwało.

Czego nie robić

  • Strony monitorowania dostępne dla wszystkich z wewnętrznymi nazwami i adresami. Publiczna strona statusu jest w porządku, ale powinna pokazywać tylko to, co odwiedzający mogą wiedzieć.
  • Konto administratora systemu monitorowania bez silnego hasła i 2FA. Kto ma dostęp do monitorowania, może wyłączyć powiadomienia.
  • Agenty z większymi uprawnieniami, niż potrzeba. Agent monitorowania zazwyczaj nie musi działać jako root.

Podsumowanie

  • Z zewnątrz, z innej maszyny, prosimy monitorować, czy wszystko działa (http, port, certyfikat, DNS), a od wewnątrz, czy wkrótce coś się nie zepsuje (dysk, pamięć, usługi, aktualizacje, kopie zapasowe).
  • Certyfikaty zasługują na osobną kontrolę: Let's Encrypt od czerwca 2025 nie wysyła już e-maili przypominających.
  • Heartbeat zgłasza brak sygnału; idealny dla kopii zapasowych i zaplanowanych zadań.
  • Prosimy wybrać kanał powiadomień, który Państwo naprawdę widzą, niezależny od samego serwera, i ustawić progi tak, by każde powiadomienie wymagało działania.
  • Wykresy dostawcy pokazują trendy, ale zazwyczaj nie wysyłają powiadomień.

Quiz

1. Dlaczego monitorowanie z zewnątrz działa na innej maszynie niż sam serwer?



2. Państwa skrypt kopii zapasowej wysyła e-mail w razie błędu. Przez trzy tygodnie nie przyszedł żaden e-mail, ale nie wykonano też żadnej kopii. Co by to wychwyciło?



3. Państwa monitorowanie codziennie wysyła dziesiątki powiadomień o krótkotrwałych skokach. Jakie jest ryzyko?



4. Która kontrola najlepiej i na czas ostrzega przed certyfikatem, który nie został automatycznie odnowiony?



5. df -h pokazuje 45% wolnego miejsca, ale serwer nie może tworzyć nowych plików. Co Państwo sprawdzają?



Zadanie

Zadanie O8.3: Państwa lista monitorowania. Prosimy przygotować listę monitorowania dla własnego serwera: jakie kontrole z zewnątrz (z jakim interwałem i skąd), jakie od wewnątrz (z progami), jakie heartbeaty i przez jaki kanał przychodzą powiadomienia. Prosimy skonfigurować co najmniej jedną zewnętrzną kontrolę http lub certyfikatu oraz jeden heartbeat (na przykład dla kopii zapasowej) i przetestować powiadomienie, wyłączając na chwilę usługę. Prosimy zanotować, ile czasu minęło, zanim nadeszło powiadomienie.

Zadanie O8.3: Państwa lista monitorowania

To zadanie wykonuje się samodzielnie, nikt go nie sprawdza. Prosimy zaznaczyć wykonane punkty i oznaczyć zadanie jako wykonane.




Zaznaczenia i notatki pozostają tylko w tej przeglądarce; nie są nigdzie wysyłane. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało wykonane.

Przeczytaj więcej

Chwileczkę…

Konfiguracja domen

Dla każdej domeny można ustawić serwery nazw, powiązanie z hostingiem oraz to, kto zostanie właścicielem.

Wczytywanie domen…