Upozorenja o padu sajta
Kako da saznaš da je usluga nedostupna pre korisnika: eksterne provere, jednostavan watchdog na samom serveru i automatsko restartovanje usluge.
Ažurirano 23. avgust 2026.
Grafikoni u panelu pokazuju stanje mašine, ali ne odgovaraju na pitanje „da li je sajt dostupan?” Aplikacija može da se zamrzne dok je CPU miran, a bez spoljne provere saznaćeš o tome od svojih klijenata.
Spoljne provere
Glavno pravilo: ne proveravaj sa mašine koju nadgledaš. Koristi bilo koji spoljni servis za nadgledanje dostupnosti — ima ih mnogo, uključujući besplatne pakete za nekoliko adresa sa intervalom od jednog minuta. Podešavanja koja su zaista važna:
- Adresa za proveru. Ne početna strana, već zasebna ruta poput
/healthzkoja proverava i bazu i red. U suprotnom, keširana početna strana biće poslužena čak i kada je backend mrtav. - Očekivani odgovor. Kod 200 plus podstring u telu. Mnoge aplikacije vraćaju 200 sa porukom o grešci kada se pokvare.
- Prag. Dva ili tri neuspešna pokušaja zaredom, inače će te svaki mrežni zastoj probuditi.
- Kanal. Telegram ili imejl. Uveri se da obaveštenje zaista stiže: isključi servis na minut i sačekaj poruku.
Ne zaboravi ni zasebnu proveru isteka sertifikata — istekao TLS sertifikat izgleda kao prekid rada i dešava se redovno.
Watchdog na samoj mašini
Spoljno nadgledanje će ti reći da je sajt pao. Da bi se sam vratio, podesi systemd. U unit fajlu servisa:
[Service]
Restart=always
RestartSec=5
StartLimitBurst=5
StartLimitIntervalSec=120
Na taj način će servis preživeti slučajni pad, ali neće se vrteti u beskonačnoj petlji ako je konfiguracija pokvarena. Nakon izmene: systemctl daemon-reload && systemctl restart myapp.
Za aplikacije koje ne padaju već se zamrznu, dodaj HTTP proveru. Par unit fajlova — tajmer i servis:
cat >/etc/systemd/system/healthcheck.service <<'EOF'
[Service]
Type=oneshot
ExecStart=/usr/local/bin/healthcheck.sh
EOF
cat >/etc/systemd/system/healthcheck.timer <<'EOF'
[Timer]
OnUnitActiveSec=60
[Install]
WantedBy=timers.target
EOF
systemctl enable --now healthcheck.timer
Sam skript:
#!/bin/sh
curl -fsS --max-time 10 http://127.0.0.1:8080/healthz >/dev/null || systemctl restart myapp
Upozorenja o zdravlju mašine
Korisno je i da saznaš da ponestaje prostora na disku i memorije pre prekida rada. Najjednostavnija opcija je cron posao koji šalje Telegram poruku kada se prekorači prag:
0 * * * * root [ "$(df --output=pcent / | tr -dc 0-9)" -gt 85 ] && curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" -d chat_id=$CHAT -d text="VDS disk usage is over 85%"
Napredniju opciju sa gotovim pragovima nudi Netdata.
Česte greške
- Nadgledanje na istoj mašini. Ako mašina padne, i watchdog i obaveštavanje umiru.
- Previše osetljiv prag. Bujica lažnih alarma znači da ćeš preći preko pravog.
Restart=alwaysumesto ispitivanja uzroka. Restart maskira curenje memorije: servis pada svakih pola sata, a ti to ne vidiš. Proverisystemctl show myapp -p NRestartsi journal.- Provera samo preko ping-a. Mašina odgovara na ICMP čak i sa potpuno mrtvim veb serverom.
Prvo što treba proveriti kada se alarm aktivira je „Overview” u panelu
/hosting/vds/m/<id>. Prekid u grafikona znači problem sa mašinom; ravni grafikoni kada je sajt nedostupan znače problem u aplikaciji.