RabbitMQ

This plugin allows to obtain monitoring data from a RabbitMQ environment.

The information is obtained via web through the RabbitMQ API, so it is not necessary to install any additional software for its operation.

Introduction

This plugin allows to obtain monitoring data from a RabbitMQ environment.

The information is obtained via web through the RabbitMQ API, so it is not necessary to install any additional software for its operation.

This plugin is designed to work both as a server plugin and as an agent plugin, offering flexibility in its deployment according to your infrastructure and monitoring needs.

Compatibility matrix

Developed against:

RabbitMQ 3.7.18

Pre requisites

Connection to the RabbitMQ API is required from the machine where the plugin is launched.

Connection with the Tentacle service associated to your Pandora FMS server is required if it is not executed as an agent plugin.

The deployment of this plugin by binaries does not require any special requirement.

Configuration

The plugin configuration file is divided into blocks:

 


API access settings

##################

## RabbitMQ access

##################

 

## API host:port

host=192.168.80.20:8080

 

## OVM Manager user

user=guest

 

## OVM Manager password

pass=guest



host

IP address and connection port for the RabbitMQ API

 

user

RabbitMQ API login user

 

pass

Password of the specified user

 

Agent configurations

###################

## Agent parameters

###################

 

## Agent name (if not running as agent plugin)

agent_name=RabbitMQ

 

## Agent interval

interval=300



agent_name

Name of the agent to which the monitoring will be sent if the plugin is not running as an agent plugin.

 

interval

Monitoring interval for the indicated agent.





XML file transfer settings

######################

## Transfer parameters

######################

 

## Temporal folder

tmp=/tmp

 

## Transfer mode used to send XML file (tentacle or local)

transfer_mode=tentacle

 

## Local folder to copy XML file (used only if transfer_mode is not tentacle)

local_folder=/var/spool/pandora/data_in/

 

## Tentacle server IP

tentacle_ip=127.0.0.1

 

## Tentacle server port

tentacle_port=41121

 

## Tentacle extra options (if needed)

#tentacle_opts=

 

## Define Module Group

#module_group=General



tmp

Temporary directory where the agent XML files will be generated before transferring them to Pandora FMS server (if the plugin is not executed as agent plugin).

 


transfer_mode

File transfer method to be used. If it is not set as "tentacle" it will be considered that the transfer method is "local" (copying the XML files from the temporary directory to a defined one).

 


local_folder

Directory to which the XML files will be copied to if the transfer method is not set to "tentacle".

 


tentacle_ip

IP address to which the XML files will be sent if the transfer method is set to "tentacle".

 


tentacle_port

Port to connect to the Tentacle server specified in the "tentacle_ip" parameter.

 

tentacle_opts

Additional options for transferring files to the indicated Tentacle server.

 

module_group

Defines the group to which the modules will belong.




Additional configurations

###################

## Extra parameters

###################

 

## Set to 1 to run de plugin as an agent plugin

as_agent_plugin=1



as_agent_plugin

If set to "1" the plugin will be executed as an agent plugin. If set to "0" the plugin will generate XML files that will be transferred to Pandora FMS server to be processed.

Manual execution

To run the plugin configure the configuration file "rabbitmq_monitor.conf" according to the instructions above.

Execution of the plugin:

./rabbitmq_monitor rabbitmq_monitor.conf

With as_agent_plugin 1:

It will print by console the XML with the RabbitMQ information.

image.png

With as_agent_plugin 0:

 It will create the agent and the associated modules in Pandora, printing 1 as the final result.

image.png

Configuration in pandora

As a server plugin

We will go to servers > plugins:

image.pngclick in "add plugin":

image.png
We put in the name and description of your choice:

image.png

We enter as command the path to the plugin, and as parameters the ones we have entered by executing the plugin, the "_field_" fields are macros defined below.

image.png

We put for each macro the description of your choice and as value the data of your rabbitMQ

image.png

As agent plugin

We should enable the remote configuration, to enable it we have to open the pandora_agent.conf file:

vim /etc/pandora/pandora_agent.conf

Inside we look for the remote_config line, to enable it we set it to 1.

image.png

And after that we restart the agent :

/etc/init.d/pandora_agent_daemon restart

The remote configuration will have been activated, go to the agents menu and click on the remote configuration icon, which is as follows:

image.png

Then we go to plugin menu :

image.png

We enter the command, click in add:

image.png

Example:

/usr/share/pandora_server/util/plugin/rabbitmq_monitor /usr/share/pandora_server/util/plugin/rabbitmq_monitor.conf

A new plugin will have been created:

image.png

Once this is done, we restart the agent:

/etc/init.d/pandora_agent_daemon restart

And if we go to the agent with the remote configuration, the rabbitMQ modules will have been created.

Modules generated by the plugin


The standard execution of this plugin will return the following modules:

image.png