5. Alarmi i notifikacije — ceo lanac

↑ Nazad

Prvo pogledaj

Grafana ima kratku seriju "Get started with Grafana Alerting" (po 5–10 min). Redom:

  1. Multi-dimensional alerts and how to route them — zašto jedno tvoje pravilo pravi poseban alarm za svaki servis. ▶ pogledaj na YouTube-u
  2. Group alert notifications — kako se alarmi grupišu u jednu poruku (zato ti ne stiže 10 poruka odjednom). ▶ pogledaj na YouTube-u
  3. Route alerts using dynamic labels — notification policies (koji alarm kuda ide). ▶ pogledaj na YouTube-u
  4. Template your alert notifications — kako se pravi tekst poruke. ▶ pogledaj na YouTube-u

Širi pregled na jednom mestu: Grafana Alerting Explained: Stop Silent System Failures in 2026 — LearnITGuide. ▶ pogledaj na YouTube-u

Dva nezavisna izvora poruka

IzvorTema u ntfyŠta prijavljujeKako proverava
Grafanagrafana-alertsProblemi vidljivi u logovima5 pravila, svaki minut pita Loki
Uptime Kumauptime-alertsNešto ne odgovara (sajt, kontejner, mašina)80+ monitora, svakih 60 s, posle 2 neuspela pokušaja

Kuma šalje poruku samo kad se stanje promeni (pao → i kad se vrati). Grafana šalje kad alarm okine, ponavlja na 4 sata dok traje, i šalje "Resolved" kad prođe.

Tvojih 5 Grafana pravila

Sva su u folderu Homelab (Alerting → Alert rules).

PraviloOkida kadKoliko dugo mora da trajeOzbiljnost
Greske u logovimaNeki kontejner/unit ima više od 20 error linija za 5 min10 minwarning
Sakupljac logova ne radi0 Docker linija u Lokiju za 15 min5 mincritical
Servis iza nginx-a ne odgovaranginx error log: upstream timed out / connect() failed, više od 10 za 10 min, po serveru5 min—
Systemd jedinica palajournal: "X: Failed with result" (osim fwupd-refresh i rocketchat-caddy)odmah—
Uptime Kuma monitor padaKuma upiše "Failing" više od 5 puta za 10 min za isti monitor (osim FTP fileshere)5 min—

"Koliko dugo mora da traje" (polje for) postoji da kratki naleti ne bude u 3 ujutru. Pragovi su izmereni na 14 dana tvojih logova: van pravih ispada nijedno pravilo nije okinulo.

Kako poruka putuje

pravilo (svaki 1 min pita Loki)
   │  prag pređen → stanje Pending
   │  traje duže od "for" → stanje Firing
   ▼
notification policy  (grupiše po folderu + imenu pravila, čeka 30 s da skupi srodne alarme)
   ▼
contact point "ntfy"  →  https://ntfy.jovanovic.vip/grafana-alerts  (token iz .env)
   ▼
telefon  (ponavlja na 4 h dok traje, "Resolved" kad prođe)

Stanja pravila koja vidiš u Grafani: Normal (sve ok), Pending (prag pređen, čeka se for), Firing / Alerting (poslato), Recovering (vraća se u normalu), No Data, Error (upit nije uspeo).

Stigla je poruka — runbook

Greske u logovima: X — servis X piše mnogo grešaka već 10+ minuta. Drilldown → Logs → servis X → filter error. Ili Explore (upit je i u samoj poruci):

{container="X"} | detected_level="error"

Najčešće: servis ne vidi bazu/disk/mrežu, ili je posle update-a image-a nešto puklo.

Sakupljac logova ne radi — u Loki ne stižu Docker logovi. Proveri:

ssh 192.168.2.88
sudo docker ps | grep -E "alloy|loki"
curl -s 127.0.0.1:3100/ready          # treba da vrati "ready"
df -h /                               # Loki staje kad je disk >= 90%
cd ~/observability && sudo docker compose restart loki alloy

Servis iza nginx-a ne odgovara: server — nginx ne može da dobije odgovor od kontejnera. Otvori taj sajt, pa sudo docker ps -a — da li je kontejner Up ili se restartuje u krug (Restarting). Logovi kontejnera: Explore {container="ime"}.

Systemd jedinica pala: X — servis na samom Ubuntu-u (ne Docker) je pao.

ssh 192.168.2.88
systemctl status X
journalctl -u X -n 50

Najčešće: mount (CIFS share), backup/cron skripta, snap servis.

Uptime Kuma monitor pada: X ili poruka iz teme uptime-alerts — status.jovanovic.vip → klikni monitor X, tamo piše tačna greška (timeout, sertifikat, HTTP 502...). Ako je mašina namerno ugašena — pauziraj monitor.

Utišavanje (Silence) — kad radiš održavanje

Radiš nešto na serveru i znaš da će servis biti dole sat vremena? Utišaj da ne dobiješ poruke:

  1. Alerting → Silences → New silence.
  2. Duration: npr. 2h.
  3. Label matchers: alertname = Greske u logovima (ili bilo koje drugo pravilo). Za sve: ostavi matcher grafana_folder = Homelab.
  4. Comment: "update plex-a". Save.

U Uptime Kuma isto: monitor → Pause (ili Maintenance u meniju za planirano održavanje).

Novo pravilo — dva načina

A) Klikom u UI (za učenje i probu):

  1. U Explore napiši upit koji broji ono što te zanima, npr. sum(count_over_time({service_name="vaultwarden"} |= "Invalid password" [10m])).
  2. Add → Add alert rule (Grafana prenese upit).
  3. Threshold: IS ABOVE 5. Folder: napravi novi, npr. Moja pravila. Evaluation group: 1m.
  4. Pending period (for): 5m. Contact point: ntfy (ili ostavi da ide preko policy-ja).
  5. Summary (tekst poruke): Vaultwarden: {{ $values.A.Value }} pogresnih lozinki za 10 min.
  6. Save.

B) Kroz fajl (ovako su napravljena postojeća): ~/observability/grafana/provisioning/alerting/rules.yml na serveru, pa sudo docker compose restart grafana. Pravila iz fajla su u UI zaključana (piše Provisioned) — zato ih ne možeš menjati klikom. Pravilo napravljeno klikom možeš izvesti u YAML (More → Export) i prebaciti u fajl kad ga istestiraš.

Test celog lanca (radi jednom mesečno)

ssh 192.168.2.88 "sudo systemd-run --unit=alert-test-fail /bin/false"

Za ~90 sekundi treba da stigne "Systemd jedinica pala: alert-test-fail.service". Posle: sudo systemctl reset-failed alert-test-fail.

Zašto u oktobru nije stigla poruka (rešeno)

Kad je 6–7. oktobra disk bio pun i Loki stajao 33 sata, pravilo "Sakupljac logova ne radi" je radilo ispravno. Grafana istorija pokazuje da je prešlo u Alerting (NoData) 6.10. u 00:48 UTC i ostalo tako do 7.10. u 08:54 (isto i 5.10. od 14:07 do 18:47). Poruka je otišla na temu grafana-alerts, ali telefon tada nije bio pretplaćen na tu temu. Pretplata je dodata tek 23. oktobra. Zato je korak 3 na stranici 1 najvažniji.

Istoriju bilo kog pravila vidiš sam: Alerting → Alert rules → pravilo → History.

Dokumentacija

Sledeće: 6. Seq

Izvor: 05-alarmi-i-notifikacije.md