Multi-Mandanten-OpenClaw auf einer monolithischen Datei endet schnell im Totalausfall: ein falscher Schlüssel propagiert überall. Auf clustervps lohnt Mandanten-Fragmente splitten, Artefakte deterministisch mergen, Versionen pinnen, Health-Probes mit doctor zu einem Signal bündeln und Webhook-Fehler als Digest zu broadcasten — damit lassen sich Installation, Orchestrierung und Troubleshooting in ein überschaubares 15-Minuten-Playbook pressen.

Dieser Artikel ergänzt OpenClaw Multi-AZ-Gateways, Probes & Webhooks: dort geht es um Topologie und Traffic, hier um Verzeichnisdisziplin, Lockfiles und zusammengeführte Observability innerhalb einer Mandantengrenze. Für Artefakt-Fan-out und rsync-Entscheidungen siehe Mac mini M4 Multi-Region: rsync-Matrix; den vollständigen Index finden Sie im Tech-Blog.

Verzeichnis-Konventionen

Auf jedem dedizierten Mac ein fixes Skelett: /usr/local/openclaw/tenants/<tenant>/fragments/*.yaml enthält ausschließlich vom Mandanten editierbare Fragmente; /var/lib/openclaw/merged nimmt das Merge-Artefakt plus SHA256-Prüfsumme auf; /var/log/openclaw sammelt strukturierte JSON-Zeilen und Webhook-Retry-Fingerprints. Merge-Skripte schreiben immer zuerst in eine Temp-Datei und finalisieren per mv, damit launchd niemals halbes YAML einliest.

Installation: zuerst einen Einzelmandanten durchspielen — Merge-Output gegen die tatsächlichen OpenClaw-Startflags validieren, erst dann das Skelett auf den zweiten Knoten klonen. Orchestrierung: Fragment-Sätze per Mandanten-Label auswählen; direkte Handänderungen im merged-Pfad sind tabu. Troubleshooting: Checksumme mit Merge-Log abgleichen und die finalen Schlüssel prüfen; Syntaxfehler in Fragmenten müssen den Merge mit Exit-Code ≠ 0 beenden und Reloads blockieren.

Halten Sie Pfade über alle Mac-Knoten identisch, damit dieselben SSH-Runbooks funktionieren und Observability-Dashboards nicht pro Region neu erfunden werden müssen. Dokumentieren Sie ausdrücklich, welche Rollen (Gateway, Notifier, Worker) welche Verzeichnisse beschreiben dürfen — sonst wandert „nur schnell ein Hotfix“ wieder in die Monolith-Datei zurück.

Versions-Pinning

Im Repo- bzw. Config-Repository-Root eine versions.lock pflegen: OpenClaw-Binär-Digest, Sidecar-Image-Tags (oder Digests) und den Git-SHA des Merge-Skripts. CI vergleicht vor jedem Push zu clustervps; Drift ist nur über Canary-Mac → gesamter Verbund erlaubt.

Upgrade-Tag: Fragment-Commits einfrieren, auf einem Mac doctor plus zusammengesetzte Probe fahren, zwanzig Minuten Error-Budget beobachten, dann Lockfile bumpen und rollierende Restarts auslösen. Selbst reine Webhook-Partner-URL-Fixes bekommen eine Revisionsnummer im Lockfile — sonst entstehen stille Schiefstände zwischen Knoten. Speicher- und SSD-Puffer planen Sie über den Tarifkatalog, bevor Digest-Queues wachsen dürfen.

Health-Probes und Doctor mergen

Nach außen nur /healthz/composite: die Handler-Kette prüft nacheinander Disk-Druck, launchd-Units, OpenClaws eingebautes doctor (Semantik, Upstream-Abhängigkeiten, ausgehendes Webhook-TLS) sowie Queue-Tiefe — eine JSON-Antwort mit tenant, az und einem Array von Teilchecks. Load Balancer und Monitoring rufen genau diese URL auf und vermeiden das klassische „alles grün, Produktion rot“-Szenario.

Webhook-Fehler-Digests hängen an derselben Observability-Linie: Gateways schreiben strukturierte Fehler in eine lokale Queue oder Datei-Tail; der Notifier-Knoten dedupliziert innerhalb eines Fünf-Minuten-Fensters nach HTTP-Status und Mandant und schiebt genau eine Slack- oder Mail-Zusammenfassung. Die zusammengesetzte Probe liefert degraded, wenn Digest-Queues stauen oder Backpressure die Schwelle reißt — Traffic kann weiterlaufen, aber das Dashboard wird gelb.

#!/usr/bin/env bash
set -euo pipefail
/usr/bin/openclaw doctor --tenant "${TENANT}" --json >"/tmp/d.json"
/usr/bin/curl -fsS --max-time 4 "${WEBHOOK_PING_URL}" >/dev/null
/usr/bin/printf '{"tenant":"%s","doctor_ok":true,"webhook_ok":true,"queue_depth":0}\n' "${TENANT}"

Gleiche Pfade auf jedem Knoten erzwingen identische SSH-Playbooks; Screenshots im Hilfe-Center bleiben damit gültig.

Token-Rotation

Webhook-Bearer und mTLS-Client-Zertifikate getrennt lagern: Mandanten-Token-Pfade stehen in den Fragmenten, Klartext kommt aus dem Knoten-Secret-Store — das Merge-Artefakt referenziert nur Pfade. Rotation startet mit Shadow-Credentials auf einem Canary-Mac; nach zwei erfolgreichen Poll-Zyklen für ausgehende Calls und Digest-Publishing promoten Sie per Konfigurations-Revision auf den gesamten Verbund.

Reader-Prozesse nutzen kurzlebige Dateien plus atomares rename, damit niemals halbe Secrets gelesen werden. Vor dem Widerruf mindestens zwölf Stunden Überlappung einplanen und Akteur plus Ticket-ID im Audit-Log festhalten. Öffentliche Webhooks monatlich rotieren, Intranet quartalsweise — bei Leak-Verdacht sofort alle Mandanten und per grep prüfen, ob merged noch alte Pfade referenziert.

Schritt-für-Schritt-Checkliste

  1. Drei clustervps-Mac-Knoten bereitstellen (minimal zwei Gateways plus ein Notifier — der Notifier darf zeitweise ein Laptop sein).
  2. Mandanten-Fragmente und Merge-Skripte anlegen; Ausgabe merged/openclaw.yaml plus .sha256; openclaw validate (oder Projekt-Äquivalent) muss Syntaxfehler vor dem Rollout stoppen.
  3. versions.lock schreiben und in CI diffen; nach Installation auf dem ersten Knoten doctor plus manuellen Webhook-Ping fahren.
  4. Zusammengesetzte Probe deployen und sicherstellen, dass der Load Balancer nur einen Pfad kennt; DNS gezielt kaputt ziehen, um fehlgeschlagene Teilfelder im JSON zu sehen.
  5. Notifier-Aggregation aktivieren, reproduzierbare 4xx/5xx-Tests injizieren und prüfen, dass innerhalb von fünf Minuten genau ein Digest mit Mandanten- und Korrelations-ID ankommt.
  6. Shadow-Tokens drillen: Canary erfolgreich → Fleet promoten, Legacy-Secret widerrufen, merged per grep auf Alt-Pfade prüfen.
  7. SSH-Jumps und Rollback-Schalter ins Runbook schreiben; vor dem Skalieren öffentliche Infos auf Bestellseite und Startseite abgleichen — ohne Konsolen-Login.

FAQ: typische Fehlinterpretationen

Überschreiben Merges gemeinsame Schlüssel still? Implementieren Sie „Konflikt = Fehler“, loggen Sie die finale Schlüsselreihenfolge — kein stiller Last-Write-Wins.

Wird der Load Balancer lahm, wenn doctor trödelt? Harte Timeouts und kurzlebige Cache-Felder setzen; bei Überschreitung degraded liefern statt Verbindungen hängen zu lassen.

Verliert der Digest Details? Der Digest transportiert Zähler und exemplarische URLs; vollständige Events bleiben als JSONL auf dem Knoten für gezieltes Replay.

Nur operative Orientierung. OpenClaw-Releases divergieren stark — Flags immer gegen die installierte Version prüfen. Netzzahlen hängen vom ISP ab und sind Engineering-Ziele, keine vertraglichen SLAs.
Ohne Login weiterklicken

Mac-Gateways so skalieren wie Ihre Ideen

Vergleichen Sie Tarife und Pakete, lesen Sie Kurzinfos im Hilfe-Center oder springen Sie zur Startseite — alles öffentlich, damit sich Teams abstimmen können, bevor jemand die Konsole öffnet.

Mac-Tarife ansehen Hilfe-Center öffnen