Upozornenia na výpadok stránky
Ako sa o nedostupnosti služby dozvedieť skôr než používatelia: externé kontroly, jednoduchý watchdog priamo na serveri a automatický reštart služby.
Aktualizované 23. augusta 2026
Grafy v ovládacom paneli ukazujú stav stroja, ale neodpovedajú na otázku „je stránka hore?“ Aplikácia môže zamrznúť, kým je CPU nečinný, a bez externého overenia sa o tom dozvieš až od svojich klientov.
Externé kontroly
Hlavné pravidlo: nekontroluj zo stroja, ktorý sleduješ. Použi akúkoľvek externú službu na sledovanie dostupnosti — je ich veľa, vrátane bezplatných plánov pre niekoľko adries s jednominútovým intervalom. Nastavenia, na ktorých naozaj záleží:
- Adresa kontroly. Nie domovská stránka, ale samostatná cesta ako
/healthz, ktorá overí aj databázu, aj front. Inak sa bude poskytovať aj z vyrovnávacej pamäte domovská stránka, keď je backend mŕtvy. - Očakávaná odpoveď. Kód 200 plus podreťazec v tele. Mnohé aplikácie vrátia 200 s chybovou správou, keď sa pokazia.
- Prah. Dva alebo tri neúspešné pokusy za sebou, inak ťa zobudí každé zakolísanie siete.
- Kanál. Telegram alebo email. Uisti sa, že upozornenie naozaj dorazí: vypni službu na minútu a počkaj na správu.
Nezabudni na samostatnú kontrolu expirácie certifikátu — expirovaný TLS certifikát vyzerá ako výpadok a stáva sa to pravidelne.
Watchdog priamo na stroji
Externé sledovanie ti povie, že stránka je dole. Aby sa sama vrátila hore, nastav systemd. V unit súbore služby:
[Service]
Restart=always
RestartSec=5
StartLimitBurst=5
StartLimitIntervalSec=120
Takto služba prežije náhodný pád, ale nebude sa donekonečna opakovať, ak je konfigurácia pokazená. Po úprave: systemctl daemon-reload && systemctl restart myapp.
Pre aplikácie, ktoré nespadnú, ale zamrznú, pridaj HTTP kontrolu. Dvojica unitov — časovač a služba:
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
Samotný skript:
#!/bin/sh
curl -fsS --max-time 10 http://127.0.0.1:8080/healthz >/dev/null || systemctl restart myapp
Upozornenia na stav stroja
Tiež je užitočné dozvedieť sa o dochádzajúcom mieste na disku a pamäti ešte pred výpadkom. Najjednoduchšia možnosť je cron úloha, ktorá pošle správu na Telegram, keď sa prekročí prah:
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%"
Pokročilejšiu možnosť s hotovými prahmi ponúka Netdata.
Časté chyby
- Sledovanie na tom istom stroji. Ak stroj spadne, zomrie aj watchdog, aj upozorňovanie.
- Príliš citlivý prah. Prúd falošných poplachov znamená, že ten skutočný prehliadneš.
Restart=alwaysnamiesto zisťovania príčiny. Reštart maskuje únik pamäte: služba spadne každú pol hodinu a ty to nevidíš. Skontrolujsystemctl show myapp -p NRestartsa journal.- Kontrola len cez ping. Stroj odpovedá na ICMP aj s úplne mŕtvym webovým serverom.
Prvé, čo pri poplachu skontroluj, je „Overview“ v ovládacom paneli
/hosting/vds/m/<id>. Prerušenie v grafoch znamená problém so strojom; ploché grafy, keď je stránka nedostupná, znamenajú problém v aplikácii.