Scentralizowane monitorowanie i alerty
Rozszerzą Państwo monitorowanie poza pojedynczy serwer: prześlą metryki i logi do centralnego systemu, zbudują pulpity oraz skonfigurują alerty, aby dowiedzieć się o problemach, zanim zauważą je użytkownicy.
Scentralizowane monitorowanie i alerty to bezpłatna lekcja Linux Server Deployment & SSH Mastery na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Server Deployment & SSH Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.
Dlaczego centralizacja?
Logowanie do każdego serwera za pomocą top i journalctl sprawdza się w przypadku jednej maszyny. Przy większej liczbie serwerów takie podejście nie skaluje się, a problemy są widoczne dopiero wtedy, gdy akurat zacznie ich Pan/Pani szukać.
Centralizowane monitorowanie zbiera dane i logi ze wszystkich serwerów w jednym miejscu, zapewniając pulpity nawigacyjne i automatyczne alerty.
Dane a logi
Obserwowalność opiera się na dwóch rodzajach danych:
- Dane — liczbowe szeregi czasowe, takie jak procent użycia CPU, użycie pamięci czy liczba żądań
- Logi — pojedyncze zdarzenia tekstowe, takie jak błędy i wpisy dostępu
Zwykle zbiera się oba rodzaje danych, korzystając z różnych narzędzi zoptymalizowanych pod kątem każdego z nich.
Model Prometheus
Prometheus to popularny system do zbierania danych. Pobiera dane, odpytując za pomocą mechanizmu scrape punkty końcowe HTTP udostępniane przez poszczególne serwery.
Na każdym serwerze uruchamia się eksporter — node_exporter udostępnia dane o hoście — który publikuje dane odczytywane przez Prometheus.
# On each monitored server:
sudo apt install prometheus-node-exporter
curl http://localhost:9100/metrics | headKonfigurowanie celu scrape
Prometheus otrzymuje informacje o tym, co ma odpytywać, z pliku konfiguracyjnego. Każde zadanie zawiera cele (host:port eksportera).
Ten fragment odpytuje node_exporter na dwóch serwerach.
scrape_configs:
- job_name: 'nodes'
static_configs:
- targets: ['web1:9100', 'web2:9100']Odpytywanie danych za pomocą PromQL
Prometheus ma własny język zapytań o nazwie PromQL. Można za jego pomocą obliczać między innymi tempo zmian i średnie dla całej floty serwerów.
To wyrażenie szacuje użycie CPU na poszczególnych serwerach.
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode='idle'}[5m])) * 100)Wizualizacja za pomocą Grafany
Grafana łączy się z Prometheusem i wieloma innymi źródłami, aby tworzyć pulpity nawigacyjne. Należy dodać Prometheus jako źródło danych, a następnie utworzyć panele na podstawie zapytań PromQL.
Gotowe pulpity dla node_exporter udostępniają w ciągu kilku minut wykresy użycia CPU, pamięci, dysku i sieci.
sudo apt install grafana
sudo systemctl enable --now grafana-server
# Open http://server:3000 and add Prometheus as a data sourceCentralizacja logów
W przypadku logów należy przesyłać je z każdego serwera do centralnego magazynu. Popularny stos to Loki z Promtail, zintegrowany z Grafaną.
Promtail działa na każdym serwerze i przekazuje do Loki pliki logów oraz dziennik systemowy.
# promtail tails the journal and ships to Loki
clients:
- url: http://loki:3100/loki/api/v1/push
scrape_configs:
- job_name: journal
journal:
max_age: 12hDefiniowanie reguł alertów
Alerty zamieniają dane w działanie. Reguły alertów Prometheusa są uruchamiane, gdy wyrażenie pozostaje prawdziwe przez określony czas.
Ta reguła generuje alert, gdy węzeł jest niedostępny od dwóch minut.
groups:
- name: node
rules:
- alert: NodeDown
expr: up == 0
for: 2m
labels:
severity: critical
annotations:
summary: 'Instance {{ $labels.instance }} is down'Kierowanie alertów
Alertmanager odbiera wygenerowane alerty i kieruje je we właściwe miejsce: do poczty e-mail, Slacka, PagerDuty i innych usług. Usuwa również duplikaty alertów i je wycisza.
Alerty można mapować na odbiorców na podstawie etykiet, takich jak severity.
route:
receiver: 'team-slack'
receivers:
- name: 'team-slack'
slack_configs:
- channel: '#alerts'Unikanie zmęczenia alertami
Zbyt wiele alertów jest równie złe jak ich brak — ludzie zaczynają je ignorować. Dobrze skonfigurowane alerty:
- informują o objawach odczuwanych przez użytkowników, a nie o każdym krótkotrwałym skoku wartości
- używają czasu trwania
for, aby uniknąć migotania alertów - mają przypisany poziom ważności, dzięki czemu można filtrować szum
Dobre praktyki
Twórz trwałą obserwowalność:
- centralnie zbieraj zarówno dane, jak i logi
- zacznij od pulpitów społeczności, a następnie dostosuj je do swoich potrzeb
- generuj alerty tylko dla warunków wymagających działania
- sprawdź, czy alerty rzeczywiście do Ciebie docierają
Szybki test
Sprawdź swoją wiedzę na temat centralnego monitorowania.
Podsumowanie
Potrafi już Pan/Pani centralnie monitorować całą flotę serwerów:
- Dane zbierane przez Prometheus za pomocą scrape node_exporter i odpytywane przy użyciu PromQL
- Pulpity nawigacyjne w Grafanie
- Logi przesyłane do Loki za pośrednictwem Promtail
- Alerty na podstawie reguł Prometheusa i kierowane przez Alertmanager
Rozszerza to umiejętności pracy z logami pojedynczego serwera o proaktywną obserwowalność całej floty.
Często zadawane pytania
Czy lekcja „Scentralizowane monitorowanie i alerty” jest bezpłatna?
Tak — pełny tekst „Scentralizowane monitorowanie i alerty” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Server Deployment & SSH Mastery, przejdź na CoddyKit PRO. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.
Co nauczysz się w „Scentralizowane monitorowanie i alerty”?
Rozszerzą Państwo monitorowanie poza pojedynczy serwer: prześlą metryki i logi do centralnego systemu, zbudują pulpity oraz skonfigurują alerty, aby dowiedzieć się o problemach, zanim zauważą je użyt… Ćwiczysz Linux Server Deployment & SSH Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Linux Server Deployment & SSH Mastery?
Nie wymagamy żadnego doświadczenia. Linux Server Deployment & SSH Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Scentralizowane monitorowanie i alerty”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Linux Server Deployment & SSH Mastery?
Tak. Każda lekcja Linux Server Deployment & SSH Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Narzędzia do monitorowania systemu
- Zrozumienie logów systemowych
- Rotacja i archiwizacja logów
- Scentralizowane monitorowanie i alerty