RabbitMQ
Estudo
- Simuladores:
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
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