RabbitMQ

Estudo

Instalação

Debian

Pacote: rabbitmq-server

Docker

Imagem: rabbitmq

Config

Virtual Hosts

Listar virtual hosts:

rabbitmqctl -q list_vhosts

Criar virtual host:

rabbitmqctl add_vhost <nome>

Remover virtual host:

rabbitmqctl delete_vhost <nome>

Usuários

Listar usuários:

rabbitmqctl -q list_users

Criar usuários:

rabbitmqctl add_user <usuário> <senha>

Trocar senha do usuário:

rabbitmqctl change_password <usuário> <senha>

Remover usuário:

rabbitmqctl delete_user <usuário>

Listar permissões em um virtual host:

rabbitmqctl -q list_permissions --vhost <virtual_host>

Remover todas as permissões de um usuário em um virtual host:

rabbitmqctl clear_permissions --vhost <virtual_host> <usuário>

Atribuir permissões para um usuário ('.*' para todos os recursos):

rabbitmqctl set_permissions --vhost <virtual_host> <usuário> <config_perm> <write_perm> <read_perm>

Permitir que usuário acesso interface web:

rabbitmqctl set_user_tags <usuário> management

Plugins

Mostrar plugins disponíveis e quais estão habilitados:

rabbitmq-plugins list

Habilitar plugin sem o serviço rodando (ideal para colocar no Dockerfile):

rabbitmq-plugins enable --offline <plugin> [<plugin> ...]

Verificar se um plugin está habilitado:

rabbitmq-plugins -q is_enabled <plugin>

Health Check

Documentação

Verificar se o runtime está em execução:

rabbitmq-diagnostics -q ping

Informações gerais do nó:

rabbitmq-diagnostics -q status

Verificar se o RabbitMQ está em execução:

rabbitmq-diagnostics -q check_running

Verificar alarmes no nó:

rabbitmq-diagnostics -q check_local_alarms

Verificar conectividade das portas:

rabbitmq-diagnostics -q check_port_connectivity

Verificar se virtual hosts estão rodando:

rabbitmq-diagnostics -q check_virtual_hosts

Prometheus

URL: http://<hostname>:15692/metrics

Exemplos

docker-compose

services:
  rabbitmq:
    image: rabbitmq:3.11-management-alpine
    environment:
      RABBITMQ_DEFAULT_USER: "guest"
      RABBITMQ_DEFAULT_PASS: "guest"
      RABBITMQ_DEFAULT_VHOST: "/"
    ports:
      - 5672:5672
      - 15672:15672
    volumes:
      - rabbitmq-data:/var/lib/rabbitmq
    healthcheck:
      test: ["CMD", "rabbitmq-diagnostics", "-q", "check_running"]
volumes:
  rabbitmq-data:

Python

Exemplo em Python: rabbitmq-python.tar.gz