Dlaczego monitoring HTTP(s) to fundament monitoringu webowego
Monitoring HTTP(s) to najbardziej uniwersalny i najczęściej stosowany typ monitorowania w świecie IT. Ponad 90% usług internetowych komunikuje się przez protokół HTTP lub HTTPS — od stron wizytówkowych po złożone API mikrousługowe, panele administracyjne, sklepy e-commerce i endpointy health check. Jeśli Twoja usługa jest dostępna przez przeglądarkę lub odpowiada na zapytania REST — monitoring HTTP(s) jest tym, od czego powinieneś zacząć.
Prosty ping (ICMP) powie Ci tylko, czy serwer odpowiada na poziomie sieciowym. Sprawdzenie portu TCP potwierdzi, że usługa nasłuchuje. Ale dopiero zapytanie HTTP pozwala zweryfikować, że aplikacja faktycznie działa poprawnie — zwraca właściwy kod statusu, serwuje poprawną treść i odpowiada w akceptowalnym czasie. To różnica między informacją „serwer jest online" a informacją „strona działa i klienci mogą z niej korzystać".
Uptime Kuma oferuje jeden z najbardziej rozbudowanych monitorów HTTP(s) wśród narzędzi open-source — wszystkie metody HTTP, custom headers, request body, pięć metod autentykacji, walidację SSL/TLS, keyword monitoring, JSON Query z JSONata, konfigurowalny timeout i retry. W tym przewodniku pokażemy krok po kroku, jak wykorzystać pełen potencjał tego monitora.
Uptime Kuma oferuje trzy warianty monitora HTTP(s), które różnią się sposobem walidacji odpowiedzi: HTTP(s) — sprawdza kod statusu i czas odpowiedzi, HTTP(s) Keyword — dodatkowo szuka tekstu w odpowiedzi, HTTP(s) JSON Query — waliduje konkretne pola JSON za pomocą składni JSONata. Wszystkie trzy współdzielą konfigurację URL, metod HTTP, headerów, body, autentykacji i SSL. Różnica leży tylko w sposobie oceny odpowiedzi.
Podstawy monitora HTTP(s) w Uptime Kuma
Dodanie monitora HTTP(s) w Uptime Kuma to proces, który zajmuje dosłownie kilka minut. Po zalogowaniu do panelu kliknij przycisk „Add New Monitor" w lewym górnym rogu dashboardu i wybierz typ HTTP(s), HTTP(s) - Keyword lub HTTP(s) - JSON Query z rozwijanej listy.
Konfiguracja podstawowa
URL — adres monitorowanego zasobu
Wprowadź pełny adres URL, włącznie z protokołem (https:// lub http://). Może to być strona internetowa (https://example.com), endpoint API (https://api.example.com/v1/health), panel administracyjny (https://admin.example.com/login) lub dowolny zasób HTTP. URL może zawierać ścieżkę, parametry query string i port niestandardowy (np. https://example.com:8443/status).
Friendly Name — nazwa monitora
Nadaj monitorowi opisową nazwę, np. „Strona główna — example.com" lub „API Health Check — produkcja". Ta nazwa wyświetla się na dashboardzie, w powiadomieniach i na stronach statusu. Dobrą praktyką jest stosowanie spójnej konwencji nazewnictwa, np. [Środowisko] Usługa — Opis.
Heartbeat Interval — interwał sprawdzania
Określ, co ile sekund Uptime Kuma ma sprawdzać usługę. Domyślna wartość to 60 sekund. Minimalny interwał to 20 sekund — wystarczająco często, by wykryć awarię w mniej niż minutę. Dla krytycznych usług produkcyjnych zalecamy 20–60 sekund, dla mniej ważnych — 120–300 sekund. Pamiętaj, że niższy interwał oznacza więcej zapytań do monitorowanego serwera.
Retries i retry interval
Ustaw Max Retries (domyślnie 0, zalecane 1–3) i Retry Interval (interwał między próbami w sekundach). Po nieudanej próbie Uptime Kuma ponowi zapytanie zanim oznaczenie usługi jako DOWN. To kluczowe ustawienie eliminujące fałszywe alarmy spowodowane chwilowymi problemami sieciowymi lub krótkotrwałymi restartami serwera.
Te cztery parametry wystarczą do uruchomienia podstawowego monitoringu HTTP(s). Ale prawdziwa moc Uptime Kuma ujawnia się w opcjach zaawansowanych — metodach HTTP, headerach, autentykacji i walidacji odpowiedzi.
Metody HTTP — GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
Domyślnie Uptime Kuma wykonuje zapytanie GET, co jest odpowiednie dla większości scenariuszy — sprawdzania stron internetowych, endpointów health check i prostych API. Jednak w zaawansowanych przypadkach możesz potrzebować innej metody HTTP. Uptime Kuma obsługuje siedem metod:
| Metoda | Opis | Kiedy użyć w monitoringu |
|---|---|---|
| GET | Pobiera zasób. Domyślna metoda HTTP. Nie posiada body. | Strony www, endpointy /health, /status, publiczne API. |
| POST | Wysyła dane do serwera. Wymaga body (JSON, form data). | Monitoring API wymagających payloadu — np. GraphQL, API logowania, webhook test. |
| PUT | Zastępuje zasób w całości. Wymaga body. | Testowanie endpointów REST aktualizujących zasoby (np. upsert health check). |
| DELETE | Usuwa zasób. Body opcjonalne. | Rzadko stosowane w monitoringu. Przydatne do weryfikacji, że endpoint DELETE odpowiada poprawnie. |
| PATCH | Częściowa aktualizacja zasobu. Wymaga body. | Testowanie endpointów aktualizacji częściowej API REST. |
| HEAD | Jak GET, ale zwraca tylko nagłówki (bez body odpowiedzi). | Szybki test dostępności — mniejszy transfer. Sprawdzanie nagłówków cache, content-type, CORS. |
| OPTIONS | Zwraca dozwolone metody HTTP i nagłówki CORS. | Weryfikacja konfiguracji CORS, sprawdzanie jakie metody akceptuje endpoint. |
Praktyczne scenariusze doboru metody
HEAD zamiast GET: Jeśli interesuje Cię tylko kod statusu i czas odpowiedzi — użyj HEAD. Mniejszy transfer, szybsza odpowiedź, mniejsze obciążenie serwera.
POST do testowania API GraphQL: API GraphQL przyjmują zapytania wyłącznie przez POST z body JSON. Skonfiguruj monitor POST z headerem Content-Type: application/json.
OPTIONS do weryfikacji CORS: Zapytanie OPTIONS (preflight) weryfikuje, że nagłówki CORS są poprawnie skonfigurowane — kluczowe dla aplikacji SPA.
Przy wyborze metody HTTP do monitoringu kieruj się zasadą: używaj metody najlżejszej, która daje wystarczające informacje. Dla prostego sprawdzenia dostępności — HEAD. Dla weryfikacji treści — GET. Dla testowania API z payloadem — POST/PUT/PATCH. Nie używaj GET tam, gdzie HEAD wystarczy — zaoszczędzisz transfer i zyskasz szybszą odpowiedź.
Custom headers — User-Agent, Accept, Authorization i inne
Nagłówki HTTP (headers) to metadane dołączane do zapytania, które informują serwer o oczekiwaniach klienta, formacie danych, tożsamości i uprawnieniach. W Uptime Kuma możesz dodawać dowolne nagłówki HTTP do monitora — w formularzu konfiguracji znajdziesz pole „Custom Headers" przyjmujące obiekt JSON.
Format nagłówków
Nagłówki definiujesz jako obiekt JSON — klucze to nazwy nagłówków, wartości to ich treść:
{
"User-Agent": "UptimeKuma/2.1 MonitorBot",
"Accept": "application/json",
"Accept-Language": "pl-PL",
"X-Custom-Header": "monitoring-check"
}Najczęściej używane nagłówki
| Nagłówek | Opis | Przykład wartości |
|---|---|---|
| User-Agent | Identyfikuje klienta HTTP. Domyślnie Uptime Kuma wysyła własny User-Agent. | Mozilla/5.0 (compatible; UptimeKuma/2.1) |
| Accept | Określa akceptowane formaty odpowiedzi. | application/json, text/html, */* |
| Content-Type | Format body zapytania (dla POST/PUT/PATCH). | application/json, application/x-www-form-urlencoded |
| Authorization | Dane uwierzytelniające (token, klucz API). | Bearer eyJhbGciOiJI... |
| X-API-Key | Klucz API (alternatywa dla Authorization). | sk-abc123def456 |
| Cache-Control | Kontrola cache — ważne przy CDN. | no-cache, no-store |
| If-None-Match | Walidacja warunkowa — wymuszenie pełnej odpowiedzi. | * (wymuś odpowiedź 200 zamiast 304) |
| X-Forwarded-For | Symulacja IP źródłowego (testowanie geolokalizacji). | 203.0.113.50 |
Scenariusze użycia custom headers
Zmiana User-Agent: Niektóre WAF-y blokują zapytania z nietypowymi User-Agentami. Jeśli monitor zwraca 403 Forbidden, ustaw User-Agent na standardowy:
{
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}Nagłówek autentykacji API: Wiele API wymaga klucza w nagłówku — przez Authorization lub dedykowany header:
{
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"Accept": "application/json"
}Request body dla POST, PUT i PATCH
Gdy wybierzesz metodę POST, PUT lub PATCH, Uptime Kuma udostępnia pole „Body", w którym możesz wpisać treść zapytania. Najczęściej jest to obiekt JSON, ale możesz wysłać również dane form-urlencoded, XML lub dowolny tekst — pod warunkiem ustawienia odpowiedniego nagłówka Content-Type.
Przykład: body JSON dla API health check
{
"checks": ["database", "cache", "queue"],
"verbose": true
}W nagłówkach ustaw Content-Type: application/json i Accept: application/json.
Przykład: zapytanie GraphQL
{
"query": "{ systemHealth { status database cache } }",
"variables": {}
}W połączeniu z monitorem JSON Query możesz walidować, czy pole status w odpowiedzi ma wartość "healthy".
Przykład: form data
Dla endpointów wymagających application/x-www-form-urlencoded:
grant_type=client_credentials&client_id=my-app&client_secret=secret123Pole body jest dostępne tylko dla metod POST, PUT i PATCH. Metody GET, HEAD, DELETE i OPTIONS nie powinny zawierać body zgodnie ze specyfikacją HTTP (choć technicznie GET z body jest dozwolone, wiele serwerów je ignoruje). Jeśli Twoje API wymaga payloadu — użyj POST.
Autentykacja — Basic, Bearer, OAuth2, NTLM, mTLS
Monitorowanie usług zabezpieczonych autentykacją to jedno z najczęstszych wyzwań w monitoringu HTTP. Uptime Kuma obsługuje pięć metod autentykacji natywnie — bez konieczności stosowania obejść czy zewnętrznych proxy. To więcej niż oferuje większość konkurencyjnych narzędzi, w tym wiele płatnych rozwiązań SaaS.
Basic Authentication
HTTP Basic Auth to najprostszy mechanizm autentykacji — login i hasło zakodowane w Base64 w nagłówku Authorization. Konfiguracja w Uptime Kuma:
Włącz autentykację
W konfiguracji monitora rozwiń sekcję Authentication i wybierz metodę Basic.
Podaj dane logowania
Wpisz Username i Password. Uptime Kuma automatycznie zakoduje je w Base64 i doda nagłówek Authorization: Basic dXNlcjpwYXNz.
Zastosowania: panele administracyjne zabezpieczone htpasswd (Apache/Nginx), prostsze API wewnętrzne, serwery monitoringu (Prometheus, Grafana), routery i urządzenia sieciowe z interfejsem webowym.
Basic Authentication przesyła dane uwierzytelniające w kodowaniu Base64, które łatwo zdekodować. Zawsze używaj Basic Auth wyłącznie przez HTTPS — szyfrowanie TLS chroni dane logowania w tranzycie. Uptime Kuma przechowuje hasła w lokalnej bazie danych (SQLite/MariaDB) — upewnij się, że dostęp do serwera Uptime Kuma jest odpowiednio zabezpieczony.
Bearer Token / API Key
Bearer Token to popularna metoda autentykacji API, w której klient przesyła token (JWT, API key, personal access token) w nagłówku Authorization. W Uptime Kuma możesz go przekazać na dwa sposoby:
Sposób 1 — przez custom headers:
{
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U"
}Sposób 2 — przez sekcję Authentication: Wybierz metodę autentykacji w ustawieniach monitora i wklej token. Uptime Kuma automatycznie doda go jako nagłówek Authorization: Bearer .
Zastosowania: API REST z tokenami JWT, GitHub API (personal access tokens), Slack API, Stripe API, OpenAI API, Azure DevOps, Cloudflare API — praktycznie każde nowoczesne API komercyjne.
OAuth2 Token
OAuth2 to standard autoryzacji używany przez Google, Microsoft, AWS, Salesforce. W scenariuszu Client Credentials (machine-to-machine) konfiguracja wymaga:
- Authentication Method — wybierz OAuth2: CC (Client Credentials)
- Client ID — identyfikator aplikacji (np.
my-monitoring-app) - Client Secret — sekret aplikacji
- OAuth Token URL — endpoint serwera autoryzacji (np.
https://auth.example.com/oauth2/token) - OAuth Scopes — opcjonalne zakresy uprawnień (np.
read:health)
Uptime Kuma automatycznie pobiera access token, cache'uje go i odnawia po wygaśnięciu. Działa z Keycloak, Auth0, Azure AD (Entra ID), Okta, AWS Cognito i innymi providerami OAuth2.
NTLM Authentication
NTLM (NT LAN Manager) to protokół autentykacji Microsoftu, stosowany w IIS, SharePoint, Exchange i aplikacjach .NET. Uptime Kuma obsługuje NTLM natywnie — wybierz metodę NTLM, podaj Username (DOMAIN\user), Password i opcjonalnie Domain/Workstation.
mTLS — Mutual TLS (certyfikaty klienckie)
Mutual TLS (mTLS) to najbezpieczniejsza metoda autentykacji HTTP — obie strony prezentują certyfikaty X.509 i wzajemnie się weryfikują. Konfiguracja w Uptime Kuma:
- Cert (PEM) — certyfikat klienta w formacie PEM (lub ścieżka do pliku
.pem/.crt) - Key (PEM) — klucz prywatny klienta w formacie PEM (lub ścieżka do pliku
.key) - CA Bundle (PEM) — opcjonalny pakiet CA (jeśli serwer używa prywatnego CA, np. wewnętrznego PKI)
Zastosowania: architektura zero-trust, service mesh (Istio, Linkerd), API bankowe (PSD2), Kubernetes z wzajemną autentykacją podów, systemy IoT.
| Metoda autentykacji | Poziom bezpieczeństwa | Złożoność konfiguracji | Typowe zastosowanie |
|---|---|---|---|
| Basic Auth | Niski (wymaga HTTPS) | Minimalna | Panele admin, htpasswd, proste API |
| Bearer Token | Średni | Niska | API REST, JWT, klucze API |
| OAuth2 CC | Wysoki | Średnia | Enterprise API, cloud platforms |
| NTLM | Średni | Niska | Środowiska Windows/AD |
| mTLS | Najwyższy | Wysoka | Zero-trust, banking API, service mesh |
Nie chcesz instalować i administrować Uptime Kuma na własnym serwerze? Na SmartXHosting.pl otrzymasz gotową instancję z pełną obsługą monitorów HTTP(s) — włącznie z autentykacją OAuth2, mTLS i custom headerami. Automatyczne aktualizacje, codzienny backup, wsparcie techniczne.
Zamów hosting Uptime KumaWeryfikacja SSL/TLS i certyfikaty
Każdy monitor HTTPS w Uptime Kuma automatycznie weryfikuje certyfikat SSL/TLS serwera. Jeśli certyfikat jest nieważny, wygasł, jest samopodpisany lub łańcuch certyfikatów jest niepełny — monitor zgłosi błąd. To domyślne i bezpieczne zachowanie, ale Uptime Kuma oferuje kilka opcji dostosowania.
Opcja „Ignore TLS/SSL error"
W konfiguracji monitora znajdziesz przełącznik „Ignore TLS/SSL error" — po włączeniu Uptime Kuma zaakceptuje dowolny certyfikat, nawet wygasły, samopodpisany lub z nieprawidłowym CN/SAN. Ta opcja jest przydatna w następujących scenariuszach:
- Środowiska deweloperskie i testowe z certyfikatami samopodpisanymi (self-signed)
- Sieci wewnętrzne z prywatnym CA (wewnętrzne PKI), którego certyfikatu root nie ma w systemowym trust store
- Tymczasowy monitoring usługi z wygasłym certyfikatem (by śledzić dostępność niezależnie od problemu z certyfikatem)
- Starsze systemy z przestarzałymi certyfikatami, które nie mogą być szybko zaktualizowane
Dla monitorów produkcyjnych nie włączaj opcji „Ignore TLS/SSL error". Błąd certyfikatu SSL może oznaczać atak man-in-the-middle, wygaśnięcie certyfikatu (które przeglądarka pokaże użytkownikom jako ostrzeżenie bezpieczeństwa) lub poważny problem z konfiguracją serwera. Chcesz o tym wiedzieć natychmiast — a nie ukrywać błąd.
Monitoring wygaśnięcia certyfikatu SSL
Uptime Kuma automatycznie odczytuje datę wygaśnięcia certyfikatu SSL dla każdego monitora HTTPS i wyświetla ją w panelu. Możesz skonfigurować alert przed wygaśnięciem certyfikatu — domyślne progi to 7, 14 lub 21 dni przed datą wygaśnięcia. Dzięki temu otrzymasz powiadomienie z wyprzedzeniem, nawet jeśli automatyczne odnawianie certyfikatu (Let's Encrypt, Certbot) zawiedzie.
Informacja o certyfikacie SSL (issuer, daty ważności, days remaining, fingerprint SHA-256) jest widoczna w panelu monitora i opcjonalnie na stronach statusu.
Walidacja kodów statusu HTTP
Jednym z najważniejszych aspektów monitoringu HTTP jest walidacja kodu statusu odpowiedzi. Uptime Kuma umożliwia precyzyjne określenie, jakie kody HTTP uznaje za poprawne (UP) — domyślnie akceptowane są kody z zakresu 200–299.
Konfiguracja akceptowanych kodów
W polu „Accepted Status Codes" możesz wybrać:
- Pojedyncze kody: np.
200,201,204,301,401 - Zakresy: np.
200-299,200-399 - Mieszane: np.
200-204,301,302
Kiedy zmienić domyślne kody
| Scenariusz | Oczekiwany kod | Konfiguracja |
|---|---|---|
| Strona dostępna poprawnie | 200 OK | 200-299 (domyślne) |
| Przekierowanie na HTTPS | 301/302 | 200-299, 301, 302 |
| API zwraca No Content | 204 No Content | 200-204 |
| Strona logowania (wymaga auth) | 401 Unauthorized | 401 — monitorujesz, że strona logowania działa |
| Endpoint rate-limited | 429 Too Many Requests | 200-299, 429 — nie alarmujesz o rate limiting |
| Monitorowanie dowolnej odpowiedzi | Dowolny | 100-599 — tylko sprawdza, czy serwer odpowiada |
Domyślnie Uptime Kuma podąża za przekierowaniami (follow redirects), więc w większości przypadków otrzymasz finalny kod 200. Jeśli wyłączysz follow redirects — dodaj kody 3xx do listy akceptowanych.
Ciekawą techniką jest ustawienie kodu 401 lub 403 jako akceptowanego. Dlaczego? Jeśli monitorujesz stronę logowania bez podawania danych uwierzytelniających, oczekujesz kodu 401 (Unauthorized). Otrzymanie 401 oznacza, że serwer działa poprawnie i strona logowania jest dostępna. Gdyby serwer był niedostępny — nie otrzymasz żadnego kodu lub dostaniesz 5xx.
Keyword monitoring — szukaj tekstu w odpowiedzi
Monitor HTTP(s) - Keyword rozszerza standardowy monitoring HTTP o sprawdzenie, czy odpowiedź serwera zawiera (lub nie zawiera) określony ciąg znaków. To potężna funkcja, która wykracza poza proste sprawdzenie kodu statusu — pozwala zweryfikować, że strona serwuje poprawną treść.
Dlaczego sam kod 200 nie wystarczy?
Istnieje wiele sytuacji, w których serwer zwraca kod 200 OK, ale treść strony jest niepoprawna:
- Defacement — strona została zhakowana i wyświetla inną treść (ale serwer wciąż zwraca 200)
- Błąd aplikacji — framework zwraca stronę z komunikatem „Internal Error" z kodem 200 (częste w PHP, WordPress)
- Pustą stronę — aplikacja nie renderuje treści, ale serwer WWW odpowiada 200
- Strona CDN/cache — CDN serwuje starą wersję strony po awarii origin
- Maintenance mode — CMS wyświetla stronę „w przerwie technicznej" z kodem 200
Konfiguracja keyword monitora
Po wybraniu typu HTTP(s) - Keyword pojawią się dodatkowe pola:
- Keyword — ciąg znaków do wyszukania w treści odpowiedzi
- Keyword should — wybór: exist (tekst musi istnieć) lub not exist (tekst nie może istnieć)
- Case Sensitive — czy wyszukiwanie ma rozróżniać wielkość liter
Przykłady praktyczne
Sprawdzenie, czy strona wyświetla właściwą treść:
Keyword: "Witamy na naszej stronie"
Keyword should: existWykrycie defacement lub podmienionej treści:
Keyword: "Hacked by"
Keyword should: not existWeryfikacja, że sklep wyświetla produkty:
Keyword: "Dodaj do koszyka"
Keyword should: existSprawdzenie, że strona nie jest w maintenance mode:
Keyword: "Przerwa techniczna"
Keyword should: not existMonitoring dostępności konkretnego produktu:
Keyword: "Dostępny"
Keyword should: existKeyword monitoring działa na surowej odpowiedzi HTTP (body) — nie renderuje JavaScript ani nie dekompresuje treści automatycznie. Jeśli monitorujesz stronę SPA (React, Vue, Angular), która ładuje treść dynamicznie przez JavaScript, keyword w raw HTML może nie być obecny. W takim przypadku rozważ: (1) monitorowanie endpointu API zamiast strony SPA, (2) użycie monitora Real Browser (Chromium), który renderuje JavaScript, lub (3) dodanie statycznego HTML-a w server-side rendering (SSR/SSG).
JSON Query monitoring — walidacja pól JSON
Monitor HTTP(s) - JSON Query to najbardziej zaawansowany wariant monitora HTTP w Uptime Kuma. Wyciąga konkretną wartość z odpowiedzi JSON za pomocą składni JSONata i porównuje ją z oczekiwaną wartością. Jeśli się zgadzają — monitor UP; jeśli nie — DOWN.
Konfiguracja
- JSON Query — wyrażenie JSONata do wyciągnięcia wartości (np.
status,data.health,services[0].status) - Expected Value — oczekiwana wartość zwrócona przez query (np.
"ok",true,200)
Przykłady JSONata
Prosty klucz na najwyższym poziomie:
Odpowiedź API:
{
"status": "healthy",
"version": "2.1.0",
"uptime": 99.98
}Konfiguracja:
JSON Query: status
Expected Value: healthyZagnieżdżony klucz:
Odpowiedź API:
{
"data": {
"database": { "status": "ok", "latency_ms": 12 },
"cache": { "status": "ok", "latency_ms": 2 },
"queue": { "status": "degraded", "pending": 1503 }
}
}Konfiguracja:
JSON Query: data.database.status
Expected Value: okElement tablicy:
Odpowiedź API:
{
"checks": [
{ "name": "web", "alive": true },
{ "name": "db", "alive": true }
]
}Konfiguracja:
JSON Query: checks[0].alive
Expected Value: trueWyrażenie warunkowe JSONata:
JSONata obsługuje wyrażenia logiczne i matematyczne. Na przykład możesz sprawdzić, czy wszystkie serwisy w tablicy mają status „ok":
JSON Query: $count(checks[alive=false]) = 0
Expected Value: trueLub czy czas odpowiedzi bazy danych nie przekracza progu:
JSON Query: data.database.latency_ms < 100
Expected Value: trueJSONata to zaawansowany język zapytań i transformacji JSON, znacznie potężniejszy od prostych ścieżek dot-notation. Obsługuje filtrowanie (array[condition]), agregację ($sum, $count, $average), wyrażenia warunkowe (condition ? 'yes' : 'no'), stringi ($contains, $match) i wiele więcej. Pełną dokumentację znajdziesz na docs.jsonata.org. Możesz testować wyrażenia interaktywnie na try.jsonata.org.
Czas odpowiedzi — progi i alerty
Uptime Kuma mierzy czas odpowiedzi (response time) w milisekundach i wyświetla go na wykresie w czasie rzeczywistym. Próg „Response Time Threshold" pozwala oznaczyć degradację — po przekroczeniu wartości na wykresie pojawia się żółty pasek zamiast zielonego (nie generuje alertu DOWN).
Rekomendowane progi
| Typ usługi | Próg ostrzegawczy | Próg krytyczny (rozważ alert) |
|---|---|---|
| Strona wizytówkowa | 1000 ms | 3000 ms |
| Sklep e-commerce | 500 ms | 2000 ms |
| API REST (health check) | 200 ms | 1000 ms |
| API wewnętrzne (LAN) | 50 ms | 200 ms |
| CDN / zasoby statyczne | 100 ms | 500 ms |
Czas odpowiedzi mierzony przez Uptime Kuma obejmuje pełny cykl zapytania HTTP (TCP + TLS + request + response), dlatego wartości mogą być wyższe niż samo przetwarzanie po stronie serwera.
Timeout i retry — eliminacja fałszywych alarmów
Prawidłowa konfiguracja timeout i retry to klucz do eliminacji fałszywych alarmów (false positives).
Request Timeout
Request Timeout (domyślnie 48 sekund) to maksymalny czas oczekiwania na odpowiedź. Zalecenia: strony i proste API — 10–15 s, ciężkie API z przetwarzaniem — 30–60 s, usługi w sieci LAN — 5–10 s.
Max Retries i Retry Interval
Max Retries (domyślnie 0) to liczba dodatkowych prób po nieudanym zapytaniu. Retry Interval — czas między próbami. Zalecenia: usługi krytyczne — 2–3 retries, 20–60 s, standardowe — 1–2 retries, 60 s, szybka detekcja — 0–1 retry, 20 s (wyższe ryzyko false positive).
Mechanizm „Resend Notification"
Uptime Kuma oferuje Resend Notification — ponowne wysłanie powiadomienia DOWN w ustalonych interwałach (np. co 5 minut), dopóki problem nie zostanie rozwiązany. Zabezpiecza przed przeoczeniem pierwszego alertu.
Optymalna konfiguracja to timeout 15 sekund, 2 retries z interwałem 30 sekund. Daje to łącznie ~75 sekund od pierwszego nieudanego sprawdzenia do oznaczenia usługi jako DOWN: 15s timeout → 30s przerwa → 15s timeout retry #1 → 30s przerwa → 15s timeout retry #2. Jeśli usługa nie odpowie w ciągu tych ~75 sekund — to z pewnością nie jest chwilowy problem sieciowy.
Monitoring za CDN — omijanie cache
Monitorowanie stron za CDN (Cloudflare, Fastly, CloudFront) wymaga uwagi — CDN cache'uje odpowiedzi, więc Uptime Kuma może otrzymywać odpowiedź z cache nawet gdy origin jest niedostępny.
Metody omijania cache CDN
1. Nagłówek Cache-Control:
{
"Cache-Control": "no-cache, no-store, must-revalidate",
"Pragma": "no-cache"
}Te nagłówki instruują CDN, by nie serwował odpowiedzi z cache i przekazał zapytanie do serwera origin. Skuteczność zależy od konfiguracji CDN — niektóre konfiguracje ignorują te nagłówki klienta.
2. Unikalne parametry query string:
Dodaj losowy lub zmieniający się parametr do URL, np.:
https://example.com/health?_monitor=uptime-kuma&nocache=1CDN traktuje każdy unikalny URL jako oddzielny zasób i nie serwuje cache'owanej odpowiedzi. To najprostsze i najskuteczniejsze rozwiązanie.
3. Dedykowany endpoint health check:
Najlepsza praktyka — stwórz dedykowany endpoint (np. /health lub /api/status), który:
- Jest wyłączony z cache CDN (reguła „Cache Bypass" w Cloudflare/Fastly)
- Wykonuje rzeczywiste sprawdzenia (baza danych, cache, kolejka)
- Zwraca JSON z informacjami o stanie komponentów
- Ma krótki czas odpowiedzi (nie generuje ciężkiego HTML-a)
4. Monitorowanie serwera origin bezpośrednio:
Jeśli znasz adres IP serwera origin, możesz monitorować go bezpośrednio (z pominięciem CDN), dodając nagłówek Host:
URL: https://203.0.113.10/health
Custom Headers:
{
"Host": "example.com"
}Serwer origin odpowie tak, jakby zapytanie przyszło na example.com, ale CDN nie jest w ścieżce. Uwaga: wymaga to, by serwer origin akceptował połączenia bezpośrednie.
Przy korzystaniu z Cloudflare zalecamy skonfigurowanie dwóch monitorów: jednego sprawdzającego stronę przez CDN (publiczny URL) i drugiego sprawdzającego serwer origin bezpośrednio. Dzięki temu wykryjesz zarówno problemy z CDN (np. błąd Cloudflare 520–530), jak i awarie serwera origin, które CDN może maskować przez serwowanie cache'owanej wersji strony.
Monitoring endpointów API z custom payloadami
Dzięki obsłudze custom headers, body, autentykacji i JSON Query możesz monitorować praktycznie dowolne API. Oto typowe scenariusze:
Scenariusz 1: REST API health check z Bearer Token
| Parametr | Wartość |
|---|---|
| Typ monitora | HTTP(s) - JSON Query |
| URL | https://api.example.com/v1/health |
| Method | GET |
| Custom Headers | {"Authorization": "Bearer sk-abc123", "Accept": "application/json"} |
| JSON Query | status |
| Expected Value | ok |
| Accepted Status Codes | 200 |
Scenariusz 2: GraphQL API z mutacją testową
| Parametr | Wartość |
|---|---|
| Typ monitora | HTTP(s) - JSON Query |
| URL | https://api.example.com/graphql |
| Method | POST |
| Custom Headers | {"Content-Type": "application/json", "Authorization": "Bearer token"} |
| Body | {"query": "{ __typename }"} |
| JSON Query | data.__typename |
| Expected Value | Query |
Zapytanie { __typename } to minimalne zapytanie GraphQL, które zawsze zwraca "Query" — idealne do sprawdzenia, czy serwer GraphQL odpowiada poprawnie, bez obciążania go ciężkimi operacjami.
Scenariusz 3: Monitoring z OAuth2 Client Credentials
| Parametr | Wartość |
|---|---|
| Typ monitora | HTTP(s) - JSON Query |
| URL | https://api.enterprise.com/v2/status |
| Method | GET |
| Authentication | OAuth2: CC |
| Client ID | monitoring-service |
| Client Secret | xxxxxxxxxxxxxxxx |
| Token URL | https://auth.enterprise.com/oauth2/token |
| Scopes | monitoring:read |
| JSON Query | services.$count([status != 'healthy']) = 0 |
| Expected Value | true |
Potrzebujesz monitoringu HTTP(s) z pełnym wsparciem autentykacji, JSON Query i custom headers — ale nie chcesz zarządzać serwerem? Na SmartXHosting.pl uruchomimy dla Ciebie Uptime Kuma na dedykowanej instancji z codziennym backupem i automatycznymi aktualizacjami.
Zamów hosting Uptime KumaWskazówki dotyczące wydajności
Przy dziesiątkach lub setkach monitorów HTTP optymalizacja staje się kluczowa:
- Używaj HEAD zamiast GET, gdy to możliwe — jeśli nie potrzebujesz keyword ani JSON Query, metoda HEAD zwraca tylko nagłówki, bez body. Mniejszy transfer, krótszy czas odpowiedzi, mniejsze obciążenie.
- Monitoruj dedykowane endpointy
/health— lekki JSON ({"status":"ok"}) jest znacznie szybszy niż pełna strona główna z obrazami, CSS i JavaScript. - Dostosuj interwał do ważności usługi — krytyczne usługi produkcyjne (20–60 s), standardowe (120–300 s), mniej ważne (300–600 s). Zmniejszysz obciążenie serwera.
- Unikaj monitorowania zasobów statycznych przez CDN — monitorowanie obrazu na CDN mierzy dostępność CDN, nie Twojego serwera. Monitoruj endpoint backendu.
- Grupuj monitory logicznie — zamiast 10 monitorów dla jednej aplikacji, utwórz 2–3 kluczowe (health check, strona główna, endpoint biznesowy).
- Ustaw odpowiedni timeout — domyślne 48 sekund to zbyt dużo. Ustaw 10–15 sekund dla stron i API.
- Dla 200+ monitorów rozważ MariaDB — SQLite przy dużej liczbie współbieżnych zapisów może stać się wąskim gardłem.
Podsumowanie
Monitor HTTP(s) w Uptime Kuma to jedno z najpotężniejszych narzędzi monitoringu webowego w segmencie open-source — 7 metod HTTP, custom headers i body, 5 metod autentykacji (Basic, Bearer, OAuth2, NTLM, mTLS), weryfikacja SSL/TLS, keyword monitoring, JSON Query z JSONata, konfigurowalny timeout i retry. Wszystko to w przejrzystym interfejsie, bez pisania kodu.
Niezależnie od tego, czy monitorujesz prostą stronę wizytówkową, sklep e-commerce za Cloudflare, API REST z tokenem JWT, czy enterprise API zabezpieczone OAuth2 i mTLS — Uptime Kuma ma narzędzia do precyzyjnego i niezawodnego monitoringu.
Zamów hosting Uptime Kuma na SmartXHosting.pl — gotowa instancja, własna subdomena .uptimekuma.eu, automatyczne aktualizacje i codzienny backup. Pełna obsługa monitorów HTTP(s) z autentykacją, JSON Query i custom headers. Zero konfiguracji serwera.
Zamów hosting Uptime KumaNajczęściej zadawane pytania
Cache-Control: no-cache, (2) dedykowany endpoint /health wyłączony z cache w Cache Rules, (3) monitoring origin bezpośrednio przez IP z nagłówkiem Host, (4) dwa monitory — CDN + origin.Authorization: Bearer do każdego zapytania monitoringowego. Działa z Keycloak, Auth0, Azure AD (Entra ID), Okta, AWS Cognito i innymi providerami OAuth2.