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/
Nach dem Login sehen Sie das Dashboard:
Benutzer-, VHost- und Policy-Liste im Admin-Tab:
Warteschlangen im Queues-Tab:
Aktuelle Verbindungen:
Channels und Exchanges:
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:
- Anlegen einer Queue via Management-UI und via rabbitmqctl.
- Senden und Empfangen einer Nachricht mittels eines AMQP-Clients (z. B. pika für Python).
- Simulieren eines Consumer-Ausfalls und prüfen, ob Nachrichten an verbleibende Konsumenten zugestellt werden.
- Ü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
- Proof of Concept in isolierter Umgebung.
- Lasttests mit realistischen Durchsatzwerten.
- Monitoring (SLIs) definieren: Queue-Länge, Latenz, Consumer-Verfügbarkeit.
- 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
Ähnliche Materialien
DVDs auf PS4 abspielen – Vollständige Anleitung

iOS 26: Animationen reduzieren für Akku & Komfort

Emergency Bypass auf iPhone (iOS 17) aktivieren

WOTS deaktiviert beheben — Windows Problembehandlung reparieren

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