Guida alle tecnologie

Installare RabbitMQ su CentOS 7

5 min read DevOps Aggiornato 20 Oct 2025
Installare RabbitMQ su CentOS 7
Installare RabbitMQ su CentOS 7

Panoramica veloce

RabbitMQ è un broker di messaggi open source scritto in Erlang che implementa AMQP. Fornisce librerie client per i principali linguaggi, supporta più protocolli di messaggistica, code, acknowledgement delle consegne, routing flessibile e vari tipi di exchange. Offre anche API HTTP, strumenti da riga di comando e una console web per la gestione.

Requisiti

  • Server CentOS 7 minimo
  • Privilegi root (questa guida assume root; se usi sudo, esegui sudo -i)
  • Connettività internet per scaricare pacchetti

Aggiornare il sistema base

Prima di installare qualsiasi pacchetto è consigliabile aggiornare i repository e i pacchetti:

yum -y update

Dopo l’aggiornamento procedere con l’installazione di Erlang.

Installare Erlang

RabbitMQ richiede Erlang. Poiché Erlang non è disponibile nei repository YUM predefiniti, abilita EPEL:

yum -y install epel-release
yum -y update

Installa Erlang e socat:

yum -y install erlang socat

Verifica la versione di Erlang:

erl -version

Esempio di output atteso:

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

Per entrare nella shell di Erlang:

erl

Esempio di prompt:

Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V5.10.4  (abort with ^G)
1>

Esci premendo Ctrl+C due volte. Erlang è ora pronto.

Installare RabbitMQ

Scarica il pacchetto RPM precompilato fornito da RabbitMQ (link di esempio alla versione usata originariamente):

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

Se non hai wget:

yum -y install wget

Importa la chiave GPG del repository:

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

Installa il pacchetto RPM:

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

RabbitMQ sarà installato sul sistema.

Avviare RabbitMQ

Per avviare il servizio:

systemctl start rabbitmq-server

Per abilitare l’avvio automatico all’avvio del sistema:

systemctl enable rabbitmq-server

Per controllare lo stato:

systemctl status rabbitmq-server

Esempio di output quando il servizio è attivo (mostrato come riferimento):

? 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"
   CGroup: /system.slice/rabbitmq-server.service
           ??29006 /usr/lib64/erlang/erts-9.0/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K tr...

Modificare firewall e SELinux

Se usi firewalld, apri le porte usate da RabbitMQ e dai suoi plugin (le porte principali):

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

Ricarica la configurazione del firewall:

firewall-cmd --reload

Se SELinux è attivato, consenti l’esecuzione richiesta dal servizio (comando consigliato):

setsebool -P nis_enabled 1

Nota importante: l’impostazione SELinux varia a seconda delle politiche aziendali; verifica con il tuo team di sicurezza.

Abilitare la console web di gestione

Abilita il plugin di management per la console web:

rabbitmq-plugins enable rabbitmq_management

Assicurati che i file di RabbitMQ siano di proprietà dell’utente rabbitmq:

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

Crea un utente amministratore per la console (sostituisci username e password con valori sicuri):

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

Accedi alla console da:

http://Your_Server_IP:15672/

Pagina di login della console di gestione RabbitMQ

Una volta autenticato vedrai la dashboard amministrativa:

Panoramica della dashboard amministrativa di RabbitMQ con code ed exchange visibili

Nel tab Admin trovi utenti, virtual host e politiche. Per motivi di sicurezza elimina l’utente Guest se non serve.

Elenco utenti RabbitMQ nell'interfaccia di amministrazione

Nel tab Queues trovi le code attive; puoi crearne o eliminarne direttamente dall’interfaccia.

Elenco code nella console di RabbitMQ

Nel tab Connections trovi le connessioni correnti:

Elenco connessioni attive in RabbitMQ

Troverai canali e exchange nei rispettivi tab:

Elenco exchange nella console di RabbitMQ

Suggerimenti di sicurezza

  • Non usare l’utente guest in produzione: cancellalo o limita l’accesso.
  • Usa TLS per connessioni esterne (porta 5671) e certificati gestiti dal tuo team di sicurezza.
  • Applica politiche di permessi minimi sui virtual host e sugli utenti.
  • Monitora le connessioni e le code con alert: code in crescita o consumer inattivi indicano problemi di backpressure.

Alternative di installazione e aggiornamento

  • Usare il repository ufficiale di RabbitMQ per aggiornamenti automatici invece di scaricare RPM manualmente. Questo semplifica patch e upgrade.
  • Utilizzare container (Docker) o immagini predefinite se preferisci ambienti immutabili e orchestrazione.
  • Per ambienti enterprise considerare l’uso di cluster RabbitMQ o soluzioni gestite (PaaS).

Modello mentale per l’uso di RabbitMQ

Pensa a RabbitMQ come a una posta interna: i producers inseriscono messaggi nelle exchange, le exchange instradano verso code e i consumers prelevano i messaggi. Le policy e i binding determinano chi vede cosa.

Checklist per ruolo

  • Amministratore di sistema:
    • Aggiornare il sistema e installare Erlang
    • Installare e avviare rabbitmq-server
    • Configurare firewall/SELinux
    • Abilitare plugin di management
  • SRE/DevOps:
    • Configurare monitoraggio e alert (latency, message rates, queue depth)
    • Automatizzare backup e restore delle definizioni (rabbitmqctl/export)
    • Pianificare aggiornamenti e test di failover
  • Sviluppatore:
    • Usare librerie client ufficiali
    • Implementare retry/backoff nei consumer
    • Non lasciare messaggi non ackati per periodi lunghi

Controlli di accettazione e test

  • Verificare che il servizio sia attivo: systemctl status rabbitmq-server deve risultare active (running).
  • Accedere alla console web su porta 15672 con l’utente amministratore creato.
  • Creare una coda di test, pubblicare un messaggio e consumarlo con un client di prova.
  • Simulare carico: assicurarsi che le code non crescano indefinitamente e che i consumer elaborino i messaggi.

Risoluzione problemi comuni

  • Servizio non parte: controlla journalctl -u rabbitmq-server per errori di avvio.
  • Porta 15672 non raggiungibile: verifica firewall-cmd –list-ports e SELinux.
  • Erlang non trovato o versione incompatibile: assicurati che la versione di Erlang sia compatibile con la versione di RabbitMQ installata.
  • Problemi con plugin: disabilita plugin non necessari con rabbitmq-plugins disable

Quando questa procedura non è adatta

  • Per cluster multi-nodo o configurazioni HA questa guida è insufficiente; serve una procedura di clustering con nodi e policy di mirrored queues.
  • In ambienti con requisiti di compliance elevati, segui le procedure di sicurezza e gestione certificati del tuo ente di sicurezza.

Mini-methodology per un deployment ripetibile

  1. Preparare immagine base con CentOS 7 e configurazioni di rete.
  2. Automatizzare installazione di EPEL, Erlang e RabbitMQ tramite script o Ansible.
  3. Applicare configurazioni di firewall e SELinux tramite playbook.
  4. Abilitare plugin e creare utenti/permessi via script di provisioning.
  5. Eseguire test funzionali automatici (pub/cons).

Conclusione

Ora RabbitMQ è installato e accessibile via web sulla porta 15672. Segui le checklist per ruoli, applica le best practice di sicurezza e considera metodi alternativi (repo ufficiale, container o cluster) per ambienti di produzione più complessi.

Importante: questa guida usa un esempio di RPM e comandi; verifica sempre le versioni correnti sul sito ufficiale RabbitMQ prima di eseguire in produzione.

Autore
Redazione

Materiali simili

Ridurre le animazioni in iOS 26
Guide.

Ridurre le animazioni in iOS 26

Attivare Emergency Bypass su iPhone iOS 17
iPhone

Attivare Emergency Bypass su iPhone iOS 17

WOTS disabilitato: come risolvere l'errore
Windows

WOTS disabilitato: come risolvere l'errore

Come cancellare Netflix su qualsiasi dispositivo
Streaming

Come cancellare Netflix su qualsiasi dispositivo

Errore su Twitter (X): 'Something went wrong' risolto
Social Media

Errore su Twitter (X): 'Something went wrong' risolto

Mantenere icone e puntatore Windows quando cambi tema
Windows

Mantenere icone e puntatore Windows quando cambi tema