Enable management plugin:

rabbitmq-plugins enable rabbitmq_management

List queues:

rabbitmqadmin list queues

With some columns specified:

rabbitmqadmin list queues vhost name node messages

Can also use this:

rabbitmqctl list_queues

Get messages of a queue:

rabbitmqadmin get queue=<QueueName> count=n

The count=n will get the first n messages.

More options:

  • -u: username
  • -p: password
  • -f: long format (same on the Web UI).

Full command:

rabbitmqadmin -u <USERNAME> -p <PASSWORD> get queue=<QUEUENAME> count=n -f long

Purge queue:

rabbitmqadmin purge queue name=<QueueName>

We can use HTTP API instead. Some of the endpoints:

  • GET {{rabbitmq_url}}/api/definitions - The server definitions - exchanges, queues, bindings, users, virtual hosts, permissions, topic permissions, and parameters. Everything apart from messages.
  • GET {{rabbitmq_url}}/api/queues?page=1&use_regex=true&name=^{{productQueue}}$ - A list of all queues. Use pagination parameters to filter queues.
  • POST {{rabbitmq_url}}/api/queues/%2F/{{productQueue}}/get?page=1 - Get messages from a queue (This is not an HTTP GET as it will alter the state of the queue). The value %2F is the encoded value of / vhost.

Remember to use basic authentication of HTTP when call those API if needed.

Resources