
Uptime Kuma: monitorizare de uptime, fara nici o durere de cap
Nu ai nevoie de un stack de monitorizare enterprise ca sa afli ca site-ul tau a picat inainte s-o afle un client. Ai nevoie de ceva care sa verifice periodic un URL, sa-ti trimita un mesaj cand raspunsul nu mai e cel asteptat, si sa-ti arate o pagina simpla cu istoricul de uptime. Uptime Kuma face exact asta, cu o interfata care arata mai bine decat orice tool platit din categoria lui.
Proiectul e pe github.com/louislam/uptime-kuma , sub licenta MIT, creat si intretinut de Louis Lam. Noi rulam Gatus pentru monitorizarea proprie de status, pentru ca preferam config-as-code, dar Uptime Kuma e o alternativa foarte buna daca vrei o experienta condusa in intregime din interfata web, fara sa scrii un rand de YAML.
Ce este, mai exact, Uptime Kuma
Uptime Kuma e practic varianta self-hosted a serviciilor de tip UptimeRobot sau Pingdom: adaugi un monitor, alegi ce sa verifice si cat de des, si aplicatia iti arata timpul de raspuns, procentul de uptime si iti trimite notificari cand starea se schimba.
Tehnic, e o aplicatie Node.js, ruleaza intr-un singur container, si stocheaza tot in SQLite - nu ai nevoie de o baza de date separata. Frontend-ul e construit in Vue si comunica live cu backend-ul prin socket.io, deci dashboard-ul se actualizeaza in timp real, fara refresh de pagina, ceea ce da senzatia de aplicatie moderna, nu de tool vechi de sysadmin.
Tipurile de monitor acoperite din cutie sunt surprinzator de multe: HTTP(S) cu verificare de status code sau cuvant-cheie in raspuns, TCP port, ping, inregistrari DNS, containere Docker (verifica starea direct prin socket), gRPC, si monitoare de tip push, unde un job extern (un cron, un script de backup) trimite un “heartbeat” catre Uptime Kuma in loc sa fie interogat de el.
De ce conteaza asta
Pentru un dezvoltator solo sau o echipa mica, un stack de monitorizare pe care nu-l configurezi niciodata complet nu ajuta pe nimeni. Uptime Kuma iti da observabilitate utila in cinci minute: instalezi, adaugi cateva URL-uri, configurezi o notificare Telegram, gata. Nu ai nevoie de template-uri, de discovery, de trigger-e complexe - doar de raspunsul la intrebarea “e sus sau nu e sus”.
Ce primesti din cutie
- Dashboard reactiv, cu actualizari live prin websocket, fara sa dai refresh manual la pagina.
- Pagini de status, publice sau private, personalizabile, cu posibilitatea de a crea mai multe pagini pentru audiente diferite (una publica pentru clienti, una interna pentru echipa).
- Peste 90 de integrari de notificare: Telegram, Slack, Discord, email, webhook generic, PagerDuty si multe altele.
- Suport multi-utilizator si 2FA pentru accesul la instanta.
- Monitorizare a expirarii certificatelor TLS, cu alerta cu cateva zile inainte de expirare.
- Ferestre de mentenanta, ca sa nu primesti alerte false cand faci intentionat mentenanta programata.
- Import/export simplu de configuratie si un API de baza pentru integrari custom.
Instalare Uptime Kuma pe un VPS
Un singur container, cu un volum pentru date persistente:
docker volume create uptime_kuma_data
docker run -d --name uptime-kuma \
--restart unless-stopped \
-p 3001:3001 \
-v uptime_kuma_data:/app/data \
louislam/uptime-kuma:1
La primul acces la http://<ip-vps>:3001, ti se cere sa creezi contul de admin. In productie, pune-l dupa un reverse proxy cu TLS - Uptime Kuma nu are certificat propriu si nici n-are rost sa expui portul 3001 direct in internet.
Cu ufw:
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw deny 3001/tcp
ufw enable
Resursele necesare sunt minime: containerul ruleaza confortabil pe cel mai mic VPS pe care il oferim, chiar si cu cateva zeci de monitoare active la intervale de un minut.
Tipare de configurare care merita stiute
Monitoare de tip push pentru joburi interne
In loc sa astepti ca Uptime Kuma sa verifice periodic daca un cron job sau un script de backup a rulat, poti configura un monitor “push”: scriptul insusi trimite un HTTP request catre Uptime Kuma la finalul rularii. Daca request-ul nu vine in intervalul asteptat, monitorul trece pe “down”. E tehnica de “dead man’s switch” - utila pentru joburi care ruleaza rar (backup zilnic, sincronizare saptamanala) unde polling clasic n-are sens.
Pagini de status separate pe audiente
Poti crea o pagina de status publica, simpla, cu doar serviciile relevante pentru clienti, si o pagina separata, interna, cu toate detaliile tehnice pentru echipa de operare. Ambele traiesc in aceeasi instanta, dar au liste diferite de monitoare afisate.
Retrimitere si prag de rezistenta la flapping
Fiecare monitor are un numar configurabil de verificari esuate consecutive inainte sa declanseze o alerta (“retries”), plus un interval de retrimitere daca problema persista. Setat corect, elimina alertele false pentru un blip de retea de doua secunde, dar tot te anunta rapid la o problema reala.
Monitor de tip Docker pentru stack-uri mici self-hosted
Daca rulezi cateva containere pe acelasi VPS, monitorul de tip Docker verifica direct starea containerului prin socket-ul Docker, fara sa faca un request HTTP catre el - util pentru servicii interne fara port expus.
Unde Uptime Kuma nu e raspunsul potrivit
Toata configuratia traieste in SQLite, gestionata prin interfata web. Daca vrei ca monitorizarea sa fie versionata in Git, revizuita prin pull request si deployata identic pe mai multe medii, un tool config-as-code precum Gatus se potriveste mai bine - am detaliat abordarea in articolul despre stack-ul nostru de monitorizare .
Nu e o platforma de metrici: iti da status binar (sus/jos) si latenta, nu grafice detaliate de CPU, memorie sau metrici custom de aplicatie. Pentru asta ai nevoie de VictoriaMetrics/Prometheus si Grafana.
In fine, e o instanta single-node fara replicare built-in. Daca pagina ta de status publica ruleaza pe acelasi server care gazduieste si serviciile monitorizate, un incident care doboara serverul iti doboara si monitorul - exact cand ai nevoie sa afli ce se intampla. Pentru status page-uri critice, ruleaza instanta pe infrastructura separata de ce monitorizeaza.
Alternative pe care le-am luat in calcul
Gatus e alternativa noastra preferata pentru monitorizare config-as-code: totul se defineste in YAML, versionat in Git, fara stare ascunsa intr-o baza de date - potrivit pentru echipe care vor sa vada intreaga configuratie de monitorizare intr-un singur loc, revizuibil prin cod.
Checkmk sau Zabbix sunt mult mai grele decat ai nevoie doar pentru uptime monitoring, dar merita luate in calcul daca ajungi sa ai nevoie si de monitorizare de infrastructura mai profunda (CPU, memorie, servicii de sistem), nu doar de disponibilitate externa.
Statping-ng sau Cachet sunt alte optiuni mai vechi de pagini de status, dar cu ecosisteme de notificari si mentenanta mai putin active decat Uptime Kuma.
Deci, sa-l rulezi?
Daca ai nevoie de raspunsul rapid la “e site-ul meu sus?” plus o pagina de status prezentabila pentru clienti, si vrei totul gata de folosit in cinci minute fara sa scrii configuratie, Uptime Kuma e alegerea evidenta. Cand cresti dincolo de cateva zeci de monitoare sau vrei configuratie versionata in Git, ia in calcul Gatus sau un tool mai greu de infrastructura.
Poti porni containerul de mai sus pe un VPS de la noi in cateva minute, sau lasa echipa noastra de administrare de servere sa-ti configureze monitorizarea si notificarile de la zero.