Monitoring — overview
Sentinel monitoruje všechny S60 servery a služby. Stack je lightweight — žádný Prometheus/Grafana/Loki, jen co se vejde na jeden VPS.
Komponenty
| Co | Kde | Detaily |
|---|---|---|
| Error tracking (Sentry-compat) | docs/services/glitchtip/ |
https://errors.studio60.cz |
| Status page | docs/services/uptime-kuma/ |
https://status.studio60.cz (DNS pending) |
| Server metrics | docs/services/metrics/ |
sentinel-only SQLite, 7 dní retence |
| Watchdog | runbooks/watchdog.md |
scripts/watchdog.sh — auto-restart degradovaných služeb |
| Telegram alerty | docs/services/telegram/ |
Relay → Telegram bot |
Server metrics — krátký přehled
- Collector:
/opt/metrics/collector.py(systemds60-metrics, port 9100) - Agent:
/opt/metrics/agent.sh(cron*/1na 7 serverech) - Storage:
/opt/metrics/metrics.db(SQLite, 7 dní retence) - API:
GET /metrics/api/metrics/currentGET /metrics/api/metrics/history/<host>- Auth:
s60-metrics-2026-collector(POST API key) - Status page:
sentinel.studio60.cz/status/(sekce Servery + sparkline)
Nový server přidat: scp agent.sh + crontab → viz runbooks/metrics.md.
Co kde sleduje
| Vrstva | Co | Nástroj |
|---|---|---|
| Server (CPU/RAM/disk/load) | 7 serverů | metrics collector |
| Container UP/DOWN | hub + prod | watchdog + Kuma |
| HTTP endpoints | weby + API | Uptime Kuma blackbox |
| Application errors | dev agenti, prod služby | GlitchTip |
| Deploy events | history | deploy/deploys.log + docs/deploy/changelog.md |
Alerting
- Kritické (downtime): Telegram bot → Libor přímo
- Warning (high CPU, deploy failure): Telegram + zpráva sentinel agentovi
- Info (deploys): zápis do changelog + memory pipeline
Související
- Telegram bridge:
docs/services/telegram/ - Watchdog logy:
/var/log/sentinel-watchdog.log
Host monitoring (host-monitor.py) — od 2026-07-22
Sentinel cron 5,20,35,50 * * * * → /root/scripts/monitoring/host-monitor.py. Doplněk k attack-report.py (ten řeší anti-bot surge na prod-alfa).
- Sleduje SSHem (read-only): prod-alfa (
100.78.87.88) + pg-alfa (100.125.3.121). - Metriky: disk %, load1 vs jádra, RAM %, sshd
Failed password/15min (brute-force), prod-alfa kontejnery unhealthy/exited, pg-alfapg_stat_activityvsmax_connections. - Prahy: disk≥85%, load>2×jádra, RAM≥92%, ssh≥50/15min, pg-conn≥85%.
- Alert: Telegram + mail (
notify.py, sdílený s attack-report), cooldown 60min per host; denní digest 8:00. - Log:
/var/log/host-monitor.log, statehost-state.json. - Baseline (2026-07-22): prod-alfa disk 48%/RAM 40%, pg-alfa disk 10%/pg-conn ~91/500 — vše hluboko pod prahy.
- Pozn.:
attack-report.pytop-attacker nově vylučuje sentinel+infra+Tailscale+Anthropic (byl false-positive při deploy aktivitě).