Rabbitmq Command Cheat Sheet
RABBITMQ COMMAND CHEAT SHEET
==================================================
1. SERVICE MANAGEMENT
==================================================
Start:
systemctl start rabbitmq-server
Stop:
systemctl stop rabbitmq-server
Restart:
systemctl restart rabbitmq-server
Status:
systemctl status rabbitmq-server
Enable at boot:
systemctl enable rabbitmq-server
Enable + start:
systemctl enable --now rabbitmq-server
==================================================
2. BASIC HEALTH
Check RabbitMQ alive:
rabbitmq-diagnostics ping
Node status:
rabbitmq-diagnostics status
Check listeners:
rabbitmq-diagnostics listeners
Check alarms:
rabbitmq-diagnostics alarms
==================================================
3. CLUSTER
Cluster status:
rabbitmqctl cluster_status
Stop RabbitMQ application:
rabbitmqctl stop_app
Start RabbitMQ application:
rabbitmqctl start_app
Join cluster:
rabbitmqctl join_cluster rabbit@rabbit1
Leave/reset node:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
IMPORTANT:
reset removes the node's existing cluster membership/data.
Use carefully.
==================================================
4. USERS
Add user:
rabbitmqctl add_user appuser 'StrongPassword'
List users:
rabbitmqctl list_users
Change password:
rabbitmqctl change_password appuser 'NewPassword'
Delete user:
rabbitmqctl delete_user appuser
==================================================
5. USER TAGS
Administrator:
rabbitmqctl set_user_tags appuser administrator
Monitoring:
rabbitmqctl set_user_tags appuser monitoring
Remove tags:
rabbitmqctl set_user_tags appuser
==================================================
6. VHOSTS
Create:
rabbitmqctl add_vhost /production
List:
rabbitmqctl list_vhosts
Delete:
rabbitmqctl delete_vhost /production
==================================================
7. PERMISSIONS
Set permissions:
rabbitmqctl set_permissions -p /production appuser "." "." ".*"
Order:
configure
write
read
List permissions:
rabbitmqctl list_permissions -p /production
List user's permissions:
rabbitmqctl list_user_permissions appuser
Clear permissions:
rabbitmqctl clear_permissions -p /production appuser
==================================================
8. EXCHANGES
List exchanges:
rabbitmqctl list_exchanges
Create using rabbitmqadmin:
rabbitmqadmin declare exchange
name=smsapp
type=topic
durable=true
Direct:
rabbitmqadmin declare exchange
name=my.direct
type=direct
durable=true
Fanout:
rabbitmqadmin declare exchange
name=my.fanout
type=fanout
durable=true
Headers:
rabbitmqadmin declare exchange
name=my.headers
type=headers
durable=true
==================================================
9. QUEUES
List queues:
rabbitmqctl list_queues
Detailed queue information:
rabbitmqctl list_queues
name messages messages_ready messages_unacknowledged
Create queue:
rabbitmqadmin declare queue
name=sms.email
durable=true
Delete queue:
rabbitmqadmin delete queue name=sms.email
==================================================
10. BINDINGS
List bindings:
rabbitmqctl list_bindings
Create direct binding:
rabbitmqadmin declare binding
source=my.direct
destination=sms.email
destination_type=queue
routing_key=sms.email
Create topic binding:
rabbitmqadmin declare binding
source=smsapp
destination=sms.email
destination_type=queue
routing_key=sms.email
Topic wildcard:
routing_key='sms.*'
or:
routing_key='sms.#'
IMPORTANT:
Direct exchange:
Exact match.
Topic exchange:
* = one word
= zero or more words
==================================================
11. PUBLISH MESSAGE
Publish:
rabbitmqadmin publish
exchange=smsapp
routing_key=sms.email
payload="Hello RabbitMQ"
Default exchange:
rabbitmqadmin publish
exchange=
routing_key=sms.email
payload="Hello"
==================================================
12. CONSUMERS
List consumers:
rabbitmqctl list_consumers
Useful for checking:
- queue
- consumer
- channel
- ACK mode
- prefetch
- consumer state
==================================================
13. CONNECTIONS
List connections:
rabbitmqctl list_connections
Useful information:
- user
- vhost
- peer host
- peer port
- state
- channels
==================================================
14. CHANNELS
List channels:
rabbitmqctl list_channels
Useful for:
- channel count
- connection
- consumer information
- unacked messages
- channel state
==================================================
15. QUEUE MONITORING
Basic:
rabbitmqctl list_queues
Important:
rabbitmqctl list_queues
name messages messages_ready messages_unacknowledged
Meaning:
messages
= total messages
messages_ready
= waiting for consumers
messages_unacknowledged
= delivered but not ACKed
==================================================
16. POLICIES
List policies:
rabbitmqctl list_policies
Set policy example:
rabbitmqctl set_policy my-policy
"^sms."
'{"message-ttl":60000}'
--apply-to queues
Delete:
rabbitmqctl clear_policy my-policy
==================================================
17. PARAMETERS
List parameters:
rabbitmqctl list_parameters
Used for things such as:
- federation upstreams
- other dynamic configuration
==================================================
18. FEDERATION
Check plugin:
rabbitmq-plugins list | grep federation
Enable:
rabbitmq-plugins enable rabbitmq_federation
Enable management federation UI/plugin if needed:
rabbitmq-plugins enable rabbitmq_federation_management
List parameters:
rabbitmqctl list_parameters
Federation status:
rabbitmqctl federation_status
Set upstream example:
rabbitmqctl set_parameter federation-upstream clusterA
'{"uri":"amqp://user:password@192.168.241.131:5672/%2f","prefetch-count":1000,"reconnect-delay":5}'
Federation policy example:
rabbitmqctl set_policy federate-sms
"^smsapp$"
'{"federation-upstream-set":"all"}'
--priority 10
--apply-to exchanges
==================================================
19. PLUGINS
List plugins:
rabbitmq-plugins list
Enable plugin:
rabbitmq-plugins enable PLUGIN_NAME
Disable:
rabbitmq-plugins disable PLUGIN_NAME
==================================================
20. TLS / NETWORK
Check listening ports:
ss -lntp
Filter RabbitMQ ports:
ss -lntp | grep -E
'4369|5671|5672|15671|15672|25672'
Check RabbitMQ listeners:
rabbitmq-diagnostics listeners
Test AMQP port:
nc -zv 192.168.241.131 5672
Test AMQP TLS:
nc -zv 192.168.241.131 5671
Test Erlang distribution:
nc -zv 192.168.241.131 25672
Check EPMD:
epmd -names
==================================================
21. TLS CERTIFICATE TESTING
AMQP TLS:
openssl s_client
-connect 192.168.241.131:5671
-showcerts
With hostname/SNI:
openssl s_client
-connect rabbitmq.example.com:5671
-servername rabbitmq.example.com
==================================================
22. LOGS
Follow RabbitMQ logs:
journalctl -u rabbitmq-server -f
Recent logs:
journalctl -u rabbitmq-server
Last 100 lines:
journalctl -u rabbitmq-server -n 100
Since today:
journalctl -u rabbitmq-server --since today
==================================================
23. RESOURCE / ALARM TROUBLESHOOTING
Check alarms:
rabbitmq-diagnostics alarms
Check node status:
rabbitmq-diagnostics status
Check disk:
df -h
Check memory:
free -h
Check processes:
ps -ef | grep rabbitmq
==================================================
24. QUORUM QUEUE
Create quorum queue:
rabbitmqadmin declare queue
name=sms.quorum
durable=true
arguments='{"x-queue-type":"quorum"}'
List queues and type:
rabbitmqctl list_queues name type
==================================================
25. DLX / DLQ
Create DLX:
rabbitmqadmin declare exchange
name=sms.dlx
type=direct
durable=true
Create DLQ:
rabbitmqadmin declare queue
name=sms.dlq
durable=true
Bind DLQ:
rabbitmqadmin declare binding
source=sms.dlx
destination=sms.dlq
destination_type=queue
routing_key=dead
Create main queue with DLX:
rabbitmqadmin declare queue
name=sms.email
durable=true
arguments='{"x-dead-letter-exchange":"sms.dlx","x-dead-letter-routing-key":"dead"}'
==================================================
26. RETRY QUEUE
Retry queue:
rabbitmqadmin declare queue
name=sms.retry
durable=true
arguments='{"x-message-ttl":30000,"x-dead-letter-exchange":"smsapp","x-dead-letter-routing-key":"sms.email"}'
Meaning:
30,000 ms = 30 seconds TTL.
After expiry:
retry queue
↓
main exchange
↓
main queue
==================================================
27. RABBITMQADMIN
List queues:
rabbitmqadmin list queues
List queue details:
rabbitmqadmin list queues
name messages messages_ready messages_unacknowledged
List exchanges:
rabbitmqadmin list exchanges
List bindings:
rabbitmqadmin list bindings
List connections:
rabbitmqadmin list connections
List consumers:
rabbitmqadmin list consumers
==================================================
28. RABBITMQCTL vs RABBITMQADMIN
rabbitmqctl:
Main CLI for RabbitMQ node administration.
Examples:
rabbitmqctl cluster_status
rabbitmqctl list_users
rabbitmqctl list_queues
rabbitmqctl list_connections
rabbitmqadmin:
Management HTTP/API-oriented administration tool.
Examples:
rabbitmqadmin declare queue
rabbitmqadmin declare exchange
rabbitmqadmin declare binding
rabbitmqadmin publish
==================================================
29. FAST TROUBLESHOOTING COMMAND FLOW
RabbitMQ problem:
1. Is it alive?
rabbitmq-diagnostics ping
2. Node status?
rabbitmq-diagnostics status
3. Cluster?
rabbitmqctl cluster_status
4. Listeners?
rabbitmq-diagnostics listeners
5. Alarms?
rabbitmq-diagnostics alarms
6. Queue?
rabbitmqctl list_queues
name messages messages_ready messages_unacknowledged
7. Consumers?
rabbitmqctl list_consumers
8. Connections?
rabbitmqctl list_connections
9. Channels?
rabbitmqctl list_channels
10. Logs?
journalctl -u rabbitmq-server -f
11. Network?
ss -lntp
nc -zv <host> <port>
12. Disk?
df -h
13. Memory?
free -h
==================================================
30. MOST IMPORTANT COMMANDS TO MEMORIZE
rabbitmq-diagnostics ping
rabbitmq-diagnostics status
rabbitmq-diagnostics listeners
rabbitmq-diagnostics alarms
rabbitmqctl cluster_status
rabbitmqctl list_queues
rabbitmqctl list_consumers
rabbitmqctl list_connections
rabbitmqctl list_channels
rabbitmqctl list_bindings
rabbitmqctl list_exchanges
rabbitmqctl list_users
rabbitmqctl list_vhosts
rabbitmqctl list_permissions -p /
rabbitmqctl list_policies
rabbitmqctl list_parameters
rabbitmqctl federation_status
rabbitmq-plugins list
journalctl -u rabbitmq-server -f
ss -lntp
df -h
free -h
==================================================
FAST MEMORY TRICK
HEALTH:
ping → status → listeners → alarms
CLUSTER:
cluster_status
QUEUE:
list_queues
CONSUMER:
list_consumers
CONNECTION:
list_connections
CHANNEL:
list_channels
ROUTING:
list_exchanges → list_bindings
SECURITY:
list_users → list_vhosts → list_permissions
FEDERATION:
list_parameters → federation_status
NETWORK:
ss → nc → epmd
LOGS:
journalctl
RESOURCES:
alarms → free → df