The RabbitMQ Management UI
The RabbitMQ management plugin (rabbitmq_management) exposes both a web-based dashboard on port 15672 and a full HTTP API that the dashboard itself is built on top of. From the Overview tab you can see cluster-wide message rates (publish, deliver, ack, redeliver), node memory and disk usage, and file descriptor counts, which makes it the first place to look when diagnosing whether a slowdown is on the broker side or the application side.
Cricket analogy: Like a broadcaster's live scorecard graphic showing run rate, wickets, and overs at a glance, the Overview tab shows publish/deliver/ack rates at a glance so you instantly see the system's current tempo.
Inspecting Queues and Exchanges
The Queues tab lists every queue with its message count (ready vs unacked), consumer count, and per-second rates, and clicking into a queue shows a 'Get messages' tool that lets you peek at (or destructively requeue/discard) messages without writing consumer code. The Exchanges tab similarly lists every exchange and includes a 'bindings' view showing exactly which queues and routing keys are wired to it, which is invaluable for debugging why a message published with a given routing key isn't reaching the queue you expected.
Cricket analogy: Like a team analyst's spreadsheet showing each fielder's catches taken versus dropped, the Queues tab's ready-vs-unacked counts tell you exactly where messages are piling up versus being processed.
# The management UI is backed by an HTTP API you can script against directly
curl -u app_user:app_password \
http://localhost:15672/api/queues/%2f/email_notifications | jq
# Example output fields of interest:
# {
# "messages_ready": 42,
# "messages_unacknowledged": 3,
# "consumers": 2,
# "message_stats": { "publish_details": { "rate": 5.2 } }
# }Every action available in the management UI is backed by the HTTP API at /api/*. This means you can script health checks, automate queue creation, or feed metrics into a monitoring system like Prometheus (via the rabbitmq_prometheus plugin) using the same underlying data the dashboard displays.
Users, Permissions, and Virtual Hosts
The Admin tab is where you create users, assign tags (management, monitoring, administrator, or policymaker) that control what a user can see and do in the UI, and manage virtual hosts (vhosts), which are isolated namespaces within a single RabbitMQ cluster, each with its own exchanges, queues, and permissions. A common production pattern is one vhost per environment or per team, with per-vhost user permissions (configure, write, read) granted individually so a developer's account for a staging vhost has no access to production's vhost at all.
Cricket analogy: Like separate net-practice pitches at the same ground reserved for different squads so the U-19 team never touches the senior squad's setup, vhosts isolate namespaces within one RabbitMQ cluster.
The default guest user only has permission to connect from localhost by default, as a deliberate security measure. Do not simply grant guest remote access as a shortcut; instead create a dedicated user with a strong password and the minimum vhost permissions actually needed, especially before exposing the management UI or AMQP port beyond a trusted network.
- The management UI runs on port 15672 and is fully backed by an HTTP API at /api/*.
- The Overview tab shows cluster-wide message rates and node resource usage at a glance.
- The Queues tab shows ready vs unacknowledged message counts per queue, plus a 'Get messages' inspection tool.
- The Exchanges tab's bindings view helps debug why a routing key isn't reaching the expected queue.
- Virtual hosts (vhosts) isolate exchanges, queues, and permissions into separate namespaces within one cluster.
- User tags (management, monitoring, administrator, policymaker) control what actions a UI user can perform.
- The default guest account is restricted to localhost; production setups need dedicated users with minimal vhost permissions.
Practice what you learned
1. What underlies every feature of the RabbitMQ management UI?
2. In the Queues tab, what does the 'unacknowledged' count represent?
3. What is a RabbitMQ virtual host (vhost) used for?
4. What access does the default 'guest' user have out of the box?
5. Which tab would you use to see exactly which queues and routing keys are bound to a given exchange?
Was this page helpful?
You May Also Like
Installing and Running RabbitMQ
How to install RabbitMQ locally with Docker or a native package, start the broker, and enable the management plugin.
What Is RabbitMQ?
An introduction to RabbitMQ as a message broker that decouples producers and consumers using exchanges, queues, and bindings.
Producers and Consumers Basics
The fundamentals of writing RabbitMQ producers and consumers: publishing messages, subscribing to queues, acknowledgment, and prefetch.