RabbitMQ es un software de intermediario de mensajes de código abierto que implementa el Protocolo avanzado de cola de mensajes (AMQP). RabbitMQ funciona al recibir mensajes de los editores (aplicaciones que los publican) y los enruta a los consumidores (aplicaciones que los procesan).
Contenido relacionado
- Cómo instalar Erlang en Rocky Linux/Alma Linux/CentOS 8
- Cómo instalar y habilitar el repositorio EPEL en Rocky Linux/Centos 8
- Cómo instalar RabbitMQ en Fedora 35
- Cómo instalar Erlang en Fedora 35
Requisitos
Para seguir, asegúrese de tener lo siguiente
- Un servidor Rocky Linux/Centos 8 actualizado
- Acceso a Internet
- Acceso raíz o usuario con acceso Sudo
Tabla de contenido
- Actualización del sistema
- Agregar repositorio PackageCloud Yum
- Instalación de Erlang
- Instalando RabbitMQ
- Iniciando y habilitando el servicio del servidor rabbitmq
- Opcional:habilitar el panel de RabbitMQ
- Comandos básicos de administración de usuarios de RabbitMQ
1. Actualizando el sistema
Antes de continuar, asegúrese de que los paquetes del servidor estén actualizados. Usa este comando para lograrlo:
sudo dnf -y update
2. Adición del repositorio PackageCloud Yum
El paquete RabbitMQ se distribuye a través de los repositorios de Yum en PackageCloud. Instale el repositorio de PackageCloud Yum usando este comando:
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
Esta es la salida en mi servidor:
$ 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. Instalando Erlang
RabbitMQ requiere Erlang/OTP para funcionar. El proyecto rabbitmq/erlang-rpm proporciona un paquete Erlang RPM de 64 bits de dependencia cero que proporciona lo suficiente para ejecutar RabbitMQ . Obtenga lo último de los lanzamientos aquí 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
Luego instale el archivo descargado
sudo dnf install ./erlang-24.1.4-1.el8.x86_64.rpm
Esta es la salida en mi servidor
$ 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. Instalando Rabbitmq
Una vez que haya configurado el repositorio RabbitMQ, instale el servidor RabbitMQ usando los comandos a continuación.
sudo dnf install -y rabbitmq-server
Los detalles del paquete se pueden consultar mediante rpm
comando con la opción -qi
.
$ rpm -qi rabbitmq-serverName :rabbitmq-serverVersion :3.9.9Lanzamiento :1.el8Architecture:noarchInstall Date:Thu 11 Nov 2021 07:00:01 PM UTCGroup :Development/LibrariesSize :19373970License :MPLv2.0 and MIT and Firma de ASL 2.0 y BSDS:RSA/SHA512, jueves 11 de noviembre de 2021 02:33:37 p. :35 p. m. UTCBuild Host:d4cd7bb3-d581-4bc0-6514-d4dc9ef3ea72Reubicaciones:(no reubicable) URL:https://www.rabbitmq.com/Summary:el servidor RabbitMQ Descripción:RabbitMQ es un agente de mensajería multiprotocolo de código abierto. /pre>5. Iniciando y habilitando el servicio del servidor rabbitmq
Iniciar el servicio
sudo systemctl start rabbitmq-server
Luego verifique el estado para confirmar que se está ejecutando
$ 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.
Ahora puede habilitarlo en el arranque
sudo systemctl enable rabbitmq-server
Puede obtener el estado de los elementos internos de rabbitmq:
$ sudo rabbitmqctl status
6. Opcional:habilitar el panel de RabbitMQ
Utilice
rabbitmq-plugins enable
Comando para habilitar el panel de administración:$ 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.
El servicio web está escuchando en el puerto 15672
$ ss -tunlp | grep 15672 tcp LISTEN 0 128 0.0.0.0:15672 0.0.0.0:*
Si tiene un servicio Firewalld activo, permita los puertos
5672
y15672
sudo firewall-cmd --add-port={5672,15672}/tcp --permanent sudo firewall-cmd --reload
Acceda a él abriendo la URL
http://[server IP]:15672
como http://127.0.0.1:15672De forma predeterminada, el invitado el usuario existe y solo puede conectarse desde
localhost
. Puede iniciar sesión con este usuario localmente con la contraseña "invitado"Para poder iniciar sesión en la red, cree un usuario administrador como se muestra a continuación:
$ sudo rabbitmqctl add_user admin Sec3tAgregando usuario "admin" ...Listo. ¡No olvide otorgar permisos de usuario a algunos hosts virtuales! Consulte 'rabbitmqctl help set_permissions' para obtener más información.$ sudo rabbitmqctl set_user_tags admin administradorConfiguración de etiquetas para el usuario "admin" para [administrador] ...Inicie sesión con este nombre de usuario de administrador y la contraseña asignada. Debería ver una interfaz similar a la siguiente:
Para usar
rabbitmqadmin
herramienta de línea de comandos, cópielo en su $PATH.sudo dnf install -y mlocatesudo actualizadobsudo cp `locate rabbitmqadmin` /usr/local/bin/rabbitmqadminsudo chmod +x /usr/local/bin/rabbitmqadminNecesitas tener
python
instalado y configurado para ejecutar rabbitmqadmin. Use este comando para asegurarse de que python esté instalado:sudo dnf install -y python3
7. Comandos básicos de gestión de usuarios de RabbitMQ
Eliminar usuario:
sudo rabbitmqctl delete_user usuarioCambiar contraseña de usuario:
sudo rabbitmqctl change_password usuario contraseña fuerteCrear nuevo servidor virtual:
sudo rabbitmqctl add_vhost /mi_vhostLista de servidores virtuales disponibles:
sudo rabbitmqctl list_vhostsEliminar un host virtual:
sudo rabbitmqctl delete_vhost /myvhostOtorgar permisos de usuario para vhost:
sudo rabbitmqctl set_permissions -p /usuario myvhost ".*" ".*" ".*"Lista de permisos de vhost:
sudo rabbitmqctl list_permissions -p /myvhostPara enumerar los permisos de usuario:
rabbitmqctl list_user_permissions usuarioEliminar permisos de usuario:
rabbitmqctl clear_permissions -p /usuario myvhostConclusión
Hemos logrado instalar Rabbitmq en esta guía