Modul 8 · 8.3
Nadzor Vašeg poslužitelja
Modul 8: Sigurnosne kopije i nadzor · Vrijeme čitanja: 10 minuta
Cilj učenja: Nakon ove lekcije moći ćete odrediti što na svom poslužitelju nadzirete (izvana i iznutra), koji su pragovi smisleni i kako osigurati da upozorenje doista stigne do Vas, a da se ne utopite u obavijestima.
Ključni pojmovi: nadzor izvana, nadzor iznutra, uptime (dostupnost), http provjera, provjera priključka, istek certifikata, prostor na disku, memorija, load (opterećenje), heartbeat (dead man's switch), prag, kanal za upozorenja, zamor od upozorenja, grafikoni pružatelja usluge
Zašto nadzor?
Bez nadzora za probleme saznajete od svojih klijenata ili uopće ne saznajete. Web-stranica koja ne radi od subote, certifikat koji je istekao, disk koji se napunio, sigurnosna kopija koja već tri tjedna tiho ne uspijeva: sve su to stvari koje ste mogli na vrijeme uočiti. Nadzor znači: program neprestano provjerava i upozorava Vas kada nešto nije u redu.
Dobar nadzor odgovara na dva pitanja:
- Radi li sve za korisnika? To mjerite izvana.
- Hoće li uskoro nešto poći po zlu? To mjerite iznutra: disk, memorija, ažuriranja, sigurnosne kopije.
Izvana: ono što korisnik vidi
Nadzor izvana radi na drugom računalu, a ne na Vašem poslužitelju, po mogućnosti kod drugog pružatelja usluge. To je logično: ako Vaš poslužitelj ne radi, ne može sam ni upozoriti.
| Provjera | Što | Zašto |
|---|---|---|
| http(s) | svake minute dohvaća stranicu i provjerava statusni kod (200) te po potrebi neku riječ na stranici | web-stranica doista radi, a ne samo poslužitelj |
| priključak | uspostavlja vezu, na primjer s priključkom 22 ili 443 | usluga sluša i dostupna je |
| ping | šalje ICMP paket | poslužitelj je živ (ali to ništa ne govori o Vašoj web-stranici) |
| certifikat | čita certifikat i datum isteka | upozorava dovoljno prije isteka |
| DNS | dohvaća A zapis | naziv i dalje upućuje na pravi poslužitelj |
Certifikat zaslužuje posebnu pažnju. Let's Encrypt certifikati vrijede kratko i automatski se obnavljaju (lekcija 7.3), ali ako obnova tiho ne uspije, primijetit ćete to tek kada posjetitelji dobiju upozorenje. Let's Encrypt od lipnja 2025. više ne šalje podsjetnike e-poštom o certifikatima koji istječu i sam preporučuje nadzor. Provjera certifikata koja upozorava kada je preostalo manje od 14 dana valjanosti stoga nije luksuz.
Uobičajeni program za samostalan nadzor je Uptime Kuma, koji ćete u lekciji 9.4 instalirati u kontejner. Po mogućnosti ga tada ne postavljajte na isti poslužitelj koji treba nadzirati ili ga kombinirajte s drugom, vanjskom provjerom. Postoje i usluge trećih strana koje rade isto; odaberite onu koja Vam odgovara i obratite pažnju na to gdje imaju sjedište ako se u upozorenjima mogu naći podaci Vaših klijenata.
Iznutra: ono što će uskoro poći po zlu
Neke probleme izvana vidite tek kada je prekasno. Njih mjerite na samom poslužitelju:
| Što | Kako to vidite | Razuman prag |
|---|---|---|
| Prostor na disku | df -h | upozorenje iznad 80%, alarm iznad 90% |
| Inode (broj datoteka) | df -i | isto; disk može biti "pun" zbog milijuna malih datoteka |
| Memorija | free -h, poruke "Out of memory" u journalctl -k | svaka OOM poruka je znak upozorenja |
| Load | uptime, top | dugotrajno veći od broja vCPU jezgri |
| Neuspjele usluge | systemctl --failed (lekcija 6.1) | svaka neuspjela usluga |
| Ažuriranja i ponovno pokretanje | /var/run/reboot-required, apt list --upgradable (lekcija 4.2) | sigurnosno ažuriranje starije od dva dana |
| Sigurnosne kopije | kraj Vaše skripte za sigurnosno kopiranje (lekcija 8.2) | svako neuspjelo ili izostalo izvođenje |
To možete riješiti jednostavnom skriptom i timerom (lekcija 6.3) koji šalje upozorenje kada se prag prekorači ili programom za nadzor s agentom na poslužitelju (poznati primjeri otvorenog koda su Netdata i kombinacija Prometheus s node_exporter). Počnite s malim: disk, neuspjele usluge i sigurnosne kopije otkrivaju većinu problema.
Grafikoni na upravljačkoj ploči Vašeg pružatelja usluge (procesor, memorija, mreža, disk u razdoblju od jednog dana do godine) odlična su dopuna za praćenje trendova: ako Vam disk svaki mjesec naraste za nekoliko posto, znate kada će se napuniti. Kod WebOké se nalaze na zaslonu VPS-a; kod drugih pružatelja slično. Obično ne šalju upozorenja, pa ne zamjenjuju nadzor.
Heartbeat: upozorenje kada se ništa ne dogodi
Neke stvari treba nadzirati upravo po izostanku signala. Najbolji je primjer noćna sigurnosna kopija: ako se skripta uopće ne pokrene (timer isključen, poslužitelj isključen, skripta neispravna), ne stiže ni poruka o pogrešci.
Rješenje se zove heartbeat ili dead man's switch: Vaš nadzor svaki dan očekuje signal. Skripta za sigurnosno kopiranje na kraju, samo ako je sve uspjelo, šalje mali http zahtjev na stalni, tajni URL Vašeg nadzora:
restic backup ... && restic check && curl -fsS -m 10 https://status.example.com/api/push/Xyz123abc?status=up >/dev/nullAko signal jednog dana ne stigne, dobit ćete upozorenje. Uptime Kuma za to ima vrstu monitora Push; postoje i programi koje možete sami hostati, poput Healthchecks. Tako jednim retkom nadzirete je li se sigurnosna kopija doista izvršila.
Upozorenja koja stižu, ali ne previše
Upozorenje koje nitko ne čita nije nadzor. Pobrinite se za tri stvari:
- Kanal za upozorenja koji doista vidite: push obavijest na telefonu, kanal za chat, SMS. E-pošta je moguća, ali samo ako Vaš poslužitelj pouzdano može slati poštu, a e-poštu je lako previdjeti. Za najvažnija upozorenja koristite dva kanala.
- Neovisno o onome što nadzirete. Ako Vaš poslužitelj sam šalje e-poštu o punom disku, ona neće stići kada je disk pun. Nadzor izvana i heartbeat to pokrivaju.
- Malo, ali opravdano. Ako svaki dan dobijete deset upozorenja s kojima ništa ne radite, počet ćete ih zanemarivati, pa i ono jedno koje je važno. To se zove zamor od upozorenja. Postavite pragove tako da upozorenje znači: morate nešto poduzeti. Neka se upozorenje aktivira tek nakon nekoliko uzastopnih neuspjelih provjera (na primjer tri puta), tako da Vas jedan izgubljeni paket ne probudi.
Testirajte svoja upozorenja: nakratko isključite neku uslugu i provjerite stiže li upozorenje i koliko je trebalo.
Što ne treba raditi
- Stranice nadzora otvorene svima s internim nazivima i adresama. Javna statusna stranica je u redu, ali neka prikazuje samo ono što posjetitelji smiju znati.
- Administratorski račun Vašeg nadzora bez jake lozinke i 2FA. Tko ima pristup Vašem nadzoru, može isključiti upozorenja.
- Agenti s više prava nego što je potrebno. Agent za nadzor obično ne mora biti root.
Sažetak
- Izvana, s drugog računala, nadzirite radi li sve (http, priključak, certifikat, DNS), a iznutra hoće li uskoro nešto poći po zlu (disk, memorija, usluge, ažuriranja, sigurnosne kopije).
- Certifikati zaslužuju vlastitu provjeru: Let's Encrypt od lipnja 2025. više ne šalje podsjetnike e-poštom.
- Heartbeat upozorava na izostanak signala; idealan je za sigurnosne kopije i zakazane zadatke.
- Odaberite kanal za upozorenja koji doista vidite, neovisan o samom poslužitelju, i postavite pragove tako da svako upozorenje zahtijeva radnju.
- Grafikoni Vašeg pružatelja usluge pokazuju trendove, ali obično ne šalju upozorenja.
Kviz
Zadatak
Zadatak O8.3: Vaš popis za nadzor. Napravite popis za nadzor svog poslužitelja: koje provjere izvana (u kojem intervalu i odakle), koje iznutra (s pragovima), koji heartbeat (ili više njih) i preko kojeg kanala stižu upozorenja. Postavite barem jednu vanjsku http provjeru ili provjeru certifikata i jedan heartbeat (na primjer za sigurnosnu kopiju) te testirajte upozorenje tako da nakratko isključite neku uslugu. Zabilježite koliko je trebalo da upozorenje stigne.
Zadatak O8.3: Vaš popis za nadzor
Ovaj zadatak rješavate sami; nitko ga ne provjerava. Označite što ste napravili i označite zadatak kao završen.
Provjera izvana s drugog računala (po mogućnosti kod drugog pružatelja), svakih 1 do 5 minuta uz nekoliko ponavljanja. Certifikat 14 dana, disk 80/90%, systemctl --failed, heartbeat samo nakon uspješne sigurnosne kopije. Obavijesti koje ne traže nikakvu radnju: uklonite ih ili povisite prag.
Vaše kvačice i bilješke ostaju samo u ovom pregledniku; ne šaljemo ih nikamo. Ako ste prijavljeni, u Moji tečajevi čuvamo samo podatak da ste zadatak završili.
Dodatno štivo
- Nemate više pristup VPS-u: što sada?
- 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
