Skip to content

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 (systemd s60-metrics, port 9100)
  • Agent: /opt/metrics/agent.sh (cron */1 na 7 serverech)
  • Storage: /opt/metrics/metrics.db (SQLite, 7 dní retence)
  • API:
  • GET /metrics/api/metrics/current
  • GET /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í

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-alfa pg_stat_activity vs max_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, state host-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.py top-attacker nově vylučuje sentinel+infra+Tailscale+Anthropic (byl false-positive při deploy aktivitě).