Zum Hauptinhalt springen

Better Stack — Status & Uptime für CockpitOS

Öffentliche Verfügbarkeit von Dashboard, Center-API, MCP, Center-Websites und Neben-Apps über Better Stack Uptime überwachen und optional unter status.cockpit-os.de kommunizieren.

1. Richtiger API-Token

Nicht jeder Token unter „API tokens“ funktioniert für Uptime:

  1. Better Stack → Settings → API tokens → Team-based tokens
  2. Euer Team wählen
  3. Unter Uptime API tokens einen Token erzeugen oder kopieren

Alternativ: Global API Token (Global API tokens) — dann bei API-Calls ggf. team_name mitgeben.

Token niemals ins Git committen. Nur lokal als Umgebungsvariable:

export BETTERSTACK_UPTIME_TOKEN='…'

Token im Chat/Slack geleakt? Sofort widerrufen und neu erzeugen.

2. Monitore per Skript (empfohlen)

Im Repo-Root:

export BETTERSTACK_UPTIME_TOKEN='…'
chmod +x scripts/betterstack-setup-monitors.sh
./scripts/betterstack-setup-monitors.sh

Dry-run:

BETTERSTACK_DRY_RUN=1 ./scripts/betterstack-setup-monitors.sh

Das Skript legt (falls noch nicht vorhanden) Checks an u. a. für:

KomponenteURL
Dashboardhttps://dashboard.cockpit-os.de
Öffentliche Center-API…/api/centers/by-slug/gutenberg-center-mainz
MCP Remotehttps://mallos-mcp-cockpit.onrender.com/health
Center-Website (Beispiel)https://gutenberg-center-mainz.cockpit-os.de
Center Managerhttps://manager.cockpit-os.de
Digital Signagehttps://signage.cockpit-os.de

Region: EU (regions: ["eu"]), Intervall standard 60 s.

Weitere Center-Domains bei Bedarf im Better-Stack-UI oder im Skript ergänzen.

3. Status Page im UI

  1. Better Stack → Status pages → Create
  2. Company name: CockpitOS (oder SMG Mall OS)
  3. Subdomain: z. B. cockpitos → vorübergehend cockpitos.betteruptime.com
  4. Design: v2, Theme nach CI
  5. Monitors aus Schritt 2 als Komponenten zuweisen (Gruppen z. B. „Plattform“, „Center-Websites“, „Integrationen“)
  6. Subscribe aktivieren (E-Mail/RSS), damit Center IT Updates abonnieren kann

4. Custom Domain status.cockpit-os.de

  1. In der Status Page: Custom domain = status.cockpit-os.de
  2. Beim DNS-Provider (cockpit-os.de): CNAME wie von Better Stack angezeigt (typisch Richtung statuspage.betteruptime.com / status.betteruptime.com — exakten Wert aus dem Dashboard übernehmen)
  3. SSL wird von Better Stack ausgestellt (Propagation kann dauern)

Wichtig: *.cockpit-os.de zeigt auf die Center-Website (Render). Der spezifische Eintrag status.cockpit-os.de → CNAME statuspage.betteruptime.com muss beim DNS-Provider zusätzlich existieren und hat Vorrang vor dem Wildcard. Ohne diesen Eintrag landet status als Center-Slug auf der Mall-Website („Center nicht gefunden“).

Prüfen (nach Propagation, TTL ca. 1 h):

dig @8.8.8.8 status.cockpit-os.de CNAME +short
# → statuspage.betteruptime.com.

curl -sI https://status.cockpit-os.de/ | head -3
# Link-Header mit /assets/public_status_pages… = Better Stack (nicht Next.js/_next/static)

5. Alerts

  • E-Mail: bei Monitoren standardmäßig an (Skript)
  • Slack / Teams: Better Stack → Integrations → Notification channel → an Monitore oder Escalation Policy hängen
  • PagerDuty: nur wenn ihr On-Call habt

Render selbst hat keine Logo-Integration im Onboarding — das ist normal; Render-Services werden über HTTPS-URLs (Custom Domain oder *.onrender.com) geprüft.

6. Was wir bewusst nicht automatisch messen

  • PostgreSQL / Redis auf Render — keine öffentliche URL; interne Alerts über Render Dashboard oder später OTel (z. B. Dash0)
  • Einzelne Center-Custom-Domains — nach Bedarf manuell hinzufügen (Kurpfalz, Rathaus Galerie, …)

Siehe auch

Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /developer-guide/better-stack-status-setup