RabbitMQ
Overview Copied
RabbitMQ is an open source message broker that supports multiple messaging protocols. It is a message querying library used to communicate in scalable distributed systems.
The RabbitMQ integration provides a Gateway configuration file that enables monitoring of RabbitMQ environment through a set of pre-configured Toolkit samplers.
This guide walks you through the integration process.
Intended audience Copied
This user guide is intended for experienced Geneos users who want to set up and configure an integration between Geneos and RabbitMQ. This is also intended for users who are monitoring data from the RabbitMQ environment.
As a user, you should be familiar with Python and with general administration of the RabbitMQ services.
Prerequisites Copied
The following requirements must be met before the installation and setup of the template:
- Geneos 4.11 or higher.
- Python 2.7 or higher.
- Access to the RabbitMQ environment (version 1.1 or higher).
Setup and configuration Copied
The RabbitMQ monitoring integration is largely preconfigured and involves these primary steps:
- Download the integration files
- Load the integration files
- Associate the samplers with a managed entity
Note
The include files are intended to be read-only and should not be edited (unless the integration specifically requires for them to be modified). This is because include files can be shared between a few instances of a Gateway and best practice is to share them in their default state. It is also to make the upgrades and maintenance process of the integration files easier. All configuration should be carried out in your local Gateway files instead.
Download the integration files Copied
- Download the integration package
geneos-integration-rabbitmq-<version>.zip
from the ITRS Downloads site. - Save the files on the same machine where your Gateway is running.
The integration package includes the include/rabbitmqMonitoring.xml
file. This is a Gateway configuration file (also called an include file) containing Toolkit samplers configured for RabbitMQ monitoring integration.
Load the integration files Copied
To load the integration files into the Gateway Setup Editor, follow these steps:
- Open Gateway Setup Editor.
- In the Navigation panel, click Includes to create a new file.
- Enter the location of the file to include in the Location field. In this example, it is the
include/rabbitmqMonitoring.xml
. - Update the Priority field. This can be any value except
1
. If you input a priority of1
, the Gateway Setup Editor returns an error. - Expand the file location in the Include section.
- Select Click to load.
- Click Yes to load the new include file.
Success
The Gateway configuration now appears in the Includes section.
Associate the samplers with a managed entity Copied
After you have loaded the configuration file, the RabbitMQ samplers become available for use. These samplers are associated with a predefined Type. To associate the samplers with a managed entity, follow these steps:
- In the Gateway Setup Editor, create a new managed entity by right-clicking the Managed entities folder.
- Under the Basic tab for the new managed entity, add a pre-configured type. There are two types available, you can add either of them or both:
RabbitMQ
andRabbitMQ-Queues
. - Specify the environment associated with the samplers. By default, this is
RabbitMQ
. - Apply the managed entity to the running Netprobe.
- Click Validate current document to check your configuration.
- Click Save current document to apply the changes.
Success
After you save your changes to the managed entity, the RabbitMQ dataviews appear under the managed entity on the state tree.
For more information about include files, see the Include files in Gateway Setup Editor.
Environment configuration Copied
The default environment configuration is created by the rabbitmqMonitoring.xml
script. You can create a new environment based on the default one and modify the environment variables according to your system.
Note
Standard variable scoping rules apply when variable reference is used in include files. Please take note of that when creating your own variables. For more information, see Variable Scoping and Resolution.
Environment variables Copied
The rabbitmqMonitoring.xml
script provides the variables that are set in the Environments section. These are configured to ensure that the integration monitors your target RabbitMQ environment.
Variable | Type | Description |
---|---|---|
PYTHON_PATH | String | Path of the Python library located on the machine where the Netprobeis running. |
RABBITMQ_SCRIPT | String |
Python script for listing out RabbitMQ information. |
RABBITMQ_SAMPLE | Integer | Frequency of sampling. If checks are executed manually, the value is shown as 0 . |
RABBITMQ_LABEL | String | Used to assign a name to a group of samplers. |
RABBITMQ_SERVER | String | Host and port to your RabbitMQ server. Note: Do not include |
RABBITMQ_USER | String | Username that is used with RabbitMQ. |
RABBITMQ_PASS | String | Password that is used with RabbitMQ username. |
You can also use environment variables when configuring the samplers. The available environment variables are:
Variable | Type | Description |
---|---|---|
GET_MQ_VHOSTS | Boolean | Gets a list of virtual hosts and their properties. |
GET_MQ_NODES | Boolean | Gets a list of nodes and their properties. |
GET_MQ_OVERVIEW | Boolean | A high-level overview of your RabbitMQ environment. |
GET_MQ_EXCHANGES | Boolean | Gets a list of exchanges and their properties. |
GET_MQ_QUEUES_INFO | Boolean | Gets a list of queues and their metadata. |
GET_MQ_QUEUES_STATS | Boolean | Gets a list of queues and their performance, and health statistics. |
Metrics and dataviews Copied
The RabbitMQ monitoring integration provides a number of samplers each with a default dataview. The sections below show example dataviews.
Note
Your access to the dataviews in Geneos depends on your permission levels in RabbitMQ. If you do not have permission to view a certain pod, you will not see applicable dataviews in Active Console.
RabbitMQ-Exchanges Copied
This sampler displays a list of exchanges and their properties.
Headline field | Description |
---|---|
execDuration |
Elapsed time for the Toolkit plug-in to run the script. Unit: seconds |
Column Name | Description |
---|---|
name | Name of the RabbitMQ exchange. |
vhost | Indicates which virtual host the exchange belongs to. |
autoDelete | Indicates if the queue gets automatically deleted when all consumers have finished using it. |
durable | Indicates if the exchange is configured with a parameter durable . |
type | Type of the exchange. Available types are: direct, default, topic, fanout, headers and dead letter exchange. |
internal | Indicates if an event is internal. |
RabbitMQ-Nodes Copied
This sampler retrieves a list of nodes and metadata statistics for the individual nodes.
Headline field | Description |
---|---|
execDuration |
Elapsed time for the Toolkit plug-in to run the script. Unit: seconds |
RabbitMQ-Overview Copied
This sampler displays the high level overview of the RabbitMQ environment.
Headline field | Description |
---|---|
execDuration |
Elapsed time for the Toolkit plug-in to run the script. Unit: seconds |
RabbitMQ-QueueInfo Copied
This sampler displays a list of queues and metadata statistics for those queues.
Headline field | Description |
---|---|
execDuration |
Elapsed time for the Toolkit plug-in to run the script. Unit: seconds |
RabbitMQ-QueueStats Copied
This sampler displays a list of queues and usage statistics for those queues.
Headline field | Description |
---|---|
execDuration |
Elapsed time for the Toolkit plug-in to run the script. Unit: seconds |
RabbitMQ-VHosts Copied
This sampler displays a list of virtual hosts (vhosts) and metadata statistics for those virtual hosts.
Headline field | Description |
---|---|
execDuration |
Elapsed time for the Toolkit plug-in to run the script. Unit: seconds |