Instalar RabbitMQ en CentOS 7

Introducción
RabbitMQ es un broker de mensajes empresarial, libre y de código abierto. Está escrito en Erlang e implementa AMQP (Advanced Message Queuing Protocol). Ofrece bibliotecas cliente para los principales lenguajes, varios protocolos de mensajería, confirmaciones de entrega, rutas flexibles a colas y varios tipos de exchanges. También dispone de una API HTTP, herramientas de línea de comandos y una interfaz web para administración.
Definición en una línea: un broker de mensajes que facilita la comunicación asíncrona entre procesos, servidores y aplicaciones.
Variantes de intención relacionadas
- instalar RabbitMQ CentOS 7
- tutorial RabbitMQ CentOS 7
- configurar RabbitMQ en CentOS
- instalar Erlang para RabbitMQ
- habilitar panel web RabbitMQ
Requisitos previos
- Servidor CentOS 7 básico
- Privilegios de root. Esta guía asume que trabajas como root; si usas sudo, ejecuta sudo -i antes de comenzar.
Actualizar el sistema base
Antes de instalar paquetes, actualiza los paquetes y repositorios:
yum -y update
Tras la actualización, continúa con la instalación de Erlang.
Instalar Erlang
RabbitMQ necesita Erlang. En CentOS 7, Erlang no siempre está en el repositorio por defecto, por eso añadiremos EPEL.
yum -y install epel-release
yum -y update
yum -y install erlang socat
Verifica la versión de Erlang:
erl -version
Ejemplo de salida esperada:
[root@liptan-pc ~]# erl -version
Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4
Para entrar en la consola interactiva de Erlang:
erl
Salida de ejemplo al iniciar la shell:
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>
Sal de la shell con Ctrl+C dos veces.
Instalar RabbitMQ
RabbitMQ distribuye paquetes RPM precompilados para Enterprise Linux. Descarga la versión indicada (ajusta la URL a la versión que prefieras):
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
Si no tienes wget, instálalo:
yum -y install wget
Importa la clave GPG del repositorio para verificar el paquete:
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
Instala el paquete RPM:
rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm
Tras la instalación, RabbitMQ estará disponible en el sistema.
Iniciar y habilitar el servicio
Inicia el servicio RabbitMQ:
systemctl start rabbitmq-server
Habilítalo para que arranque automáticamente en el boot:
systemctl enable rabbitmq-server
Revisa el estado del servicio:
systemctl status rabbitmq-server
Ejemplo de salida cuando está activo:
? 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...
??29149 /usr/lib64/erlang/erts-9.0/bin/epmd -daemon
??29283 erl_child_setup 1024
??29303 inet_gethost 4
??29304 inet_gethost 4
Jul 15 18:59:13 centos rabbitmq-server[29006]: Starting broker...
Jul 15 18:59:14 centos rabbitmq-server[29006]: systemd unit for activation check: "rabbitmq-server.service"
Jul 15 18:59:14 centos systemd[1]: Started RabbitMQ broker.
Jul 15 18:59:14 centos rabbitmq-server[29006]: completed with 0 plugins.
Reglas de firewall y SELinux
Si usas firewalld, abre los puertos que RabbitMQ y sus plugins suelen utilizar. Los puertos comunes son: 4369, 25672, 5671-5672, 15672 (panel web), 61613-61614, 1883, 8883.
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
firewall-cmd --reload
Importante: adapta los puertos a los plugins que realmente uses. No expongas puertos innecesarios al exterior.
Si SELinux está activo, concede la política necesaria para que RabbitMQ funcione correctamente:
setsebool -P nis_enabled 1
Nota: según configuración de tu distribución, puede ser necesario ajustar contextos o habilitar módulos adicionales de SELinux.
Acceder al panel web de administración
Habilita el plugin de gestión web:
rabbitmq-plugins enable rabbitmq_management
Asegura la propiedad de los archivos de RabbitMQ al usuario y grupo apropiados:
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
Crea un usuario administrador y asigna permisos:
rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Cambia admin por el nombre de usuario deseado y StrongPassword por una contraseña robusta.
Abre en el navegador:
http://Your_Server_IP:15672/
Verás la pantalla de inicio de sesión.
Una vez autenticado verás el panel de control.
En la pestaña Admin gestionas usuarios, vhosts y políticas. Por seguridad elimina el usuario Guest si no lo necesitas.
En la pestaña Queues verás las colas y podrás crear o eliminar colas desde la interfaz.
En Connections verás conexiones activas.
También están disponibles Channels y Exchanges en sus pestañas correspondientes.
Comprobaciones y comandos útiles
- Ver plugins instalados:
rabbitmq-plugins list
- Estado y nodos del cluster:
rabbitmqctl status
rabbitmqctl cluster_status
- Listar usuarios y permisos:
rabbitmqctl list_users
rabbitmqctl list_permissions -p /
- Reiniciar servicio:
systemctl restart rabbitmq-server
Seguridad y buenas prácticas
- Cambia la contraseña de administrador y usa contraseñas únicas y largas.
- Elimina o deshabilita el usuario Guest si el servidor es accesible desde redes no confiables.
- Limita el acceso al puerto 15672 (panel) mediante firewall o VPN.
- Mantén Erlang y RabbitMQ actualizados; revisa notas de versión antes de actualizar en producción.
Alternativas y cuándo elegir otra opción
- Si buscas un servicio en la nube gestionado, considera proveedores PaaS que ofrezcan RabbitMQ gestionado o colas gestionadas (ej.: servicios de colas del proveedor cloud). Esta guía cubre instalación autogestionada en CentOS 7.
- Para cargas extremadamente altas y requisitos específicos de latencia, evalúa Apache Kafka como alternativa (modelo distinto: log distribuido vs broker con colas/exchanges).
Modo de fallo e incidencia común
- Error: servicio no arranca por versión incompatible de Erlang. Solución: instala la versión de Erlang compatible con la versión de RabbitMQ que empleas.
- Error: puerto en uso. Solución: usa netstat/ss para identificar el proceso y libera el puerto o cambia los puertos de RabbitMQ en rabbitmq.conf.
- Error de permisos en /var/lib/rabbitmq. Solución: verifica propietarios y permisos (chown -R rabbitmq:rabbitmq /var/lib/rabbitmq).
Lista de verificación por roles
Administrador de sistemas:
- Actualizar sistema y repositorios.
- Instalar Erlang y dependencias.
- Instalar RabbitMQ y habilitar servicio.
- Configurar firewall/SELinux.
- Configurar monitoreo y copias de seguridad.
DevOps/Desarrollador:
- Crear vhosts y usuarios para aplicaciones.
- Ajustar políticas de reintento y TTL si aplica.
- Probar integración cliente con colas/exchanges.
Seguridad:
- Eliminar Guest y revisar permisos de usuario.
- Restringir acceso al puerto 15672 y demás puertos administrativos.
Mini metodología de despliegue (playbook rápido)
- Actualizar sistema.
- Instalar EPEL.
- Instalar Erlang y socat.
- Descargar e instalar RPM de RabbitMQ.
- Iniciar y habilitar servicio.
- Abrir puertos mínimos y habilitar plugin de gestión.
- Crear usuario admin y configurar permisos.
- Verificar con comandos de estado y panel web.
Criterios de aceptación
- El servicio systemd rabbitmq-server está activo y en estado running.
- rabbitmqctl status muestra nodos y procesos sin errores críticos.
- El panel web responde en http://Your_Server_IP:15672/ y permite autenticación con el usuario admin creado.
- Los puertos relevantes están abiertos solo según la política de red de tu organización.
Diagrama de decisión (flujo simplificado)
flowchart TD
A[¿Servidor CentOS 7 disponible?] -->|Sí| B[Actualizar sistema]
A -->|No| Z[Provisionar servidor CentOS 7]
B --> C[Instalar EPEL y Erlang]
C --> D[Descargar RabbitMQ RPM]
D --> E[Instalar RPM]
E --> F[Iniciar y habilitar servicio]
F --> G[Configurar firewall y SELinux]
G --> H[Habilitar plugin management y crear admin]
H --> I[Verificar servicio y panel web]
Resumen y siguientes pasos
Has instalado RabbitMQ en CentOS 7, configurado acceso web y aplicado reglas básicas de seguridad. Como siguientes pasos recomienda:
- Automatizar la instalación con Ansible o scripts de configuración.
- Implementar copias de seguridad de definiciones y políticas (rabbitmqctl export_definitions).
- Planificar actualizaciones controladas en entornos no productivos antes de aplicar en producción.
Recursos
- Sitio oficial de RabbitMQ: https://www.rabbitmq.com/
Conclusión
Ahora tienes un broker RabbitMQ operativo en CentOS 7, con panel de administración habilitado y comprobaciones básicas realizadas. Adapta las configuraciones de firewall, SELinux y seguridad a la política de tu organización y prueba las integraciones con tus aplicaciones.
Materiales similares

Reducir animaciones en iOS 26 — Liquid Glass

Activar Emergency Bypass en iPhone iOS 17

Corregir error WOTS deshabilitado en Windows

Cancelar Netflix: guía rápida paso a paso

Error 'Algo salió mal' en Twitter (X) — Soluciones
