For Monitoring RabbitMQ, Applications Manager uses the Management Plugin provided by default RabbitMQ installations to collect performance metrics. The Management plugin provides a series of API endpoints required to monitor the target RabbitMQ instance. The following are the list of endpoints utilized by Applications Manager to collect performance metrics for a target RabbitMQ instance:
- /api/nodes
- /api/queues
- /api/exchanges
- /api/connections
- /api/channels
Monitoring a Clustered RabbitMQ setup
In Applications Manager, you can only monitor single node setups of RabbitMQ instances. Applications Manager does not support clustering for RabbitMQ monitor yet. While this is yet to be supported, you can still monitor a Clustered RabbitMQ setup efficiently without adding every single node in the clusters as individual monitors.
Before proceeding any further, we need to take the following points into account,
- All nodes are equal peers in a RabbitMQ Cluster.
- Management plugin can be enabled in any node present in a Clustered RabbitMQ setup.
- Management Plugin can be used to view/collect information pertaining to an entire cluster from any node that is present in the cluster setup.
Since the Management Plugin can be enabled in any node present in the Clustered RabbitMQ instance and because every node points to the same data that pertains to a entire cluster, it is not necessary to enable the Management Plugin in every node present in the cluster. You do not need to add them as individual monitors either as they will be considered as duplicate monitors.
Alternatively, Management plugin can be enabled in any one of the RabbtiMQ nodes present in a Clustered RabbitMQ setup which can then can be added as a single monitor in Applications Manager. This will be used to monitor all the components present in the entire cluster. This approach will reduce considerable load on both Applications Manager and the target RabbitMQ instances.
While the Clustered RabbitMQ components can be monitored using a single RabbitMQ monitor, you can monitor the RabbitMQ processes individually by adding them as separate server monitors and configuring them to monitor the respective RabbitMQ processes.