Configure the Server Density agent to monitor your RabbitMQ instance to:
• Collect important metrics, such as performance, connections and utilisation
• Identify overall server slowdowns caused by the message broker
We do not support temporary RabbitMQ queues and these will be removed from your payloads upon payload processing. This includes queues with the prefixes
'celeryev.' or the suffix
- Acknowledgement Rate
- Deliver Rate
- Deliver Count
- Publish Count
- Acknowledgement Count
- Deliver get Count
- Deliver get Count
- Publish Rate
- Slave nodes
- Auto delete
- Idle since
- Message stats
- Messages unacknowledged
- Owner pid
- Exclusive consumer tag
- Active consumers
- Ready messages
- Message details
- Synchronised slave nodes
- Acks uncommitted
- Unacknowledged messages
- Backing queue status
- Messages uncommitted
- Messages ready
- Consumer Utilisation
- Redeliver Rate
- Redeliver Count
Installing the RabbitMQ plugin package
Install the RabbitMQ plugin on Debian/Ubuntu:
sudo apt-get install sd-agent-rabbitmq
Install the RabbitMQ plugin on RHEL/CentOS:
sudo yum install sd-agent-rabbitmq
Read more about agent plugins.
Configuring the agent to monitor RabbitMQ
1. To monitor RabbitMQ, you’ll need to install the Management Plugin. If you specify a user and password to connect to RabbitMQ, define it in step 2.
2. Configure /etc/sd-agent/conf.d/rabbitmq.yaml
# A 'rabbitmq_api_url' must be provided, pointing to the api url of the
# RabbitMQ Managment Plugin (http://www.rabbitmq.com/management.html)
# optional: 'rabbitmq_user' (default: guest) and 'rabbitmq_pass' (default: guest)
- rabbitmq_api_url: http://localhost:15672/api/
# Use the `nodes` or `nodes_regexes` parameters to specify the nodes you'd like to
# collect metrics on (up to 100 nodes).
# If you have less than 100 nodes, you don't have to set this parameter,
# the metrics will be collected on all the nodes by default.
# - rabbit@localhost
# - rabbit2@domain
# - bla.*
# Use the `queues` or `queues_regexes` parameters to specify the queues you'd like to
# collect metrics on (up to 200 queues).
# If you have less than 200 queues, you don't have to set this parameter,
# the metrics will be collected on all the queues by default.
# If you have set up vhosts, set the queue names as `vhost_name/queue_name`.
# If you have `tag_families` enabled, the first captured group in the regex
# will be used as the queue_family tag
# - queue1
# - queue2
# - thisqueue-.*
# - another_\d+queue
3. Restart the agent
sudo /etc/init.d/sd-agent restart
Verifying the configuration
Execute info to verify the configuration with the following:
sudo /etc/init.d/sd-agent info
If the agent has been configured correctly you’ll see an output such as:
rabbitmq ----- - instance #0 [OK] - Collected 25 metrics & 0 events
You can also view the metrics returned with the following command:
sudo -u sd-agent /usr/share/python/sd-agent/agent.py check rabbitmq
In order to create alerts on a queue you need to modify the queue name in the following ways:
1) Remove the host part from the queue name - e.g.
2) Replace periods with underscores - e.g.
A queue called
Production/App.Errors would need to be entered as
Click the name of your server from the Devices list in your Server Density account then go to the Metrics tab. Click the + Graph button on the right then choose the RabbitMQ metrics to display the graphs. The metrics will also be available to select when building dashboard graphs.