RabbitMQ è un software broker di messaggi open source che implementa l'Advanced Message Queuing Protocol (AMQP). RabbitMQ funziona ricevendo messaggi dagli editori (applicazioni che li pubblicano) e li indirizza ai consumatori (applicazioni che li elaborano).
Contenuti correlati
- Come installare Erlang su Rocky Linux/Alma Linux/CentOS 8
- Come installare e abilitare il repository EPEL su Rocky Linux/Centos 8
- Come installare RabbitMQ in Fedora 35
- Come installare Erlang su Fedora 35
Prerequisiti
Per seguire, assicurati di avere quanto segue
- Un server Rocky Linux/Centos 8 aggiornato
- Accesso a Internet
- Accesso root o utente con accesso Sudo
Indice dei contenuti
- Aggiornamento del sistema
- Aggiunta del repository Yum di PackageCloud
- Installazione di Erlang
- Installazione di RabbitMQ
- Avvio e abilitazione del servizio rabbitmq-server
- Facoltativo:abilitazione del dashboard RabbitMQ
- Comandi di base per la gestione degli utenti di RabbitMQ
1. Aggiornamento del sistema
Prima di procedere, assicurarsi che i pacchetti del server siano aggiornati. Usa questo comando per ottenere ciò:
sudo dnf -y update
2. Aggiunta del repository Yum di PackageCloud
Il pacchetto RabbitMQ viene distribuito tramite i repository Yum su PackageCloud. Installa il repository PackageCloud Yum usando questo comando:
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
Questo è l'output sul mio server:
$ curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
Detected operating system as rocky/8.
Checking for curl...
Detected curl...
Downloading repository file: https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/config_file.repo?os=rocky&dist=8&source=script
done.
Installing yum-utils...
rabbitmq_rabbitmq-server-source 1.4 kB/s | 819 B 00:00
rabbitmq_rabbitmq-server-source 23 kB/s | 3.9 kB 00:00
Importing GPG key 0x4D206F89:
Userid : "https://packagecloud.io/rabbitmq/rabbitmq-server (https://packagecloud.io/docs#gpg_signing) <[email protected]>"
Fingerprint: 8C69 5B02 19AF DEB0 4A05 8ED8 F4E7 8920 4D20 6F89
From : https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
rabbitmq_rabbitmq-server-source 398 B/s | 296 B 00:00
Package yum-utils-4.0.18-4.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Generating yum cache for rabbitmq_rabbitmq-server...
Importing GPG key 0x4D206F89:
Userid : "https://packagecloud.io/rabbitmq/rabbitmq-server (https://packagecloud.io/docs#gpg_signing) <[email protected]>"
Fingerprint: 8C69 5B02 19AF DEB0 4A05 8ED8 F4E7 8920 4D20 6F89
From : https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
Generating yum cache for rabbitmq_rabbitmq-server-source...
The repository is setup! You can now install packages.
3. Installazione di Erlang
RabbitMQ richiede Erlang/OTP per essere eseguito. Il progetto rabbitmq/erlang-rpm fornisce un pacchetto Erlang RPM a 64 bit a dipendenza zero che fornisce quanto basta per eseguire RabbitMQ . Ricevi le ultime novità dalle versioni qui https://github.com/rabbitmq/erlang-rpm/releases.
curl -LO -C - https://github.com/rabbitmq/erlang-rpm/releases/download/v24.1.4/erlang-24.1.4-1.el8.x86_64.rpm
Quindi installa il file scaricato
sudo dnf install ./erlang-24.1.4-1.el8.x86_64.rpm
Questo è l'output sul mio server
$ sudo dnf install ./erlang-24.1.4-1.el8.x86_64.rpm
rabbitmq_rabbitmq-server 1.3 kB/s | 833 B 00:00
rabbitmq_rabbitmq-server-source 1.6 kB/s | 819 B 00:00
Dependencies resolved.
=====================================================================================================
Package Architecture Version Repository Size
=====================================================================================================
Installing:
erlang x86_64 24.1.4-1.el8 @commandline 20 M
Transaction Summary
=====================================================================================================
Install 1 Package
Total size: 20 M
Installed size: 36 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : erlang-24.1.4-1.el8.x86_64 1/1
Running scriptlet: erlang-24.1.4-1.el8.x86_64 1/1
Verifying : erlang-24.1.4-1.el8.x86_64 1/1
Installed:
erlang-24.1.4-1.el8.x86_64
Complete!
4. Installazione di Rabbitmq
Dopo aver configurato il repository RabbitMQ, installa RabbitMQ Server utilizzando i comandi seguenti.
sudo dnf install -y rabbitmq-server
I dettagli del pacchetto possono essere richiesti utilizzando rpm
comando con l'opzione -qi
.
$ rpm -qi rabbitmq-server Name : rabbitmq-server Version : 3.9.9 Release : 1.el8 Architecture: noarch Install Date: Thu 11 Nov 2021 07:00:01 PM UTC Group : Development/Libraries Size : 19373970 License : MPLv2.0 and MIT and ASL 2.0 and BSD Signature : RSA/SHA512, Thu 11 Nov 2021 02:33:37 PM UTC, Key ID 6b73a36e6026dfca Source RPM : rabbitmq-server-3.9.9-1.el8.src.rpm Build Date : Thu 11 Nov 2021 02:33:35 PM UTC Build Host : d4cd7bb3-d581-4bc0-6514-d4dc9ef3ea72 Relocations : (not relocatable) URL : https://www.rabbitmq.com/ Summary : The RabbitMQ server Description : RabbitMQ is an open source multi-protocol messaging broker.
5. Avvio e abilitazione del servizio rabbitmq-server
Avvia il servizio
sudo systemctl start rabbitmq-server
Quindi controlla lo stato per confermarne l'esecuzione
$ sudo systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2021-11-11 19:01:51 UTC; 28s ago
Main PID: 76165 (beam.smp)
Tasks: 24 (limit: 23167)
Memory: 95.7M
CGroup: /system.slice/rabbitmq-server.service
├─76165 /usr/lib64/erlang/erts-12.1.4/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwt>
├─76180 erl_child_setup 32768
├─76203 /usr/lib64/erlang/erts-12.1.4/bin/epmd -daemon
├─76224 inet_gethost 4
└─76225 inet_gethost 4
Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Doc guides: https://rabbitmq.com/documentation.html
Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Support: https://rabbitmq.com/contact.html
Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Tutorials: https://rabbitmq.com/getstarted.html
Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Monitoring: https://rabbitmq.com/monitoring.html
Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Logs: /var/log/rabbitmq/[email protected]
Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: /var/log/rabbitmq/[email protected]_upgrade.log
Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: <stdout>
Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Config file(s): (none)
Nov 11 19:01:51 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Starting broker... completed with 0 plugins.
Nov 11 19:01:51 ip-10-2-40-72.us-west-2.compute.internal systemd[1]: Started RabbitMQ broker.
Ora puoi abilitarlo all'avvio
sudo systemctl enable rabbitmq-server
Puoi ottenere lo stato degli interni di Rabbitmq:
$ sudo rabbitmqctl status
6. Opzionale:abilitazione del dashboard RabbitMQ
Usa rabbitmq-plugins enable
comando per abilitare la dashboard di gestione:
$ sudo rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node [email protected]:
rabbitmq_management
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to [email protected]
The following plugins have been enabled:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
started 3 plugins.
Il servizio web è in ascolto sulla porta 15672
$ ss -tunlp | grep 15672
tcp LISTEN 0 128 0.0.0.0:15672 0.0.0.0:*
Se hai un servizio Firewalld attivo, consenti le porte 5672
e 15672
sudo firewall-cmd --add-port={5672,15672}/tcp --permanent
sudo firewall-cmd --reload
Accedi aprendo l'URL http://[server IP]:15672
come http://127.0.0.1:15672
Per impostazione predefinita, l'ospite l'utente esiste e può connettersi solo da localhost
. Puoi accedere con questo utente in locale con la password "ospite"
Per poter accedere alla rete, crea un utente amministratore come di seguito:
$ sudo rabbitmqctl add_user admin Sec3t Adding user "admin" ... Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more. $ sudo rabbitmqctl set_user_tags admin administrator Setting tags for user "admin" to [administrator] ...
Accedi con questo nome utente amministratore e la password assegnata. Dovresti vedere un'interfaccia simile alla seguente:
Per utilizzare rabbitmqadmin
strumento da riga di comando, copialo nel tuo $PATH.
sudo dnf install -y mlocate sudo updatedb sudo cp `locate rabbitmqadmin` /usr/local/bin/rabbitmqadmin sudo chmod +x /usr/local/bin/rabbitmqadmin
Devi avere python
installato e configurato per eseguire rabbitmqadmin. Usa questo comando per assicurarti che python sia installato:
sudo dnf install -y python3
7. Comandi di base per la gestione degli utenti di RabbitMQ
Elimina utente:
sudo rabbitmqctl delete_user user
Modifica password utente:
sudo rabbitmqctl change_password user strongpassword
Crea un nuovo host virtuale:
sudo rabbitmqctl add_vhost /my_vhost
Elenca gli host virtuali disponibili:
sudo rabbitmqctl list_vhosts
Elimina un host virtuale:
sudo rabbitmqctl delete_vhost /myvhost
Concedi autorizzazioni utente per vhost:
sudo rabbitmqctl set_permissions -p /myvhost user ".*" ".*" ".*"
Elenca i permessi vhost:
sudo rabbitmqctl list_permissions -p /myvhost
Per elencare le autorizzazioni utente:
rabbitmqctl list_user_permissions user
Elimina le autorizzazioni utente:
rabbitmqctl clear_permissions -p /myvhost user
Conclusione
Siamo riusciti a installare Rabbitmq in questa guida