Runbook: Grafana dashboardy
Přehled
- Server: Argus (100.110.6.46)
- URL: http://100.110.6.46:3000 (Tailscale only)
- Dashboardy jako kód:
/root/projects/sentinel/monitoring/grafana/dashboards/ - Provisioning config:
/root/projects/sentinel/monitoring/grafana/provisioning/dashboards/default.yml
Dashboardy
| Dashboard | Soubor | Popis |
|---|---|---|
| Server Overview | node-overview.json |
CPU, Memory, Disk, Network, Load |
| HTTP Uptime | http-uptime.json |
Endpoint status, response time, SSL expiry |
Provisioning — jak to funguje
Grafana čte dashboardy ze souborů pomocí provisioning YAML:
# default.yml
apiVersion: 1
providers:
- name: 'S60 Dashboards'
orgId: 1
folder: 'Studio60'
type: file
updateIntervalSeconds: 30
options:
path: /var/lib/grafana/dashboards
Dashboard JSON soubory se synchronizují z gitu na Argus.
Deploy dashboardů
# 1. Rsync dashboardy na Argus
rsync -az /root/projects/sentinel/monitoring/grafana/dashboards/ \
root@100.110.6.46:/var/lib/grafana/dashboards/
# 2. Rsync provisioning config
rsync -az /root/projects/sentinel/monitoring/grafana/provisioning/ \
root@100.110.6.46:/etc/grafana/provisioning/
# 3. Restart Grafana (pokud se změnil provisioning config)
ssh root@100.110.6.46 "systemctl restart grafana-server"
Formát dashboard JSON
DŮLEŽITÉ: File provisioning vyžaduje root-level dashboard objekt. NE wrapper {"dashboard": {...}}:
Pokud je dashboard zabalený v {"dashboard": {...}}, Grafana ho odmítne s chybou "title cannot be empty".
Přidání nového dashboardu
- Vytvořit JSON v
/root/projects/sentinel/monitoring/grafana/dashboards/ - Dashboard musí mít unikátní
uidatitle - Rsync na Argus (viz Deploy dashboardů)
- Grafana automaticky načte nový soubor do 30s
Prometheus
- URL: http://100.110.6.46:9090
- Config:
/etc/prometheus/prometheus.ymlna Argusu - Datasource UID: automaticky generovaný (NESPECIFIKOVAT vlastní — způsobuje konflikty)
Známé problémy (2026-03-14)
- Prometheus targets: některé IP mohou být zastaralé (sentinel, hub-alfa) — ověřit v Prometheus UI
- Prometheus scrape config nemá prod-alfa — přidat
- Dashboardy se resetují pokud někdo smaže grafana.db — proto provisioning jako kód
Diagnostika
# Stav Grafany
ssh root@100.110.6.46 "systemctl status grafana-server"
# Grafana logy
ssh root@100.110.6.46 "journalctl -u grafana-server --since '1h ago' | tail -50"
# Provisioning logy (hledej errors)
ssh root@100.110.6.46 "journalctl -u grafana-server | grep -i 'provisioning\|dashboard\|error'"
# Ověřit soubory na místě
ssh root@100.110.6.46 "ls -la /var/lib/grafana/dashboards/"