Guia de tecnologias

Instalar RabbitMQ no CentOS 7

5 min read DevOps Atualizado 20 Oct 2025
Instalar RabbitMQ no CentOS 7
Instalar RabbitMQ no CentOS 7

Este guia mostra passo a passo como instalar Erlang e RabbitMQ no CentOS 7, abrir as portas necessárias no firewall, ativar o console web e criar um usuário administrador. Inclui checklist de verificação, comandos essenciais, dicas de segurança e resolução de problemas comuns.

O que é RabbitMQ

RabbitMQ é um broker de mensagens open source, escrito em Erlang e que implementa o protocolo AMQP (Advanced Message Queueing Protocol). Fornece bibliotecas cliente para as principais linguagens, suporte a vários protocolos de mensageria, confirmação de entrega, roteamento flexível e vários tipos de exchange. Tem API HTTP, ferramenta de linha de comando e uma interface web para administração.

Pré-requisitos

  • Servidor CentOS 7 com instalação mínima
  • Privilégios de root. Se usar sudo, execute sudo -i antes.

Atualizar o sistema base

Antes de instalar pacotes, atualize repositórios e pacotes:

yum -y update

Após a atualização, prossiga para instalar o Erlang.

Instalar Erlang

RabbitMQ exige Erlang. Erlang não está no repositório YUM padrão do CentOS 7, por isso instale o EPEL e depois o Erlang e dependências:

yum -y install epel-release
yum -y update
yum -y install erlang socat

Verifique a versão do Erlang:

erl -version

Exemplo de saída:

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

Entre no shell do Erlang com:

erl

Saída de amostra do shell Erlang:

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>

Para sair do shell pressione Ctrl+C duas vezes.

Instalar RabbitMQ

Faça o download do pacote RPM pré-compilado para CentOS 7 (exemplo usado nesta receita: v3.6.10):

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

Se não tiver wget instalado, execute yum -y install wget.

Importe a chave GPG do projeto RabbitMQ:

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

Instale o pacote RPM:

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

RabbitMQ ficará instalado no sistema.

Iniciar e habilitar o serviço

Inicie o serviço RabbitMQ:

systemctl start rabbitmq-server

Habilite o serviço para iniciar automaticamente no boot:

systemctl enable rabbitmq-server

Verifique o status do serviço:

systemctl status rabbitmq-server

Exemplo de saída quando iniciado com sucesso:

? 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.

Regras de firewall e SELinux

Se o firewalld estiver ativo, abra as portas necessárias. As portas abaixo são tipicamente usadas por RabbitMQ e plugins (AMQP, management plugin, STOMP, MQTT, clustering):

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

Recarregue as regras do firewall:

firewall-cmd --reload

Se o SELinux estiver ativado, permita a operação do serviço conforme exemplo:

setsebool -P nis_enabled 1

Nota: ajuste políticas SELinux específicas à sua política de segurança se necessário.

Acessar o console web

Ative o plugin de gerenciamento web:

rabbitmq-plugins enable rabbitmq_management

Ajuste propriedade dos arquivos do RabbitMQ:

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

Crie um usuário administrador para o console web e defina permissões (troque admin e StrongPassword):

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

Para acessar o painel administrativo, abra no navegador:

http://Your_Server_IP:15672/

Você verá a tela de login do RabbitMQ.

Login do RabbitMQ

Depois do login, visualizará o dashboard administrativo.

Visão geral do RabbitMQ

Na aba Admin você encontra usuários, virtual hosts e políticas. Exclua o usuário Guest por segurança.

Usuários do RabbitMQ

Na aba Queues você gerencia filas: criar, inspecionar e excluir.

Filas do RabbitMQ

Na aba Connections aparece a lista de conexões ativas.

Conexões do RabbitMQ

As abas Channels e Exchanges mostram canais e exchanges respectivamente.

Exchanges do RabbitMQ

Checklist rápido de implantação

  • Sistema CentOS 7 atualizado
  • EPEL instalado
  • Erlang e socat instalados
  • RPM do RabbitMQ instalado e assinaturas importadas
  • Serviço rabbitmq-server ativo e habilitado
  • Portas do firewall abertas e firewall recarregado
  • SELinux ajustado conforme política
  • Plugin rabbitmq_management ativado
  • Usuário administrador criado e usuário Guest removido

Comandos essenciais (cheat sheet)

  • Atualizar sistema: yum -y update
  • Instalar EPEL: yum -y install epel-release
  • Instalar Erlang: yum -y install erlang socat
  • Baixar RabbitMQ: wget
  • Importar GPG: rpm –import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
  • Instalar RPM: rpm -Uvh rabbitmq-server-*.rpm
  • Iniciar serviço: systemctl start rabbitmq-server
  • Habilitar no boot: systemctl enable rabbitmq-server
  • Ativar plugin web: rabbitmq-plugins enable rabbitmq_management

Segurança e boas práticas

  • Nunca deixe o usuário Guest ativo em produção.
  • Use senhas fortes para usuários administrativos e considere autenticação externa (LDAP, SASL) quando apropriado.
  • Habilite TLS para conexões AMQP e HTTP (management) em ambientes públicos.
  • Restrinja as portas do cluster a uma rede privada quando usar clustering entre nós.
  • Faça backups regulares das configurações e políticas (rabbitmqctl export_definitions).

Quando a instalação pode falhar e como diagnosticar

  • Problema: Erlang ausente ou versão incompatível — verifique erl -version e instale versão compatível.
  • Problema: Porta já em uso — use ss -tlnp para identificar processos que ocupam as portas necessárias.
  • Problema: Serviço não sobe — verifique logs em /var/log/rabbitmq/ e o journal com journalctl -u rabbitmq-server -b.
  • Problema: Plugin de management não aparece — rode rabbitmq-plugins list para confirmar o status.

Exemplo de solução rápida de erro comum

Se o serviço não inicia por erro de memória ou limites do sistema, aumente os limites de file descriptors temporariamente e teste:

ulimit -n 65536
systemctl restart rabbitmq-server

Para persistir, ajuste /etc/security/limits.conf e a unidade systemd com LimitNOFILE.

Papel e responsabilidades (checklist por função)

  • Administrador de sistema: instalar pacotes, configurar firewall/SELinux, gerenciar updates do OS.
  • Administrador de mensageria/DevOps: configurar políticas, vhosts, usuários, monitoramento e backups.
  • Desenvolvedor: usar bibliotecas cliente apropriadas, testar reconexão e tratamento de mensagens duplicadas.

Glossário rápido

  • Broker: componente que recebe, roteia e entrega mensagens entre produtores e consumidores.
  • Exchange: ponto de entrada para mensagens que decide para quais filas elas vão.
  • Queue (fila): estrutura que guarda mensagens até serem consumidas.

Resumo

Agora você tem os passos necessários para instalar e configurar RabbitMQ no CentOS 7: atualizar o sistema, instalar Erlang, instalar o RPM do RabbitMQ, abrir portas no firewall, habilitar o plugin de management e criar um usuário administrador. Siga o checklist, aplique as recomendações de segurança e use os comandos do cheat sheet para acelerar a operação.

Importante: mantenha o software atualizado e valide compatibilidade entre versões de Erlang e RabbitMQ antes de atualizar em produção.

Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE