Language: pl
Uptime Kuma: konfiguracja własnego monitoringu stron na VPS
Strona może przestać działać, a mimo to nadal zwracać 200 OK. Kopia zapasowa może przestać się wykonywać bez wyraźnego błędu. Uptime Kuma wykrywa oba problemy: sprawdza strony, API, porty i zadania w tle, a następnie wysyła powiadomienie, gdy coś pójdzie nie tak.
Omówimy, gdzie hostować system monitoringu, jakiego VPS potrzebuje, jak zainstalować Uptime Kuma 2, włączyć HTTPS, połączyć Telegram i utworzyć stronę statusu.
Uptime Kuma w siedmiu krokach
- Przydziel mały VPS osobno od monitorowanych projektów.
- Skieruj do niego subdomenę, na przykład
monitor.example.com. - Zainstaluj Dockera i uruchom Uptime Kuma 2.
- Zamknij wewnętrzny port
3001i włącz HTTPS. - Utwórz monitory HTTP, DNS, TCP lub push.
- Skonfiguruj Telegram i w razie potrzeby stronę statusu.
- Przygotuj aktualizacje oraz zewnętrzną kopię katalogu danych.
Czym jest Uptime Kuma
Uptime Kuma to bezpłatne, samodzielnie hostowane narzędzie o otwartym kodzie źródłowym. Jego panel i historia kontroli są przechowywane na własnym serwerze.
Może monitorować HTTP(S), porty TCP, ping, DNS, WebSocket, tekst i JSON w odpowiedziach, sygnały push oraz kontenery Dockera. Minimalny interwał sprawdzania wynosi 20 sekund. Narzędzie oferuje także dziesiątki kanałów powiadomień, 2FA, wykresy opóźnień, monitoring certyfikatów TLS i wiele stron statusu.
Jak wykryć awarię ukrytą za 200 OK
Podstawowe sprawdzenie HTTP widzi tylko kod odpowiedzi. Serwer WWW może jednak wyświetlać pustą stronę albo ekran błędu aplikacji i nadal zwracać pomyślny status.
Aby monitorowanie było dokładniejsze, użyj:
- Keyword — wyszukuje oczekiwaną frazę, na przykład nazwę strony lub tekst „Account dashboard”;
- JSON Query — sprawdza wartość w odpowiedzi API, na przykład
status: healthy.
Dzięki temu monitor potwierdza nie tylko dostępność portu, ale także to, że aplikacja pokazuje co najmniej jeden oczekiwany sygnał prawidłowego działania.
Monitor push dla kopii zapasowych i zadań cron
Monitor push nie odpytuje usługi. Zamiast tego czeka na regularny sygnał z tej usługi. Skrypt kopii zapasowej lub zadanie cron wywołuje unikalny URL po pomyślnym zakończeniu pracy. Jeśli sygnał nie nadejdzie na czas, Uptime Kuma zgłasza awarię.
Pomaga to wykryć „cichy” problem: strona nadal działa, ale codzienna kopia zapasowa nie została utworzona od kilku dni.
Czego Uptime Kuma nie zastępuje
Uptime Kuma przede wszystkim śledzi dostępność i czas odpowiedzi. Do monitorowania CPU, RAM, dysku, logów i metryk kontenerów uzupełnij je o Prometheus, Netdata, Zabbix lub inny system: Kuma zauważa problem z zewnątrz, a metryki pomagają znaleźć jego przyczynę.
Dlaczego monitoring powinien działać na osobnym VPS
Jeśli Uptime Kuma jest zainstalowane obok strony, awaria VPS, sieci lub centrum danych może wyłączyć zarówno projekt, jak i system monitoringu. Powiadomienie może wtedy nigdy nie zostać wysłane.
Hostuj panel na osobnym VPS, a w przypadku ważnych projektów także w innej lokalizacji lub u innego dostawcy. Warto również monitorować samo Kuma za pomocą zewnętrznej usługi: ktoś musi obserwować także system monitoringu.
Wymagania serwera Uptime Kuma
Projekt nie definiuje ścisłego oficjalnego minimum CPU i RAM. Praktyczna konfiguracja początkowa dla małej instalacji to:
- 1 vCPU;
- 1 GB RAM;
- 10 GB SSD;
- Ubuntu 24.04 LTS;
- IPv4;
- domena lub subdomena do HTTPS.
Taka konfiguracja zwykle wystarczy do kilkudziesięciu prostych kontroli. Przy setkach monitorów, długim przechowywaniu historii lub kontrolach opartych na przeglądarce wybierz 2 GB RAM albo więcej.
Jak zainstalować Uptime Kuma na VPS
W tym przykładzie używamy Ubuntu 24.04 i subdomeny monitor.example.com.
1. Skonfiguruj DNS i zaporę
Utwórz rekord DNS A wskazujący na adres IPv4 VPS. Połącz się przez SSH i otwórz wymagane porty:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enableNie zamykaj bieżącej sesji SSH, dopóki nie przetestujesz nowego połączenia.
2. Zainstaluj Docker i Docker Compose
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. Uruchom Uptime Kuma 2
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
cat > compose.yaml <<'EOF'
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
EOF
docker compose up -d
docker compose psUżyj tagu :2: latest nadal wskazuje na przestarzałą gałąź v1. Katalog /app/data musi być zapisany na lokalnym dysku lub zwykłym wolumenie Dockera. NFS i systemy pamięci masowej bez prawidłowego blokowania plików mogą uszkodzić bazę danych.
Port 3001 jest dostępny tylko na 127.0.0.1. Reverse proxy z HTTPS opublikuje panel na zewnątrz.
4. Włącz HTTPS za pomocą Caddy
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
monitor.example.com {
reverse_proxy 127.0.0.1:3001
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyJeśli DNS wskazuje na VPS, Caddy automatycznie pobierze certyfikat TLS i będzie pośredniczyć w połączeniach WebSocket. Hostuj panel w katalogu głównym domeny lub subdomeny: adres taki jak example.com/kuma nie jest obsługiwany.
5. Utwórz konto administratora
Otwórz https://monitor.example.com, utwórz konto z długim, unikalnym hasłem i włącz uwierzytelnianie dwuskładnikowe.
Jak dodać pierwszy monitor
Kliknij Add New Monitor i wybierz HTTP(s):
- Wpisz nazwę i pełny URL.
- Ustaw interwał, na przykład 60 sekund.
- Dodaj dwie próby ponowienia na wypadek chwilowych problemów z siecią.
- Wybierz kanał powiadomień.
- Zapisz monitor i potwierdź, że zaczynają pojawiać się pomyślne kontrole.
Dla głównej strony przydatne są kontrole HTTP i Keyword. W przypadku API użyj endpointu health oraz JSON Query. Nie wystawiaj baz danych ani portów administracyjnych do internetu wyłącznie na potrzeby monitoringu; użyj zaufanej sieci lub VPN.
Przykład monitora push dla kopii zapasowej
Po utworzeniu monitora Push dodaj jego unikalny URL na końcu skryptu:
backup-command && \
curl -fsS "https://monitor.example.com/api/push/SECRET_TOKEN?status=up&msg=backup-ok"Żądanie jest wykonywane tylko po pomyślnym zakończeniu kopii. Traktuj token push jak hasło: każdy, kto zna URL, może wysłać fałszywy sygnał.
Jak połączyć Telegram
Utwórz bota przez @BotFather, wyślij mu wiadomość, a następnie otwórz Settings → Notifications → Telegram. Wpisz Bot Token i Chat ID, kliknij Test i przypisz kanał do monitorów. W przypadku usług krytycznych dodaj drugi kanał, na przykład e-mail.
Jak utworzyć stronę statusu
W sekcji Status Pages możesz grupować monitory, wyświetlać bieżący status i historię dostępności, przypisać domenę oraz informować o planowanych pracach za pomocą Maintenance. Nie publikuj wewnętrznych adresów IP ani technicznych URL-i: klientom wystarczą komponenty takie jak „Website”, „API”, „Account dashboard” i „Payments”.
Aktualizowanie i tworzenie kopii Uptime Kuma
Przed dużą aktualizacją zatrzymaj kontener i zapisz katalog danych:
cd /opt/uptime-kuma
docker compose down
tar -czf /root/uptime-kuma-$(date +%F).tar.gz \
data compose.yaml
docker compose up -dPrzenieś archiwum na inne urządzenie lub do zewnętrznej pamięci. Kopia na tym samym VPS nie ochroni przed usunięciem serwera ani awarią dysku.
Przy regularnej aktualizacji uruchom:
cd /opt/uptime-kuma
docker compose pull
docker compose up -d --force-recreatePo uruchomieniu sprawdź docker compose ps, otwórz panel i wyślij testowe powiadomienie.
Jaki VPS wybrać dla Uptime Kuma
Mała instalacja potrzebuje tylko linuksowego VPS z 1 vCPU i 1 GB RAM. Niezależność jest ważniejsza od surowej wydajności: monitor musi działać, gdy główny projekt jest niedostępny.
Możesz hostować Uptime Kuma na VPS od tropic.host, gdy monitorowane usługi działają na innej platformie lub niezależnym węźle. Ubuntu, Docker i stały adres IP pozwalają szybko uruchomić panel, a zasoby można zwiększać wraz ze wzrostem liczby kontroli.
Jeśli produkcja działa już w tej samej infrastrukturze, wybierz inny węzeł albo dodaj zewnętrzny monitor kopii zapasowych. Rozdzielenie domen awarii jest bardziej użyteczne niż dodanie kolejnego rdzenia CPU.
Typowe błędy
| Błąd | Dlaczego jest problemem | Lepsze podejście |
|---|---|---|
| Monitoring działa obok projektu | Wspólna awaria wyłącza usługę i powiadomienia | Użyj osobnego VPS lub lokalizacji |
Port 3001 jest publicznie dostępny | Panel działa bez reverse proxy lub HTTPS | Przypisz port do 127.0.0.1 |
Sprawdzany jest tylko kod statusu 200 | Błąd aplikacji może wyglądać jak sukces | Dodaj Keyword lub JSON Query |
Używany jest tag latest | Wskazuje na przestarzałą gałąź v1 | Użyj louislam/uptime-kuma:2 |
| Kopia jest przechowywana na tym samym VPS | Zniknie razem z serwerem | Skopiuj katalog data w inne miejsce |
Podsumowanie
Uptime Kuma zamienia mały VPS we własne centrum monitoringu stron, API, DNS, portów, certyfikatów i zadań w tle. Keyword pomaga wykryć uszkodzoną stronę, JSON Query wychwytuje nieprawidłową odpowiedź API, a Push ujawnia zatrzymaną kopię zapasową lub zadanie cron.
Aby konfiguracja była niezawodna, hostuj monitoring osobno od produkcji, zamknij port 3001, włącz HTTPS i 2FA oraz skonfiguruj dwa kanały powiadomień. Następnie przygotuj zewnętrzną kopię katalogu danych i niezależne sprawdzanie samego Uptime Kuma.
FAQ
Czy Uptime Kuma jest bezpłatne?
Tak. Projekt ma otwarty kod źródłowy i jest rozpowszechniany na licencji MIT. Płacisz tylko za infrastrukturę, domenę i zewnętrzne kopie zapasowe.
Ile pamięci RAM potrzebuje Uptime Kuma?
Dla małej instalacji rozsądnym początkiem jest 1 GB RAM. Przy setkach kontroli, długim przechowywaniu historii lub Browser Engine przydziel 2 GB albo więcej.
Czy Uptime Kuma można zainstalować bez Dockera?
Tak, za pomocą Node.js i PM2. Docker Compose jest jednak zwykle łatwiejszy do aktualizowania, przenoszenia i odtwarzania na VPS.
Czy z Uptime Kuma można korzystać bez domeny?
Technicznie tak — przez adres IP lub tunel SSH. Przy stałym dostępie z internetu bezpieczniejsza jest subdomena z HTTPS.
Czy Uptime Kuma pokazuje zużycie CPU, RAM i dysku?
Nie jako pełnoprawny system metryk serwera. Do monitorowania zasobów serwera uzupełnij je o Prometheus, Netdata, Zabbix lub inne wyspecjalizowane narzędzie.
