RabbitMQ ist ein Open-Source-Nachrichtenbroker, der die Kommunikation zwischen verteilten Systemen über Message-Queues ermöglicht. Das System basiert auf dem Advanced Message Queuing Protocol (AMQP), um eine zuverlässige und asynchrone Nachrichtenübertragung sicherzustellen. Mit Unterstützung für verschiedene Kommunikationsmuster wie Publish/Subscribe, Request/Reply und Punkt-zu-Punkt bietet RabbitMQ zudem Funktionen für Ausfallsicherheit, Sicherheit und dauerhafte Speicherung. Diese Eigenschaften machen es zu einer stabilen Lösung für leistungsstarke Anwendungen.
In dieser Anleitung erfahren Sie, wie Sie RabbitMQ unter FreeBSD 14.0 installieren und die webbasierte Administrationsoberfläche zur Verwaltung von Queues nutzen.
Voraussetzungen
Stellen Sie vor der Installation sicher, dass Sie folgende Schritte abgeschlossen haben:
- Eine FreeBSD 14.0-Instanz eingerichtet haben
- Einen A-Eintrag für Ihre Domain zur öffentlichen IP der Instanz angelegt haben
- Per SSH auf die Instanz zugegriffen haben
- Einen Nicht-Root-Benutzer mit
sudo-Rechten angelegt und zu diesem gewechselt haben
Passende Infrastruktur bei centron
Absicherung endet nicht beim Server: Cloud Firewalls filtern den Datenverkehr vor der VM – zentral verwaltet, ohne Aufpreis je Regel. Cloud Firewalls ansehen →
RabbitMQ unter FreeBSD 14.0 installieren
RabbitMQ ist in den offiziellen FreeBSD 14.0-Paketquellen verfügbar. Alternativ können Sie es über das Ports-System oder als generisches Binary installieren. Die nachfolgenden Schritte zeigen die Installation über den Paketmanager pkg.
Paketindex aktualisieren
$ sudo pkg updateRabbitMQ-Paket installieren
$ sudo pkg install -y rabbitmqDienst für Autostart aktivieren
$ sudo sysrc rabbitmq_enable=YESRabbitMQ-Dienst starten
$ sudo service rabbitmq startStatus des RabbitMQ-Dienstes überprüfen
$ sudo service rabbitmq statusBeispielausgabe:
Status des Knotens ......
Laufzeit
OS PID: 1283
Betriebssystem: FreeBSD
Laufzeit (Sekunden): 7
Wartungsmodus: false
Listener
Interface: [::], Port: 25672, Protokoll: clustering, Zweck: Kommunikation zwischen Knoten und CLI
Interface: [::], Port: 5672, Protokoll: amqp, Zweck: AMQP 0-9-1 und AMQP 1.0
Interface: 0.0.0.0, Port: 5672, Protokoll: amqp, Zweck: AMQP 0-9-1 und AMQP 1.0
Wenn Sie eine alternative Einrichtung bevorzugen, können Sie auch eine Anleitung zur Installation von RabbitMQ auf Ubuntu verwenden, um Ihre Messaging-Workloads zu optimieren.
RabbitMQ einrichten
Obwohl RabbitMQ standardmäßig über die Kommandozeile bedient werden kann, bietet das Webinterface eine komfortable Oberfläche zur Verwaltung von Knoten und Queues. Die folgenden Schritte aktivieren das Webinterface und richten ein Administratorkonto ein.
Management-Plugin aktivieren
$ sudo rabbitmq-plugins enable rabbitmq_managementAusgabe:
Aktivieren von Plugins auf dem Knoten rabbit@centron:
rabbitmq_management
Folgende Plugins wurden konfiguriert:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Übernehme Konfiguration für rabbit@centron...
Folgende Plugins wurden aktiviert:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
3 Plugins gesetzt.
Offline-Änderung; wirksam nach Neustart des Brokers.
Admin-Benutzer anlegen
$ sudo -u rabbitmq rabbitmqctl add_user admin strong_passwordAusgabe:
Benutzer „admin“ wird hinzugefügt ...
Fertig. Denken Sie daran, diesem Benutzer Berechtigungen für virtuelle Hosts zu geben! Nutzen Sie ‘rabbitmqctl help set_permissions’ für Details.
Administratorrechte zuweisen
$ sudo -u rabbitmq rabbitmqctl set_user_tags admin administratorAusgabe:
Setze Benutzer-Tags für „admin“ auf [administrator] ...
Vollzugriff gewähren
$ sudo -u rabbitmq rabbitmqctl set_permissions admin ".*" ".*" ".*"Das Muster ".*" in diesem Befehl ist ein regulärer Ausdruck, der vollen Zugriff auf alle Operationen wie Konfiguration, Schreiben und Lesen gewährt.
RabbitMQ neu starten
$ sudo service rabbitmq restartAusgabe:
Beende rabbitmq.
Starte rabbitmq.
RabbitMQ unter FreeBSD 14.0 mit Nginx und SSL absichern
Standardmäßig ist die Weboberfläche von RabbitMQ über Port 15672 erreichbar. Um die Sicherheit zu erhöhen, empfiehlt es sich, den Zugriff über einen Reverse Proxy zu leiten und die Verbindung per SSL zu verschlüsseln. Im Folgenden findest du die Schritte zur Einrichtung von Nginx als Reverse Proxy und zur Konfiguration der IPFW-Firewall für SSH-, HTTP- und HTTPS-Zugriff.
Standard-Gastbenutzer entfernen
$ sudo -u rabbitmq rabbitmqctl delete_user guestAusgabe:
Benutzer „guest“ wird gelöscht ...
Nginx installieren und aktivieren
$ sudo pkg install -y nginx$ sudo sysrc nginx_enable=yesVerzeichnis für virtuelle Hosts erstellen
$ sudo mkdir /usr/local/etc/nginx/conf.dVirtuellen Host konfigurieren
$ sudo vi /usr/local/etc/nginx/conf.d/app.example.com.confFüge folgenden Inhalt ein und ersetze app.example.com mit deiner Domain:
server {
listen 80;
listen [::]:80;
server_name app.example.com;
location / {
proxy_pass http://localhost:15672;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
}Diese Konfiguration erstellt einen virtuellen Host, der auf Port 80 lauscht und Anfragen an die RabbitMQ-Weboberfläche weiterleitet.
Hauptkonfiguration von Nginx anpassen
$ sudo vi /usr/local/etc/nginx/nginx.confFüge vor der schließenden geschweiften Klammer } folgende Zeile ein:
include conf.d/*;Diese Anweisung sorgt dafür, dass Nginx zusätzliche Konfigurationen aus dem conf.d-Verzeichnis lädt.
Nginx-Konfiguration prüfen und anwenden
$ sudo nginx -tAusgabe:
nginx: die Konfigurationsdatei /usr/local/etc/nginx/nginx.conf ist syntaktisch korrekt
nginx: Konfigurationstest erfolgreich
$ sudo service nginx restartAusgabe:
Sanity-Check der nginx-Konfiguration wird durchgeführt:
nginx: die Konfigurationsdatei /usr/local/etc/nginx/nginx.conf ist syntaktisch korrekt
nginx: Konfigurationstest erfolgreich
nginx wird gestartet.
Certbot für SSL-Verschlüsselung installieren
$ sudo pkg install -y security/py-certbot security/py-certbot-nginxSSL-Zertifikat mit Certbot generieren
Ersetze app.example.com und hello@example.com durch deine echte Domain und E-Mail-Adresse:
$ sudo certbot --nginx -d app.example.com -m hello@example.com --agree-tosWöchentliche Zertifikatserneuerung aktivieren
$ echo weekly_certbot_enable="YES" | sudo tee -a /etc/periodic.confIPFW-Firewall unter FreeBSD einrichten
Firewall beim Systemstart aktivieren
$ sudo sysrc firewall_enable="YES"Ausgabe:
firewall_enable: NO -> YES
Ausgaben beim Laden unterdrücken
$ sudo sysrc firewall_quiet="YES"Ausgabe:
firewall_quiet: NO -> YES
Firewall-Typ auf Workstation setzen
$ sudo sysrc firewall_type="workstation"Ausgabe:
firewall_type: UNKNOWN -> workstation
Zugriff auf Standarddienste erlauben
$ sudo sysrc firewall_myservices="ssh/tcp http/tcp https/tcp"Ausgabe:
firewall_myservices: -> ssh/tcp http/tcp https/tcp
Zugriff von allen IPs erlauben
$ sudo sysrc firewall_allowservices="any"Firewall-Dienst starten
$ sudo service ipfw startZugriff auf die RabbitMQ-Weboberfläche
Um Queues und Knoten auf deinem RabbitMQ-Server zu verwalten, befolge die folgenden Schritte zum Öffnen der webbasierten Administrationsoberfläche.
Öffne in einem Browser wie Chrome deine RabbitMQ-Domain (z. B. rabbitmq.example.com):
Sobald die Seite geladen ist, stelle sicher, dass das RabbitMQ-Loginfenster angezeigt wird. Gib dort die zuvor eingerichteten Administrator-Zugangsdaten ein, um dich anzumelden.
Nach erfolgreicher Anmeldung kannst du über die RabbitMQ-Oberfläche Aufgaben rund um Queue-Management und Knotensteuerung durchführen.
Fazit
Du hast RabbitMQ erfolgreich auf FreeBSD 14.0 eingerichtet und die Benutzeranmeldung sicher konfiguriert. Als leistungsstarker Nachrichtenbroker lässt sich RabbitMQ flexibel in Anwendungslandschaften integrieren, um Queue-basierte Arbeitslasten effizient zu verarbeiten. Weitere Informationen und Konfigurationsmöglichkeiten findest du in der offiziellen RabbitMQ-Dokumentation.
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.