Geneos ["Geneos"]
["Geneos > Netprobe"]["User Guide"]

RabbitMQ

Overview

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

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

The following requirements must be met prior to 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

The RabbitMQ monitoring integration is largely preconfigured and involves these primary steps:

  1. Download the integration files
  2. Load the integration files
  3. 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

  1. Download the integration package geneos-integration-rabbitmq-<version>.zip from the ITRS Downloads site.
  2. 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

To load the integration files into the Gateway Setup Editor, follow these steps:

  1. Open Gateway Setup Editor.
  2. In the Navigation panel, click Includes to create a new file.
  3. Enter the location of the file to include in the Location field. In this example, it is the include/rabbitmqMonitoring.xml.
  4. Update the Priority field. This can be any value except 1. If you input a priority of 1, the Gateway Setup Editor returns an error.
  5. Expand the file location in the Include section.
  6. Select Click to load.
  7. 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

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:

  1. In the Gateway Setup Editor, create a new managed entity by right-clicking the Managed entities folder.
  2. 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 and RabbitMQ-Queues.
  3. Specify the environment associated with the samplers. By default, this is RabbitMQ.
  4. Apply the managed entity to the running Netprobe.
  5. Click Validate current document to check your configuration.
  6. 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

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 in User Variables and Environments.

Environment variables

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 HTTP:// in the server address.

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

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

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

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

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

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

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

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