MQTT

Plugin para suscribirse a un tema MQTT y recibir mensajes, basándose en filtros y en el formato del texto del mensaje.

Introducción

Este plugin tiene como finalidad poder recibir mensajes de un topic de MQTT, teniendo la posibilidad de aplicar filtros como palabras o el formato del texto de los mensajes esperados.

El plugin realiza todas estas acciones mediante un cliente con el que conecta.

Matriz de compatibilidad

Sistemas donde se ha probado Rocky linux, Fedora 34
Sistemas donde funciona Cualquier sistema linux

Pre requisitos

Parámetros

Parámetros de conectividad

-i, --host
Dirección del servidor MQTT'
-p, --port
Puerto del servidor MQTT

Parámetros para recibir mensajes y filtrar

-r, --suscribe_topic
Tema de suscripción MQTT
-t, --time
Duración del tiempo de ejecución en segundos
-f, --filter
Filtro (palabra) a aplicar. Solo se recibiran mensajes que contengan la palabra.
-k, --format
Formato de texto de los mensajes esperados a recibir
-l, --limit
Limite de mensajes

Parámetros configuración Pandora

--agent_name
Nombre del agente que se creará o en el que se creará el módulo
--interval Intervalo de monitorización del agente
--temporal Directorio temporal de PandoraFMS
--data_dir
Directorio de datos de PandoraFMS
--group
Grupo de destino de PandoraFMS
--transfer_mode
Modo de transferencia de datos, local o tentacle
--tentacle_client
Ruta del cliente de tentacle, por defecto "tentacle_client"
--tentacle_opts
Opciones adicionales de tentacle
--tentacle_port
Puerto de tentacle
--tentacle_address
IP de tentacle

Parámetros extra

--log_file
Ruta donde se generará el archivo de logs

Ejecución manual

El formato de ejecución del plugin es el siguiente:

./pandora_mqtt --agent_name < agent name > --host < host > --port < port >  \
[ --subscribe_topic < subscribe_topic > ] [ --time < time > ] \
[ --filter < filter > ] [ --format < format > ] [ --limit < limit > ] \
[ --transfer_mode < local o tentacle > ] [ --tentacle_port < tentacle_port > ] \
[ --tentacle_address < tentacle_address > ] [ --tentacle_client < tentacle client path ] \
[ --tentacle_opts < tentacle extra options ][ -g < group > ] [ --data_dir < data dir > ] \
[ --temporal < temporary directory path > ] [ --interval < interval agent monitorings in seconds > ] \ 
[ --logfile < logfile path > ]

Configuración en PandoraFMS

Para configurar el plugin en PandoraFMS, se deben seguir los siguientes pasos :

1. Subir el plugin a PandoraFMS, por ejemplo en la siguiente ruta:

/etc/pandora/plugin

2. Dirigirse al apartado plugins y crear uno nuevo:

imagen.png

    3. Se le añade nombre, descripción y timeout:

imagen.png

4. Se añade la ruta del plugin en el comando y los parámetros necesarios para la ejecución de este.

Para cada parámetro se debe configurar una macro, siendo la sintaxis de esta macro la siguiente : _fieldx_, siendo x el numero posicional del parámetro, por ejemplo en la siguiente imagen vemos los parámetros que es necesario usar para suscribirse a un topic y recibir mensajes.

imagen.png

5. Se configurar las macros anteriores, añadiendo en cada una el valor del parámetro:

imagen.png

 

6. Una vez configurado se debe crear un módulo en un agente que ejecute el plugin. En el menu de módulos de un agente creamos un módulo de tipo plugin nuevo:

imagen.png

7. En el menú de configuración del módulo, le ponemos un nombre, seleccionamos el plugin antes cnfigurado y se le debe dar a "crear".

imagen.png

8. En el agente seleccionado con el parámetro --agent_name, se creará un nuevo módulo de formato lista, que contendrá los mensajes recibidos por la ejecución del plugin

imagen.png

Agente y módulos generados por el plugin

MQTT.<topic de subscripción>.results
Resultados obtenidos en formato lista, es decir, los mensajes recibidos que han pasado los filtros usados.