You are here
RabbitMQ Monitoring
RabbitMQ is message-queueing software, commonly labeled as a message broker or queue manager, that provides a method of exchanging data between processes, applications, and servers. It is a software where queues can be defined and gives your applications a common platform to send/receive messages and a secure place for them to reside until the message is received.
Here are a few highlight features of RabbitMQ:
- Robust messaging for applications
- Easy to use
- Runs on all major operating systems
- Supports a huge number of developer platforms
- Open source and commercially supported
What You Can Monitor
Opsview’s RabbitMQ monitoring is designed to pull important information from the RabbitMQ management API using your RabbitMQ credentials. If you are looking to build a hierarchy of your RabbitMQ infrastructure, we can help. Opsview can raise a notification, monitor using our time series graphs and even tie into a larger dashboard view for important services such as IO issues, memory utilization and more. Once downloaded, you can set notifications and thresholds within a few clicks.
Service Checks
Service Check | Description |
---|---|
check_mem_alarm | Returns critical if the memory alarm has gone off |
context_switches_details | Rate at which context switching takes place on this node during last statistics interval |
disk_free | Disk free space in bytes, will go critical if the disk_free_alarm is true |
fd_left | Number of file descriptors remaining |
fd_used | Percentage of file descriptors used |
io_read_avg_time | Average wait time (ms) for each disk read operation in the last statistics interval |
io_read_count | Rate of read operations by the persister in the last statistics interval |
io_seek_avg_time | Average wait time (ms) for each seek operation in the last statistics interval |
io_sync_avg_time | Average wait time (ms) for each fsync() operation in the last statistics interval |
io_write_avg_time | Average wait time (ms) for each disk write operation in the last statistics interval |
io_write_count | Rate of write operations by the persister in the last statistics interval |
mem_used | Total memory used |
running | Whether or not this node is up. |
sockets_left | File descriptors available for use as sockets remaining |
sockets_used | Percentage of file descriptors used as sockets |
RabbitMQ Monitoring Setup
Enabling the management API is done using the below command on the host to monitor:
rabbitmq-plugins enable rabbitmq_management
A new user for RabbitMQ with permissions - "monitoring" should be created, as node level data is required.
Example basic rabbitmq.config file:
[
{rabbit,
[
%% if want to test, using user/pass
%% guest/guest - and monitor from a non-loopback interface
%% uncomment next line to allow connections from any ip
{loopback_users, []},
%% In milliseconds
{collect_statistics_interval, 300000}
]
},
{rabbitmq_management,
[
%% should be set to basic or detailed
{rates_mode, basic},
%% change port to query management api here
{listener, [{port, 15672}]},
{sample_retention_policies,
%% list of {maxAgeSeconds,sampleEveryNSeconds}
[
{global, [{30000,300}]},
{basic, [{30000,300}]}
]
}
]
}
].
For more details see Enabling the Management API.
RabbitMQ Monitoring Setup and Configuration
Step 1: Add the Host Template
Add the Application - RabbitMQ Node Host Template to your Opsview Monitor host.
For more information, refer to Opsview Knowledge Center - Adding Host Templates to Hosts.
Step 2: Add and configure variables required for this host
Variable | Description |
---|---|
RABBITMQ_CREDENTIALS | Used for authenticating with the remote host. Override the Username, Password, Node Name and Port with your configuration details. |
For more information, refer to Opsview Knowledge Center - Adding Variables to Hosts.