Technologieführer

RabbitMQ auf CentOS 7 installieren und sichern

5 min read DevOps Aktualisiert 20 Oct 2025
RabbitMQ auf CentOS 7 installieren und sichern
RabbitMQ auf CentOS 7 installieren und sichern

Kurzdefinition

RabbitMQ ist ein Open-Source-Nachrichtenbroker, geschrieben in Erlang. Er implementiert AMQP (Advanced Message Queuing Protocol) und bietet Bibliotheken für gängige Programmiersprachen.

Voraussetzungen

  • Minimal installierter CentOS 7 Server
  • Root-Berechtigungen. Diese Anleitung nutzt direkte Root-Befehle. Bei sudo-Benutzer: sudo -i

Was Sie in diesem Leitfaden lernen

  • System aktualisieren
  • Erlang installieren (erforderlich für RabbitMQ)
  • RabbitMQ RPM installieren und starten
  • Firewall- und SELinux-Regeln anpassen
  • Web-Management aktivieren und Admin-Benutzer anlegen
  • Sicherheits-Checklist, Testfälle und Produktions-Readiness

Wichtig: Verwenden Sie in Produktionsumgebungen stets sichere Passwörter, eingeschränkte Benutzerkonten und TLS für Netzwerkverbindungen.

System aktualisieren

Aktualisieren Sie zuerst alle Pakete und Repositories.

yum -y update

Führen Sie nach Abschluss der Aktualisierung die Installation von Erlang durch.

Erlang installieren

RabbitMQ läuft auf der Erlang-Laufzeitumgebung. Erlang ist nicht immer im Standard-YUM-Repository enthalten. Installieren Sie daher EPEL und aktualisieren Sie anschließend.

yum -y install epel-release

yum -y update

Installieren Sie Erlang und socat (nützlich bei Netzwerktests):

yum -y install erlang socat

Überprüfen Sie die installierte Erlang-Version:

erl -version

Beispielausgabe:

[root@liptan-pc ~]# erl -version
Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4

Wechseln Sie in die Erlang-Shell:

erl

Beenden: drücken Sie zweimal Strg+C.

RabbitMQ installieren

RabbitMQ wird als vorkompiliertes RPM für Enterprise-Linux-Systeme angeboten. Laden Sie das Paket herunter (Pfad zur Version kann variieren):

wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm

Wenn wget fehlt:

yum -y install wget

Importieren Sie den GPG-Schlüssel von RabbitMQ:

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

Installieren Sie das RPM:

rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm

Hinweis: Alternativ können Sie das offizielle Repository von RabbitMQ einrichten, um Updates per yum zu erhalten. Vorteile: einfache Updates, Abhängigkeits-Management. Nachteile: eventuell neuere Erlang-Versionen erforderlich.

RabbitMQ starten und aktivieren

Starten Sie den Dienst:

systemctl start rabbitmq-server

Automatischen Start bei Boot aktivieren:

systemctl enable rabbitmq-server

Status prüfen:

systemctl status rabbitmq-server

Beispielausgabe (gekürzt):

? rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-07-15 18:59:14 UTC; 3min 22s ago
 Main PID: 29006 (beam.smp)
   Status: "Initialized"

Firewall- und SELinux-Regeln anpassen

Standardports, die RabbitMQ und zugehörige Plugins verwenden können:

  • 4369/tcp (Erlang-Portmapper)
  • 25672/tcp (Cluster-Kommunikation)
  • 5671-5672/tcp (AMQP über TLS / ohne TLS)
  • 15672/tcp (Web-Management-Plugin)
  • 61613-61614/tcp (STOMP)
  • 1883/tcp (MQTT)
  • 8883/tcp (MQTT über TLS)

Beispielbefehle mit firewalld:

firewall-cmd --zone=public --permanent --add-port=4369/tcp
firewall-cmd --zone=public --permanent --add-port=25672/tcp
firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
firewall-cmd --zone=public --permanent --add-port=15672/tcp
firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
firewall-cmd --zone=public --permanent --add-port=1883/tcp
firewall-cmd --zone=public --permanent --add-port=8883/tcp

firewall-cmd --reload

SELinux: Falls aktiviert, erlauben Sie den Zugriff für notwendige Dienste. Ein Beispiel (vereinfachend):

setsebool -P nis_enabled 1

Hinweis: Prüfen Sie audit-Logs und passen Sie SELinux-Kontexte spezifisch an. Das permanente Aktivieren von nis_enabled ist eine breite Regel; bevorzugen Sie gezielte Booleans wenn möglich.

Web-Verwaltung aktivieren und Admin anlegen

Aktivieren Sie das Management-Plugin:

rabbitmq-plugins enable rabbitmq_management

Stellen Sie sicher, dass RabbitMQ-Dateien dem rabbitmq-Benutzer gehören:

chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/

Erstellen Sie einen Admin-Benutzer (ersetzen Sie Namen und Passwort):

rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

Öffnen Sie in Ihrem Browser:

http://Your_Server_IP:15672/

Login-Seite der RabbitMQ-Verwaltungskonsole

Nach dem Login sehen Sie das Dashboard:

Übersichtsseite des RabbitMQ-Dashboards

Benutzer-, VHost- und Policy-Liste im Admin-Tab:

Benutzerliste in der RabbitMQ-Verwaltung

Warteschlangen im Queues-Tab:

Liste der Queues im RabbitMQ-Management

Aktuelle Verbindungen:

Aktive Verbindungen in RabbitMQ

Channels und Exchanges:

Exchanges-Übersicht in RabbitMQ

Hinweis: Löschen Sie den Gast-Benutzer (guest) für produktive Systeme oder schränken Sie dessen Rechte sofort ein.

Sicherheits- und Produktions-Checklist

  • Verwenden Sie TLS für AMQP (5671) und HTTPS für das Management-Plugin.
  • Erstellen Sie dedizierte Benutzer mit minimalen Rechten und entfernen Sie guest.
  • Aktivieren Sie Firewall und begrenzen Sie Zugriff auf bekannte Hosts oder VPNs.
  • Härtung: Kernel-Parameter, SSH-Zugriff einschränken, regelmäßige Updates.
  • Backups: Exportieren Sie Policies, VHosts, Benutzer und persistente Queues regelmäßig.
  • Monitoring: Metriken (Queues, Consumer Count, Unacknowledged Messages) erfassen.

Testfälle und Abnahme

Kriterien für die Abnahme:

  • RabbitMQ Dienst ist aktiv und startet beim Boot.
  • Management-UI erreichbar auf Port 15672.
  • Admin-User kann sich anmelden und Queues anlegen.
  • AMQP-Client kann Nachrichten senden und empfangen.
  • TLS-Verbindungen akzeptieren gültige Zertifikate.

Kurze Testfälle zum Durchführen:

  1. Anlegen einer Queue via Management-UI und via rabbitmqctl.
  2. Senden und Empfangen einer Nachricht mittels eines AMQP-Clients (z. B. pika für Python).
  3. Simulieren eines Consumer-Ausfalls und prüfen, ob Nachrichten an verbleibende Konsumenten zugestellt werden.
  4. Überprüfen der Logs auf Fehler (journalctl -u rabbitmq-server).

Troubleshooting kurze Anleitung

  • Dienst startet nicht: journalctl -u rabbitmq-server –no-pager
  • Prüfen Sie Erlang-Version; inkompatible Erlang-Versionen verursachen Startfehler.
  • Ports belegt: ss -tulnp | grep 5672
  • Plugins deaktivieren: rabbitmq-plugins disable

Alternative Installationswege

  • Verwenden Sie offizielle YUM-Repositories von RabbitMQ für automatische Updates.
  • Benutzen Sie Container-Images (Docker) für isolierte Deployments.
  • Paketmanager (dnf für neuere RHEL/CentOS-Versionen) verwenden.

Migrations- und Versionshinweise

  • Prüfen Sie Kompatibilität zwischen Erlang-Release und RabbitMQ-Version. Major-Updates erfordern häufig eine abgestimmte Erlang-Version.
  • Vor Upgrade: Backups der Definitions (rabbitmqctl export_definitions) und Persistenzdaten anfertigen.

Rolle-basierte Checkliste

  • Administrator: Benutzer, Berechtigungen, Policies anlegen, Backups planen.
  • DevOps: Systemd-Unit anpassen, Monitoring/Alerting integrieren, TLS-Zertifikate verwalten.
  • Entwickler: Queues/Exchanges designen, Retry-Strategien implementieren, idempotente Consumer schreiben.

Kurze Methodologie für Produktions-Readiness

  1. Proof of Concept in isolierter Umgebung.
  2. Lasttests mit realistischen Durchsatzwerten.
  3. Monitoring (SLIs) definieren: Queue-Länge, Latenz, Consumer-Verfügbarkeit.
  4. Rollout in Stufen, mit Backout-Plan.

Kurze Cheat-Sheet Befehle

  • Start: systemctl start rabbitmq-server
  • Status: systemctl status rabbitmq-server
  • Enable-Plugin: rabbitmq-plugins enable rabbitmq_management
  • User anlegen: rabbitmqctl add_user
  • Permissions setzen: rabbitmqctl set_permissions -p / “.“ “.“ “.*”

Datenschutz und Compliance Hinweise

Wenn Nachrichten personenbezogene Daten enthalten: Verschlüsseln Sie Inhalte, minimieren Sie Aufbewahrungsfristen und dokumentieren Sie Datenflüsse für DSGVO-Konformität.

Fazit

Mit den obenstehenden Schritten richten Sie RabbitMQ auf CentOS 7 zuverlässig ein. Achten Sie vor allem auf Erlang-Kompatibilität, abgesicherte Netzwerke, TLS und ein Monitoring-Konzept. Testen Sie Funktionalität und Performance, bevor Sie in Produktion gehen.

Zusammenfassung der nächsten Schritte:

  • System aktualisieren und Erlang installieren
  • RabbitMQ installieren, starten und Management aktivieren
  • Firewall/SELinux anpassen und Admin-User anlegen
  • Sicherheits-Checklist abarbeiten und Testfälle durchlaufen
Autor
Redaktion

Ähnliche Materialien

DVDs auf PS4 abspielen – Vollständige Anleitung
Gaming

DVDs auf PS4 abspielen – Vollständige Anleitung

iOS 26: Animationen reduzieren für Akku & Komfort
iOS

iOS 26: Animationen reduzieren für Akku & Komfort

Emergency Bypass auf iPhone (iOS 17) aktivieren
How-to

Emergency Bypass auf iPhone (iOS 17) aktivieren

WOTS deaktiviert beheben — Windows Problembehandlung reparieren
Support

WOTS deaktiviert beheben — Windows Problembehandlung reparieren

Netflix-Abo kündigen – Anleitung für alle Geräte
Streaming

Netflix-Abo kündigen – Anleitung für alle Geräte

Twitter/X: Fehler „Etwas ist schiefgelaufen“ beheben
Fehlerbehebung

Twitter/X: Fehler „Etwas ist schiefgelaufen“ beheben