A central Grafana + Loki stack (on beta) fed by a Grafana Alloy agent on every node, replacing the old SSH-tailed single-host scripts/dashboard.py. - docker-compose.yml: central Loki (mesh-only :3100) + Grafana (Caddy-fronted) - loki/config.yml: single-binary, filesystem storage, 30-day retention - alloy/config.alloy + docker-compose.agent.yml: per-node collector — every container's stdout/stderr via the Docker socket, Caddy host logs, and the app's structured JSON logs (errors/access/audit), each line tagged by node - grafana/: auto-provisioned Loki datasource + a fleet-logs dashboard (volume by service, error rate, upstream 429s, Caddy 5xx, notifier liveness, live tail), with a per-node selector - caddy-grafana.conf, README, .env.example
15 lines
572 B
Text
15 lines
572 B
Text
# Append to beta's /etc/caddy/Caddyfile (beta is the monitoring host), then
|
|
# `systemctl reload caddy`. Grafana publishes to 127.0.0.1:3000; this fronts it
|
|
# with TLS, same pattern as beta's other site blocks. Grafana owns its own login,
|
|
# so the UI is safe to expose publicly — but Loki (the log store, on
|
|
# 10.10.0.2:3100) is NOT proxied here and stays mesh-only.
|
|
#
|
|
# Point grafana.thermograph.org's A record at beta (75.119.132.91) first.
|
|
|
|
grafana.thermograph.org {
|
|
encode zstd gzip
|
|
reverse_proxy 127.0.0.1:3000
|
|
log {
|
|
output file /var/log/caddy/grafana.log
|
|
}
|
|
}
|