RabbitMQ auf FreeBSD 14.0 installieren und einrichten
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
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 update
RabbitMQ-Paket installieren
$ sudo pkg install -y rabbitmq
Dienst für Autostart aktivieren
$ sudo sysrc rabbitmq_enable=YES
RabbitMQ-Dienst starten
$ sudo service rabbitmq start
Status des RabbitMQ-Dienstes überprüfen
$ sudo service rabbitmq status
Beispielausgabe:
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_management
Ausgabe:
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_password
Ausgabe:
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 administrator
Ausgabe:
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 restart
Ausgabe:
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 guest
Ausgabe:
Benutzer „guest“ wird gelöscht …
Nginx installieren und aktivieren
$ sudo pkg install -y nginx
$ sudo sysrc nginx_enable=yes
Verzeichnis für virtuelle Hosts erstellen
$ sudo mkdir /usr/local/etc/nginx/conf.d
Virtuellen Host konfigurieren
$ sudo vi /usr/local/etc/nginx/conf.d/app.example.com.conf
Fü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.conf
Fü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 -t
Ausgabe:
nginx: die Konfigurationsdatei /usr/local/etc/nginx/nginx.conf ist syntaktisch korrekt
nginx: Konfigurationstest erfolgreich
$ sudo service nginx restart
Ausgabe:
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-nginx
SSL-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-tos
Wöchentliche Zertifikatserneuerung aktivieren
$ echo weekly_certbot_enable="YES" | sudo tee -a /etc/periodic.conf
IPFW-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 start
Zugriff 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.