RabbitMQ Installazione · 9 min read · Dec 21, 2025

Come installare RabbitMQ Cluster su Ubuntu 22.04

RabbitMQ è un broker di messaggi gratuito e open-source. Supportando più protocolli di messaggi, RabbitMQ è il broker di messaggi più utilizzato su Internet. Supporta protocolli come AMQP, STOMP, MQTT, HTTP e WebSockets, oltre al RabbitMQ Stream.

RabbitMQ è completamente conforme allo standard JMS 1.1 ed è adatto per una varietà di scenari di sviluppo, da ambienti di distribuzione piccoli a medi e grandi.

Come broker di messaggi, RabbitMQ si colloca tra le applicazioni e consente loro di comunicare tra loro in modo asincrono, affidabile e conveniente. RabbitMQ fornisce uno storage temporaneo tra le applicazioni e protegge contro la perdita di dati.

In questo tutorial, installeremo e configureremo il server RabbitMQ tra più macchine Ubuntu 22.04. Imparerai anche come impostare un utente amministratore per RabbitMQ e configurare il mirroring delle code classiche tramite la politica HA.

Requisiti

Per completare questa guida, avrai bisogno dei seguenti requisiti:

  • Due o più server Ubuntu 22.04 - Questo esempio utilizza tre macchine Ubuntu, ‘ rabbitmq1, ‘ rabbitmq2 ‘, e ‘ rabbitmq3 ‘.
  • Un utente non root con privilegi di amministratore sudo/root.

Preparazione delle macchine

Prima di iniziare, aggiornerai e aggiornerai i repository di sistema. Quindi imposta il file /etc/hosts su ciascun server in modo che il server possa connettersi tramite il nome host di sistema.

Aggiorna e aggiorna il tuo repository di pacchetti Ubuntu tramite il comando apt qui sotto.

sudo apt update

Successivamente, modifica il file ‘ /etc/hosts ‘ tramite il comando dell’editor nano qui sotto.

sudo nano /etc/hosts

Aggiungi la seguente configurazione e assicurati di cambiare ogni indirizzo IP e nome host con i dettagli del tuo ambiente attuale.

192.168.5.21    rabbitmq1  
192.168.5.22    rabbitmq2  
192.168.5.23    rabbitmq3

Salva il file ed esci dall’editor quando hai finito. Con tutti i server Ubuntu preparati, installerai quindi RabbitMQ e configurerai il cluster.

Installazione del server RabbitMQ

Dopo aver preparato le tue macchine Ubuntu, ora sarai pronto per installare il server RabbitMQ su tutte le macchine target. Il repository predefinito di Ubuntu 22.04 fornisce l’ultima versione stabile di RabbitMQ che può essere facilmente installata tramite APT.

Esegui il comando apt qui sotto per aggiornare e aggiornare il tuo indice dei pacchetti ubuntu.

update repo

Installa RabbitMQ tramite il seguente comando apt qui sotto.

sudo apt install rabbitmq-server

Questo ti chiederà conferma, inserisci y per confermare e premi INVIO per procedere.

install rabbitmq

Dopo che RabbitMQ è stato installato, esegui il seguente comando systemctl per verificare il servizio RabbitMQ e assicurarti che il servizio sia abilitato e in esecuzione.

sudo systemctl is-enabled rabbitmq-server  
sudo systemctl status rabbitmq-server

L’output - Puoi vedere che RabbitMQ è in esecuzione ed è abilitato. RabbitMQ verrà eseguito automaticamente all’avvio.

check rabbitmq service

Ora che il server RabbitMQ è installato, abiliterai quindi il plugin RabbitMQ ‘ rabbitmq_management ‘.

Abilitazione del plugin di gestione RabbitMQ

RabbitMQ fornisce un plugin di gestione che ti consente di gestire e monitorare i nodi e i cluster RabbitMQ tramite il browser web. Il plugin ‘rabbitmq_management’ è un’API basata su HTTP con funzionalità simili allo strumento da riga di comando ‘ rabbitmqadmin ‘.

Prima di iniziare a configurare il cluster RabbitMQ, abiliterai il plugin ‘rabbitmq_management’ sulle tue macchine target.

Abilita il plugin RabbitMQ ‘rabbitmq_management’ utilizzando il seguente comando ‘ rabbitmq-plugins ‘. Il seguente comando abiliterà anche i plugin richiesti per ‘ rabbitmq_management ‘.

sudo rabbitmq-plugins enable rabbitmq_management

Successivamente, riavvia il servizio RabbitMQ per applicare le nuove modifiche e il plugin ‘ rabbitmq_management ‘ è abilitato.

sudo systemctl restart rabbitmq-server

rabbitmq_management enable

Il plugin predefinito ‘rabbitmq_management’ è ora in esecuzione sulla porta predefinita ‘ 15672 ‘. Esegui il seguente comando ss per assicurarti che la porta rabbitmq_management ‘ 15672 ‘ sia aperta.

ss -plnt

L’output - La porta rabbitmq_management è attiva e aperta.

verify port

Configurazione del firewall UFW

Dopo aver configurato e abilitato il plugin di gestione RabbitMQ, imposterai quindi il firewall UFW su tutti i sistemi. L’installazione predefinita di Ubuntu viene fornita con il pacchetto UFW installato, quindi puoi facilmente avviare e abilitare il processo del firewall UFW.

Esegui il seguente comando ufw per aggiungere il servizio OpenSSH e abilitare il firewall ufw.

sudo ufw allow OpenSSH  
sudo ufw enable

Quando ti viene chiesta conferma, inserisci y per confermare e premi INVIO per procedere. E il firewall ufw dovrebbe ora essere in esecuzione e abilitato.

enable ufw

Successivamente, apri alcune porte TCP per il cluster RabbitMQ tramite il seguente comando ufw. Quindi, ricarica il firewall ufw per applicare le nuove modifiche.

sudo ufw allow 15672/tcp  
sudo ufw allow 5672/tcp  
sudo ufw allow 4369/tcp  
sudo ufw allow 25672/tcp  
sudo ufw reload

allow ufw

Infine, esegui il seguente comando ufw per verificare che le porte RabbitMQ siano state aggiunte al firewall ufw.

sudo ufw status

L’output - Alcune porte che verranno utilizzate per il cluster RabbitMQ sono state aggiunte al firewall ufw.

verify ufw

Configurazione del cluster RabbitMQ

Dopo aver abilitato il plugin ‘ rabbitmq_management ‘ e configurato il firewall ufw, ora inizierai a creare e configurare il cluster RabbitMQ tramite il comando ‘rabbitmqctl’.

In ogni installazione di RabbitMQ, c’è un file ‘.erlang’cookie’ che è disponibile nella directory ‘/var/lib/rabbitmq’. Per configurare il cluster, devi assicurarti che tutti i nodi del cluster abbiano lo stesso file di ‘ .erlang.cookie ‘.

Per questo esempio, il ‘ rabbitmq1 ‘ sarà utilizzato come primo cluster iniziale, quindi dovrai copiare/trasferire il file ‘.erlang.cookie’ ai server ‘ rabbitmq2 ‘ e ‘ rabbitmq3 ‘.

Sul server ‘ rabbitmq1 ‘, esegui il seguente comando per verificare il file ‘ .erlang.cookie ‘ e assicurati che il file sia disponibile.

ls -lah /var/lib/rabbitmq/

Successivamente, copia/trasferisci il file ‘ .erlang.cookie ‘ ai server ‘ rabbitmq2 ‘ e ‘ rabbitmq3 ‘. Questo esempio utilizza un comando SCP per copiare il file ‘ .erlang.cookie ‘ al server ‘192.168.5.22’ e ‘192.168.5.23 ‘.

scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/  
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/

Dopo che il file ‘.erlang.cookie’ è stato copiato/trasferito, sposta la sessione del server di lavoro su ‘ rabbitmq2 ‘ e ‘ rabbitmq3 ‘.

copy erlang cookie file

Esegui il seguente comando su entrambi ‘ rabbitmq2 ‘ e ‘ rabbitmq3 ‘ per riavviare il servizio RabbitMQ e applicare le nuove modifiche. Quindi, interrompi l’applicazione RabbitMQ.

sudo systemctl restart rabbitmq-server  
sudo rabbitmqctl stop_app

Di seguito è riportato l’output dal server ‘ rabbitmq2 ‘.

Di seguito è riportato l’output dal server ‘ rabbitmq3 ‘.

Dopo di che, aggiungi i server ‘ rabbitmq2 ‘ e ‘ rabbitmq3 ‘ al cluster RabbitMQ tramite il seguente comando. Quindi, avvia l’applicazione RabbitMQ.

sudo rabbitmqctl join_cluster rabbit@rabbitmq1  
sudo rabbitmqctl start_app

Di seguito è riportato l’output quando ‘ rabbitmq2 ‘ si unisce al cluster RabbitMQ e avvia l’applicazione RabbitMQ.

rabbitmq2 join cluster

Di seguito è riportato l’output quando ‘ rabbitmq3 ‘ si unisce al cluster RabbitMQ e avvia l’applicazione RabbitMQ.

rabbitmq3 join cluster

Infine, torna al server ‘ rabbitmq1 ‘ e esegui il seguente comando per verificare lo stato del cluster RabbitMQ.

sudo rabbitmqctl cluster_status

Vedrai quindi che il cluster RabbitMQ è stato creato con tre nodi ‘ rabbitmq1 ‘, ‘ rabbitmq2 ‘ e ‘ rabbitmq3 ‘. Vedrai anche la versione attuale di RabbitMQ su ciascun nodo e lo stato di manutenzione dei nodi nel cluster.

rabbitmq cluster status

Configurazione dell’amministratore RabbitMQ

Con il cluster RabbitMQ creato, ora creerai e configurerai un nuovo utente amministratore per il server RabbitMQ tramite ‘rabbitmqctl’, il comando principale per gestire il server RabbitMQ.

Esegui il seguente comando per aggiungere un nuovo utente RabbitMQ. Questo esempio aggiungerà l’utente ‘ alice ‘ a RabbitMQ. Inoltre, devi cambiare la password con una nuova.

sudo rabbitmqctl add_user alice password

Successivamente, il comando qui sotto rende il nuovo utente ‘alice’ un amministratore del cluster RabbitMQ.

sudo rabbitmqctl set_user_tags alice administrator

Imposta i permessi per l’utente ‘alice’ su tutte le entità all’interno del cluster RabbitMQ.

sudo rabbitmqctl set_permissions -p / alice ".*" ".*" ".*"

Ora esegui il comando qui sotto per eliminare l’utente predefinito ‘guest’ dalla tua installazione di RabbitMQ.

sudo rabbitmqctl delete_user guest

Verifica l’elenco degli utenti disponibili su RabbitMQ. Vedrai quindi che il nuovo utente ‘alice’ è stato creato e può essere utilizzato come amministratore per il server RabbitMQ.

sudo rabbitmqctl list_users

setup admin user

A questo punto, hai completato l’installazione e la configurazione del cluster RabbitMQ e configurato l’amministratore per RabbitMQ. Successivamente, configurerai il mirroring delle code classiche tramite le politiche RabbitMQ.

Configurazione del mirroring delle code classiche

RabbitMQ fornisce due modi per impostare il mirroring delle code, puoi utilizzare il mirroring delle code classiche tramite la politica RabbitMQ o impostare utilizzando le code di quorum.

Per questo esempio, imparerai come impostare il mirroring delle code tramite le politiche RabbitMQ.

Esegui il seguente comando per creare una nuova politica ‘ ha-all ‘. Questa politica consente a tutte le code di essere replicate tra i nodi del cluster RabbitMQ.

sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'

Ora, se desideri specificare le code da replicare nel cluster. Questo esempio creerà una nuova politica ‘ ha-two- ‘ che replicherà tutte le code con il nome ‘ two.’.

sudo rabbitmqctl set_policy ha-two "^two\." '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'

Infine, puoi anche creare una nuova politica che ti consente di impostare le code da replicare su nodi specifici nel cluster RabbitMQ. In questo esempio, creerai una nuova politica ‘ ha-nodes ‘ che replicherà tutte le code con il nome ‘ nodes.’ su nodi specifici ‘ rabbitmq2 ‘ e ‘ rabbitmq3 ‘.

sudo rabbitmqctl set_policy ha-nodes "^nodes\." '{"ha-mode":"nodes","ha-params":["rabbit@rabbitmq2", "rabbit@rabbitmq3"]}'

Verifica l’elenco delle politiche nel tuo cluster RabbitMQ tramite il seguente comando. Vedrai quindi che le politiche ‘ ha-all ‘, ‘ ha-two ‘ e ‘ ha-nodes ‘ sono disponibili nel cluster RabbitMQ.

sudo rabbitmqctl list_policies

Accesso al cluster RabbitMQ tramite il plugin di gestione

Apri il tuo browser web e visita l’indirizzo IP del server seguito dalla porta predefinita di RabbitMQ 15672 (ad es.: http://192.168.5.21). Vedrai quindi la pagina di accesso di RabbitMQ.

Accedi con il nuovo utente e la password che hai creato e fai clic su ‘ Login ‘.

rabbitmq login

Ora dovresti vedere il cruscotto di amministrazione di RabbitMQ fornito dal plugin ‘ rabbitmq_management ‘.

rabbitmq dashboard

Successivamente, fai clic sulla scheda ‘ Admin ‘ e fai clic su ‘ Policies ‘ per verificare che le politiche RabbitMQ che hai creato siano disponibili.

Nello screenshot qui sotto, puoi vedere tre diverse politiche, ‘ ha-all ‘, ‘ ha-two ‘ e ‘ ha-nodes ‘.

list policies

Conclusione

Congratulazioni! Hai ora installato il server RabbitMQ e configurato il cluster RabbitMQ con tre server Ubuntu 22.04. Inoltre, hai configurato il firewall UFW per proteggere il deployment di RabbitMQ, e hai anche configurato l’utente amministratore per RabbitMQ, e creato un mirroring delle code classiche nel cluster RabbitMQ tramite le politiche RabbitMQ.

Con questo in atto, ora puoi utilizzare RabbitMQ come broker di messaggi per la tua applicazione e infrastruttura. Tuttavia, puoi anche portare il deployment di RabbitMQ al livello successivo impostando ad esempio le code di quorum, proteggendo RabbitMQ tramite TLS e molto altro.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.