Ako ne mjeriš, slijepo voziš. Production server bez monitoring-a je vremenska bomba — ne znaš kad je nešto puknulo dok ne nazove klijent. Ovo je vodič za moderni logging i monitoring stack za WordPress, Laravel, Craft, i custom aplikacije.
Tri sloja observability-ja
- Logging — što se dogodilo (text events: "user login failed", "payment processed").
- Metrics — koliko se dogodilo (number over time: requests/sec, CPU usage, response time).
- Tracing — kako se dogodilo (request flow kroz više servisa, gdje je usko grlo).
Za mali web app dovoljan je logging + osnovne metrike. Za microservices arhitekturu trebaju sva tri.
Error tracking — Sentry
Sentry je standard za error tracking u web razvoju. Bilo koja exception → automatski prijavljen + grupiran + s context-om (user, request, stack trace, breadcrumbs).
Plus: integracija za sve jezike (PHP, JS, Python, Ruby, Go), source maps support za frontend, performance monitoring, release tracking ("koja deploya je uvela ovaj bug"), Slack/email alerti.
Cijena: free do 5k errors/mj. Team od 26 USD/mj. Business od 80 USD/mj.
Self-host: open-source verzija dostupna, ali kompleksna za održavanje. Bolje koristit hosted (osim ako imaš striktan GDPR data residency requirement).
WordPress setup: sentry-wordpress plugin. Laravel: sentry/sentry-laravel Composer paket.
Alternative za error tracking
- Bugsnag — sličan Sentry, jednostavniji UI, manje features. Od 35 USD/mj.
- Rollbar — dobar za enterprise, ML grupiranje errora. Od 12 USD/mj.
- GlitchTip — open-source Sentry alternativa, self-host, Sentry-kompatibilni SDK.
- Honeybadger — popularan u Ruby/Rails svijetu.
Uptime monitoring
"Da li mi sajt uopće radi?" — vanjski monitor koji svakih 1-5 min provjeri da li URL odgovara.
Better Stack (Better Uptime)
Moderan uptime + on-call + status page sve-u-jednom.
Plus: alerti na Slack/SMS/voice call, eskalacija po rasporedu, javna status stranica, screenshot pri downu, sub-minute monitoring.
Cijena: free do 10 monitora. Team od 24 USD/mj.
UptimeRobot
Klasičan, jednostavan, jeftin.
Plus: free do 50 monitora s 5-min intervalom.
Minus: sub-minute treba paid (od 7 USD/mj).
Uptime Kuma (self-host)
Open-source uptime monitoring, self-host. Lijepi UI, podržava HTTP, TCP, ping, push monitoring.
Plus: besplatno, lokalno, brz setup s Docker-om.
Minus: moraš sam održavat server.
Application Performance Monitoring (APM)
APM mjeri brzinu i bottleneckove u aplikaciji — koja ruta je spora, koji DB query, koji external API call.
- New Relic — najpopularniji, full APM s tracing, infrastructure, browser monitoring. Free tier 100GB/mj.
- Datadog — sveobuhvatan (logs, metrics, APM, RUM, synthetic). Skupo na scale.
- Tideways — PHP-specific APM, briljantan za WP/Laravel. Od 29 EUR/mj.
- Blackfire — PHP profiler, deep dive u funkcije. Pair s drugim alatom.
- Inspector.dev — Laravel/Symfony fokus, friendly UI.
Server / infrastructure monitoring
Grafana + Prometheus (self-host)
Industrijski standard za open-source monitoring. Prometheus skuplja metrike, Grafana ih vizualizira.
Setup:
- Instaliraj Node Exporter na svaki server (skuplja CPU, RAM, disk metrike).
- Instaliraj Prometheus server (scrape-a Node Exportere svakih 15s).
- Instaliraj Grafana, spoji Prometheus kao data source.
- Import pre-built dashboard (Grafana ima galeriju).
- Konfiguriraj Alertmanager za notifikacije.
Plus: potpuna kontrola, dugoročno najjeftinije, ogromna zajednica.
Minus: setup vrijeme, održavanje.
Netdata
Real-time infrastructure monitoring, lijep UI, instalacija u 1 minutu.
Plus: 1-sekundna granularnost, anomaly detection, free za do 5 nodova.
Minus: resource-intensive na malim serverima.
cPanel/WHM built-in
cPanel ima osnovnu statistiku (Awstats, Visitors). Nije pravi monitoring, samo osnovni traffic stats.
Log management
Better Stack Logs (bivši Logtail)
Centralizirano logging — sve aplikacije šalju logove na jedno mjesto, SQL-like query za pretragu.
Cijena: free do 1GB/mj. Team od 24 USD/mj.
Loki (Grafana stack)
Open-source log aggregation, integrira se s Grafanom. Self-host, jeftin storage (Loki ne indexira full text, samo metadate — manje resursa nego Elastic).
Elasticsearch + Kibana (ELK)
Klasik. Powerful, ali resource-intensive. Za big-scale logging.
CloudWatch / Stackdriver
Ako si na AWS/GCP — built-in, nije nužno najjeftiniji.
Što loggat
- Errors and exceptions — svi uncaught + caught značajni.
- Slow queries — DB query >100ms.
- External API calls — request URL, response time, status.
- Authentication events — login success/fail, password reset, 2FA.
- Payment events — naplata, refund, dunning.
- Admin actions — promjena rolea, brisanje sadržaja.
- Email send — komu, kad, status.
Što NE loggat: lozinke, kreditne kartice, JWT tokeni, full GDPR PII (email OK, ali ne cijeli profil). Mask ili hash.
Strukturirano logiranje
Ne error_log("User john did stuff");. Umjesto:
logger()->info('user.login', [
'user_id' => $user->id,
'ip' => request()->ip(),
'user_agent' => request()->userAgent(),
'success' => true,
]);
JSON output je query-friendly u Loki/Better Stack/Datadog. Možeš filter po user_id ili count successful loginova po IP-u.
SLO i SLA
- SLI (Service Level Indicator) — što mjeriš (npr. % requesta s response time <200ms).
- SLO (Service Level Objective) — što ciljaš (npr. "99.9% requesta <200ms u svakom 30-dnevnom prozoru").
- SLA (Service Level Agreement) — što obećavaš klijentu (npr. 99.9% uptime ili refund).
Bez SLO ne znaš da li je trenutna performansa OK ili problem. Standardni web SLO:
- Uptime: 99.9% (43 min downtime/mj dopušteno).
- Response time: p95 < 500ms.
- Error rate: < 1% requestova.
Alerti — kada slat
Najgori monitoring je onaj koji šalje 50 alerta dnevno — ljudi ih prestanu čitat (alert fatigue).
Dobre prakse:
- Page (SMS/voice) samo za production-down ili security breach.
- Slack/email za warnings, daily summary za info.
- Threshold-based: ne "CPU 80%", nego "CPU 80% kontinuirano 5 min".
- Auto-resolve: ako se problem riješi sam, zatvori alert, ne ostavi otvoren.
- On-call rotation — ne pingaj istog tipa svaki dan.
Praktičan minimum stack za WP/Laravel sajt
- Sentry za errors (free tier 5k events/mj).
- Better Stack Uptime za uptime + status page (free 10 monitora).
- Server-side: Netdata ili cPanel built-in.
- Slow query log u MySQL/MariaDB, weekly review.
- Application log u JSON kroz Monolog (Laravel) ili WP Toolbox.
Trošak: 0-30 EUR/mj za 90% potreba malog/srednjeg sajta.
Enterprise stack
- Sentry Business + performance monitoring.
- Datadog ili New Relic APM + infrastructure + logs.
- PagerDuty za on-call rotation + eskalacija.
- Grafana za custom business metrics dashboards.
- StatusPage.io za javni status (clients-facing).
WMD i monitoring
Sav WMD managed hosting dolazi s server-level monitoringom (CPU, RAM, disk, network, MySQL) i automated alerting za threshold breach. Za klijente postavljamo Sentry + Better Stack uptime + slow query monitoring kao standard u Maintenance Plan-u. Status page za webshop klijente uključen — vlastiti subdomain s real-time uptime status. Za enterprise klijente integriramo Grafana dashboards s custom business metrics (orders/min, revenue trend, conversion).
FAQ
Sentry ili Bugsnag? Sentry — veća zajednica, više integracija, jeftiniji za mid-tier. Bugsnag ako voliš jednostavniji UI.
Treba li mi APM? Ako imaš performance probleme i ne znaš gdje — da. Inače Sentry performance monitoring je dovoljan za većinu.
Self-host Grafana ili hosted? Self-host za long-term cost, hosted (Grafana Cloud) za zero-maintenance. Free tier Cloud-a je dovoljan za većinu sajtova.
Što ako mi Sentry sruši troškove zbog runaway loop-a? Postavi rate limit u Sentry (max events/min) i sample rate (npr. 10% transaction sampling u production-u).
Koliko se loga čuva? Default 7-30 dana ovisno o alatu. Za GDPR compliance ne više od 6 mjeseci osim ako legalna obveza.
Trebaš monitoring setup za sajt ili aplikaciju? WMD postavlja Sentry + Better Stack + slow query log + Grafana stack ovisno o veličini. Javi se preko kontakt forme.