Uptime Kuma na VPS: konfiguracja monitorowania stron i serwerów

7 min czytania
Tropic
Uptime Kuma na VPS: konfiguracja monitorowania stron i serwerów

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

  1. Przydziel mały VPS osobno od monitorowanych projektów.
  2. Skieruj do niego subdomenę, na przykład monitor.example.com.
  3. Zainstaluj Dockera i uruchom Uptime Kuma 2.
  4. Zamknij wewnętrzny port 3001 i włącz HTTPS.
  5. Utwórz monitory HTTP, DNS, TCP lub push.
  6. Skonfiguruj Telegram i w razie potrzeby stronę statusu.
  7. 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 enable

Nie 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 version

3. 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 ps

Uż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 caddy

Jeś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):

  1. Wpisz nazwę i pełny URL.
  2. Ustaw interwał, na przykład 60 sekund.
  3. Dodaj dwie próby ponowienia na wypadek chwilowych problemów z siecią.
  4. Wybierz kanał powiadomień.
  5. 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 -d

Przenieś 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-recreate

Po 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łądDlaczego jest problememLepsze podejście
Monitoring działa obok projektuWspólna awaria wyłącza usługę i powiadomieniaUżyj osobnego VPS lub lokalizacji
Port 3001 jest publicznie dostępnyPanel działa bez reverse proxy lub HTTPSPrzypisz port do 127.0.0.1
Sprawdzany jest tylko kod statusu 200Błąd aplikacji może wyglądać jak sukcesDodaj Keyword lub JSON Query
Używany jest tag latestWskazuje na przestarzałą gałąź v1Użyj louislam/uptime-kuma:2
Kopia jest przechowywana na tym samym VPSZniknie razem z serweremSkopiuj 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.