Modul 8 · 8.3
Monitorovanie vášho servera
Modul 8: Zálohy a monitorovanie · Čas čítania: 10 minút
Cieľ lekcie: Po tejto lekcii dokážete určiť, čo na svojom serveri monitorovať (zvonku aj zvnútra), aké prahy majú zmysel a ako zabezpečiť, aby vás upozornenie naozaj zastihlo bez toho, aby ste sa v upozorneniach topili.
Kľúčové pojmy: monitorovanie zvonku, monitorovanie zvnútra, dostupnosť (uptime), kontrola http, kontrola portu, platnosť certifikátu, miesto na disku, pamäť, záťaž (load), heartbeat (dead man's switch), prah, kanál upozornení, únava z upozornení, grafy poskytovateľa
Prečo monitorovať?
Bez monitorovania sa o problémoch dozviete od svojich zákazníkov, alebo vôbec nie. Web, ktorý od soboty nefunguje, certifikát, ktorý vypršal, disk, ktorý sa zaplnil, záloha, ktorá už tri týždne potichu zlyháva: to všetko ste mohli včas zbadať. Monitorovanie znamená, že program nepretržite sleduje stav a upozorní vás, keď niečo nie je v poriadku.
Dobré monitorovanie odpovedá na dve otázky:
- Funguje to pre používateľa? To meriate zvonku.
- Pokazí sa to čoskoro? To meriate zvnútra: disk, pamäť, aktualizácie, zálohy.
Zvonku: čo vidí používateľ
Monitorovanie zvonku beží na inom stroji než váš server, najlepšie u iného poskytovateľa. Je to logické: keď váš server nefunguje, sám už nemôže nikoho upozorniť.
| Kontrola | Čo robí | Prečo |
|---|---|---|
| http(s) | každú minútu načíta stránku a skontroluje stavový kód (200) a prípadne slovo na stránke | web naozaj funguje, nielen server |
| port | pripojí sa napríklad na port 22 alebo 443 | služba počúva a je dostupná |
| ping | pošle paket ICMP | server žije (o vašom webe to však nič nehovorí) |
| certifikát | načíta certifikát a dátum jeho platnosti | upozorní s dostatočným predstihom pred vypršaním |
| DNS | vyžiada záznam A | názov stále smeruje na správny server |
Certifikát si zaslúži osobitnú pozornosť. Certifikáty Let's Encrypt platia krátko a obnovujú sa automaticky (lekcia 7.3), ale ak obnovenie potichu zlyhá, zistíte to až vtedy, keď návštevníci uvidia varovanie. Let's Encrypt od júna 2025 už neposiela pripomienkové e-maily o končiacich certifikátoch a sám odporúča monitorovanie. Kontrola certifikátu, ktorá upozorní pri platnosti kratšej než 14 dní, preto nie je luxus.
Bežný program, ktorým to môžete robiť sami, je Uptime Kuma, ktorý v lekcii 9.4 nainštalujete v kontajneri. Neinštalujte ho však podľa možnosti na ten istý server, ktorý má monitorovať, alebo ho skombinujte s druhou, externou kontrolou. Existujú aj služby tretích strán, ktoré robia to isté; vyberte si takú, ktorá vám vyhovuje, a všímajte si, kde sídli, ak sa v upozorneniach môžu objaviť údaje vašich zákazníkov.
Zvnútra: čo sa čoskoro pokazí
Niektoré problémy zvonku uvidíte, až keď je neskoro. Tie meriate priamo na serveri:
| Čo | Ako to zistíte | Rozumný prah |
|---|---|---|
| Miesto na disku | df -h | varovanie nad 80 %, poplach nad 90 % |
| Inody (počet súborov) | df -i | rovnako; disk môže byť "plný" miliónmi malých súborov |
| Pamäť | free -h, hlásenia "Out of memory" v journalctl -k | každé hlásenie OOM je signál |
| Záťaž (load) | uptime, top | dlhodobo vyššia než počet vCPU |
| Zlyhané služby | systemctl --failed (lekcia 6.1) | každá zlyhaná služba |
| Aktualizácie a reštart | /var/run/reboot-required, apt list --upgradable (lekcia 4.2) | bezpečnostná aktualizácia staršia než dva dni |
| Zálohy | koniec vášho zálohovacieho skriptu (lekcia 8.2) | každý zlyhaný alebo vynechaný beh |
Dá sa to urobiť jednoduchým skriptom s časovačom (lekcia 6.3), ktorý pri prekročení prahu pošle upozornenie, alebo monitorovacím programom s agentom na serveri (známe open-source príklady sú Netdata a kombinácia Prometheus s node_exporter). Začnite v malom: disk, zlyhané služby a zálohy zachytia väčšinu problémov.
Grafy v paneli vášho poskytovateľa (procesor, pamäť, sieť, disk za obdobie od jedného dňa po rok) sú výborným doplnkom na sledovanie trendov: ak váš disk každý mesiac narastie o pár percent, viete, kedy sa zaplní. Vo WebOké ich nájdete na obrazovke VPS, u iných poskytovateľov podobne. Väčšinou však neposielajú upozornenia, takže monitorovanie nenahrádzajú.
Heartbeat: upozornenie, keď sa nič nedeje
Niektoré veci treba monitorovať práve podľa toho, že signál neprišiel. Najlepším príkladom je nočná záloha: ak sa skript vôbec nespustí (časovač vypnutý, server vypnutý, skript pokazený), nepríde ani chybové hlásenie.
Riešenie sa nazýva heartbeat alebo dead man's switch: vaše monitorovanie očakáva každý deň signál. Zálohovací skript na konci, a len ak všetko prebehlo úspešne, pošle malú požiadavku http na pevnú, tajnú URL adresu vášho monitorovania:
restic backup ... && restic check && curl -fsS -m 10 https://status.example.com/api/push/Xyz123abc?status=up >/dev/nullAk signál jeden deň nepríde, dostanete upozornenie. Uptime Kuma má na to typ monitora Push; existujú aj programy na vlastný hosting, napríklad Healthchecks. Takto jediným riadkom overíte, či záloha naozaj prebehla.
Upozornenia, ktoré dorazia, a nie príliš veľa
Upozornenie, ktoré nikto nečíta, nie je monitorovanie. Zabezpečte tri veci:
- Kanál upozornení, ktorý naozaj vidíte: push správa v telefóne, chatovací kanál, SMS. E-mail je možný, ale len ak váš server dokáže spoľahlivo posielať poštu, a e-mail sa ľahko prehliadne. Pre najdôležitejšie upozornenia používajte dva kanály.
- Nezávislosť od toho, čo monitorujete. Ak e-mail o plnom disku posiela samotný server, nepríde práve vtedy, keď je disk plný. Monitorovanie zvonku a heartbeat to zachytia.
- Málo, ale oprávnene. Ak každý deň dostávate desať upozornení, s ktorými nič nerobíte, začnete ich ignorovať, aj to jedno, na ktorom záleží. Tomu sa hovorí únava z upozornení. Nastavte prahy tak, aby upozornenie znamenalo: musíte niečo urobiť. Nechajte upozornenie spustiť až po niekoľkých neúspešných kontrolách za sebou (napríklad trikrát), aby vás jeden stratený paket nezobudil.
Upozornenia otestujte: na chvíľu vypnite službu a sledujte, či upozornenie príde a ako dlho to trvalo.
Čo nerobiť
- Monitorovacie stránky prístupné všetkým s internými názvami a adresami. Verejná stavová stránka je v poriadku, ale nech ukazuje len to, čo návštevníci môžu vedieť.
- Správcovský účet monitorovania bez silného hesla a 2FA. Kto sa dostane do vášho monitorovania, môže upozornenia vypnúť.
- Agenti s väčšími právami, než potrebujú. Monitorovací agent väčšinou nemusí bežať ako root.
Zhrnutie
- Zvonku monitorujte, či všetko funguje (http, port, certifikát, DNS), a to z iného stroja; zvnútra monitorujte, či sa niečo čoskoro nepokazí (disk, pamäť, služby, aktualizácie, zálohy).
- Certifikáty si zaslúžia vlastnú kontrolu: Let's Encrypt od júna 2025 už neposiela pripomienkové e-maily.
- Heartbeat upozorní, keď signál nepríde; ideálne pre zálohy a plánované úlohy.
- Zvoľte kanál upozornení, ktorý naozaj vidíte a ktorý nezávisí od samotného servera, a nastavte prahy tak, aby každé upozornenie vyžadovalo akciu.
- Grafy vášho poskytovateľa ukazujú trendy, ale väčšinou neposielajú upozornenia.
Kvíz
Úloha
Úloha O8.3: Váš zoznam monitorovania. Vytvorte pre svoj server zoznam monitorovania: ktoré kontroly zvonku (s akým intervalom a odkiaľ), ktoré zvnútra (s prahmi), aký heartbeat (alebo viacero) a cez aký kanál prídu upozornenia. Nastavte aspoň jednu externú kontrolu http alebo certifikátu a jeden heartbeat (napríklad pre zálohu) a upozornenie otestujte tak, že na chvíľu vypnete službu. Zapíšte si, ako dlho trvalo, kým upozornenie prišlo.
Úloha O8.3: Váš zoznam monitorovania
Túto úlohu vykonávate sami, nikto ju nekontroluje. Odškrtnite, čo ste urobili, a označte úlohu ako splnenú.
Kontrola zvonku z iného stroja (najlepšie u iného poskytovateľa), každú 1 až 5 minút s niekoľkými opakovaniami. Certifikát 14 dní, disk 80/90 %, systemctl --failed, heartbeat iba pri úspešnej zálohe. Upozornenia, ktoré nevyžadujú žiadny zásah: odstrániť alebo zvýšiť prah.
Vaše zaškrtnutia a poznámky zostávajú iba v tomto prehliadači, nikam ich neposielame. Po prihlásení si v sekcii Moje kurzy uchovávame iba to, že ste úlohu splnili.
Ďalšie čítanie
- Nemáte už prístup k svojmu VPS? Čo robiť ďalej
- Let's Encrypt, Expiration Notification Service Has Ended: https://letsencrypt.org/2025/06/26/expiration-notification-service-has-ended
- Uptime Kuma (GitHub): https://github.com/louislam/uptime-kuma
- VPS: od prvého prihlásenia po bezpečný server 8.3: Monitorovanie zvonku a zvnútra
- VPS: od prvého prihlásenia po bezpečný server 7.1: Uptime Kuma: monitorovanie vašich stránok a servera
