So sichern Sie einen RabbitMQ-Docker-Container (2026)
RabbitMQ sicher zu sichern heißt eine Regel befolgen: dumpen, nicht kopieren. `rabbitmqctl export_definitions /tmp/definitions.json` erzeugt einen konsistenten, wiederherstellbaren Dump aus dem laufenden Container, den restic anschließend verschlüsselt off-site ablegt. der Definitions-Export erfasst die vollständige Broker-Topologie als JSON — den dauerhaften Teil von RabbitMQ —, während der Mnesia-Nachrichtenspeicher unter Last nicht zeitpunktkonsistent ist. Alles, was /var/lib/rabbitmq/mnesia im laufenden Betrieb kopiert, riskiert ein nicht wiederherstellbares Backup.
Was Dockstash erkennt
| Erkannte Env-Keys | RABBITMQ_DEFAULT_USER, RABBITMQ_DEFAULT_PASS, RABBITMQ_DEFAULT_VHOST |
|---|---|
| Standard-Port | 5672 |
| Live-Datenpfade (nie im Betrieb kopiert) | /var/lib/rabbitmq/mnesia |
| Beispiel-Images | rabbitmq:3.13-management, rabbitmq:3-management, rabbitmq |
RabbitMQ mit Dockstash sichern, Schritt für Schritt
Dockstash-Konto anlegen und das Dashboard öffnen
Registrieren Sie sich kostenlos auf app.dockstash.com/register. Der einmalige Einrichtungsassistent fragt nach Ihrem Storage-VPS (der Maschine, die die verschlüsselten Backups aufnimmt) und generiert ein Verschlüsselungspasswort — speichern Sie es sofort in einem Passwort-Manager, es wird genau einmal angezeigt.
Das Docker-Projekt mit RabbitMQ hinzufügen
Auf dem Projects-Bildschirm erkennt Dockstash automatisch jeden Compose-Projektordner des Servers (standardmäßig unter /var/www). Wählen Sie das Projekt mit Ihrem RabbitMQ-Service. Noch wird nichts gesichert — Sie sagen Dockstash nur, wo das Projekt liegt.
Prüfen, dass RabbitMQ erkannt wurde
Öffnen Sie das Projekt und schauen Sie auf den Plan-Tab. Dockstash liest docker-compose.yml, erkennt das rabbitmq-Image und fügt eine Ebene hinzu, die die Broker-Definitionen exportiert — samt aufgelöstem Containernamen und den gefundenen Env-Keys (RABBITMQ_DEFAULT_USER, RABBITMQ_DEFAULT_PASS, RABBITMQ_DEFAULT_VHOST). Dateien, Datenbanken und Proxy-Configs lassen sich vor dem Speichern umschalten.
Optional: den Export von Hand gegenprüfen
Wenn Sie vor der Automatisierung einen Beweis wollen, führen Sie rabbitmqctl export_definitions im Container aus. Es schreibt eine JSON-Datei mit Ihrer gesamten Broker-Topologie — vhosts, Exchanges, Queues, Bindings, Benutzer und Policies. Öffnen Sie sie: Sie erkennen jede von Ihrer App deklarierte Queue wieder; dieses JSON wird gesichert.
docker exec <rabbitmq-container> rabbitmqctl export_definitions /tmp/definitions.jsonSpeicherziel bestätigen
Backups liegen als verschlüsselte restic-Snapshots auf Ihrem eigenen Storage-VPS, übertragen per SSH. Haben Sie den Assistenten abgeschlossen, ist das bereits konfiguriert; Host, Benutzer, Port oder SSH-Key ändern Sie jederzeit unter Settings → Storage.
Backup-Zeitplan festlegen
Wählen Sie im Schedule-Tab täglich, wöchentlich oder einen eigenen Cron-Ausdruck (inline validiert). Täglich reicht für die meisten Broker völlig — die Topologie ändert sich beim Deploy, nicht im Minutentakt. Ergänzen Sie einen wöchentlichen Prune-Zeitplan mit Ihrer Aufbewahrungsrichtlinie.
Das erste Backup jetzt ausführen
Klicken Sie auf Backup Now auf der Projektkarte. Dockstash führt rabbitmqctl export_definitions im laufenden Container aus und übergibt das JSON zusammen mit Ihren Projektdateien an restic — die Live-Ausgabe verfolgen Sie im Log-Panel. Definitionen exportieren sauber, während der Broker Traffic bedient; nichts wird gestoppt oder gesperrt.
Snapshot bestätigen
Nach dem Lauf zeigt die Projektkarte die neue letzte Backup-Zeit, die Snapshot-Anzahl und die Repository-Größe. Öffnen Sie den Snapshots-Bildschirm: Der Wiederherstellungspunkt erscheint in der Zeitleiste — Ihr Beweis, dass das Backup off-site angekommen ist.
Der Dump-Befehl
rabbitmqctl export_definitions /tmp/definitions.jsonDer Restore-Befehl
rabbitmqctl import_definitions /tmp/definitions.jsonder Definitions-Export erfasst die vollständige Broker-Topologie als JSON — den dauerhaften Teil von RabbitMQ —, während der Mnesia-Nachrichtenspeicher unter Last nicht zeitpunktkonsistent ist.
Ein RabbitMQ-Backup wiederherstellen und beweisen, dass es funktioniert
Ein RabbitMQ-Backup wird erst real, wenn es wiederhergestellt wurde. Dockstash-Restores überschreiben Ihren Live-Broker standardmäßig nie — Sie stellen zuerst an einen frischen Ort wieder her, prüfen die Topologie und befördern bewusst. Denken Sie daran, was Sie wiederherstellen: Das Definitions-JSON baut Ihre Topologie neu auf, nicht die Nachrichten, die in Queues lagen.
Wiederherstellungspunkt wählen
Öffnen Sie Snapshots, wählen Sie das Projekt und durchstöbern Sie die Zeitleiste. Jede Zeile enthält das exportierte Definitions-JSON — die vollständige Broker-Topologie zu jenem Moment — plus die Projektdateien desselben Laufs.
An einen neuen Ort wiederherstellen
Klicken Sie auf Restore und behalten Sie den Standardmodus „Restore to new location". Tippen Sie den Projektnamen zur Bestätigung. Definitions-JSON und Dateien landen im gewählten Zielpfad; der Live-Broker bleibt unberührt. Starten Sie einen frischen RabbitMQ-Container und führen Sie rabbitmqctl import_definitions dagegen aus.
Wiederhergestellte Topologie prüfen
Führen Sie rabbitmqctl list_queues auf dem Test-Broker aus: Es listet jeden Queue-Namen mit Nachrichtenzahl. Jede von Ihrer App deklarierte Queue muss erscheinen (die Zähler sind null — Nachrichten sind nicht Teil des Backups). Prüfen Sie Exchanges, Bindings, Benutzer und Policies genauso oder über die Management-UI.
docker exec <rabbitmq-container> rabbitmqctl list_queuesBei Erfolg befördern
Wenn die Topologie stimmt, richten Sie Producer und Consumer auf den wiederhergestellten Broker (oder wiederholen den Restore mit „Overwrite existing" — ein expliziter Opt-in). Besser: der wöchentliche Restore-Drill erbringt den Beweis automatisch.
Stolperfallen vermeiden
- Sichern Sie Broker-Definitionen (Topologie) via export_definitions — das ist der dauerhafte, wiederherstellbare Teil von RabbitMQ.
- Der Mnesia-Nachrichtenspeicher hält In-Flight-Nachrichten und ist im Betrieb nicht sicher kopierbar; behandeln Sie persistierte Nachrichten als flüchtig und lassen Sie Producer/Consumer die Wiederherstellung tragen.
- Die Wiederherstellung der Definitionen baut die Topologie neu — nicht die Nachrichten, die beim Backup in Queues lagen.
Häufige RabbitMQ-Backup-Probleme
- Symptom
- Der Restore hat „funktioniert", aber alle Queues sind leer.
- Ursache
- Definitionen und Nachrichten sind zweierlei. export_definitions erfasst Topologie — vhosts, Exchanges, Queues, Bindings, Benutzer, Policies —, nie die zum Backup-Zeitpunkt eingereihten Nachrichteninhalte.
- Lösung
- Das ist erwartet. Behandeln Sie eingereihte Nachrichten als flüchtig: Producer sollen neu publizieren, Consumer Replay tolerieren. Muss eine Nachricht einen Broker-Verlust überleben, gehört sie in eine Datenbank, nicht in eine Queue.
- Symptom
- Ein Broker, gestartet aus einer Kopie von /var/lib/rabbitmq/mnesia, stürzt ab oder startet nicht.
- Ursache
- Mnesia wird kontinuierlich geschrieben, solange der Broker läuft — eine Live-Kopie ist intern inkonsistent, und der Store ist zudem an den Knotennamen gebunden, bricht also auf einem Host mit anderem Hostnamen.
- Lösung
- Kopieren Sie Mnesia nicht als Backup. Exportieren Sie Definitionen und importieren Sie sie in einen frischen Broker; das ist der unterstützte, wiederherstellbare Weg.
- Symptom
- import_definitions in einen laufenden Broker wirft Fehler oder hinterlässt eine Mischung aus alter und neuer Topologie.
- Ursache
- Der Import merged in den Bestand — kollidierende Queue-Argumente, vorhandene Benutzer oder Policies stoßen mit JSON-Einträgen zusammen, statt sie zu ersetzen.
- Lösung
- Wenn möglich in einen frischen Broker importieren. Muss es der laufende sein: Erwarten Sie einen Merge, keinen Reset — löschen Sie kollidierende Entitäten vorher und prüfen Sie das Ergebnis mit rabbitmqctl list_queues und der Management-UI.
Mit Dockstash in einem Klick
Dockstash führt exakt den obigen Dump aus, übergibt ihn off-site an restic und drill-testet den Restore automatisch — kein Skript zu pflegen.
Zuletzt aktualisiert: July 2026
Häufig gestellte Fragen
Welchen Teil von RabbitMQ sollte ich sichern?
Die Definitionen: vhosts, Exchanges, Queues, Bindings, Benutzer und Policies. Ihr JSON-Export erfasst Ihre gesamte Broker-Topologie — genau das, was Sie nach einem Verlust zum Wiederaufbau brauchen.
Kann ich die in Queues liegenden Nachrichten sichern?
Nicht zuverlässig, solange der Broker läuft. Der Mnesia-Store ist unter Last nicht zeitpunktkonsistent, und Nachrichten sind als flüchtig gedacht. Bauen Sie Consumer, die Replay tolerieren, statt auf ein Nachrichten-Backup zu setzen.
Wie stelle ich einen RabbitMQ-Broker wieder her?
Frischen Broker hochziehen und rabbitmqctl import_definitions mit dem exportierten JSON ausführen. Die volle Topologie — Exchanges, Queues, Bindings, Benutzer, Policies — wird neu erzeugt.
Ist das Kopieren von /var/lib/rabbitmq/mnesia ein gültiges Backup?
Nein. Mnesia wird kontinuierlich geschrieben, eine Live-Kopie ist inkonsistent. Exportieren Sie stattdessen die Definitionen; das ist der unterstützte, wiederherstellbare Backup-Pfad.
Wie oft sollte ich RabbitMQ sichern?
Täglich reicht für die meisten Broker — die Definitionen ändern sich nur, wenn Sie neue Queues, Benutzer oder Policies deployen. Im Free-Tarif sind Backups manuell (Backup Now); Pro schaltet Zeitpläne bis stündlich frei, Business erlaubt jeden Cron-Ausdruck.
Wo liegen die Backups eigentlich?
Auf Ihrem eigenen Storage-VPS, als verschlüsselte restic-Snapshots per SSH übertragen. Dockstash hält Ihre Daten nie in einer Dritt-Cloud — Sie zeigen auf eine Maschine unter Ihrer Kontrolle, und das Repository ist mit einem Passwort verschlüsselt, das nur Sie besitzen.
Woher weiß ich ohne manuellen Restore, dass das Backup wiederherstellbar ist?
Planen Sie einen Restore-Drill. Dockstash stellt den neuesten Snapshot in einen isolierten Arbeitsbereich wieder her, vergleicht jede Datei byteweise mit der Quelle und parst das wiederhergestellte Definitions-JSON — dann stempelt es ein Bestanden/Fehlgeschlagen-Badge aufs Projekt. Ein wöchentlicher Drill heißt: immer frischer Beweis.