# MQTT
# 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
- Es necesaria conectividad hacia el host y topic del que se pretende recibir mensajes.
# 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:**
[](https://pandorafms.com/guides/public/uploads/images/gallery/2024-01/VNOimagen.png)
**3. Se le añade nombre, descripción y timeout:**
[](https://pandorafms.com/guides/public/uploads/images/gallery/2024-01/ERUimagen.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.
[](https://pandorafms.com/guides/public/uploads/images/gallery/2024-01/HPnimagen.png)
**5. Se configurar las macros anteriores, añadiendo en cada una el valor del parámetro:**
[](https://pandorafms.com/guides/public/uploads/images/gallery/2024-01/sDmimagen.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:**
[](https://pandorafms.com/guides/public/uploads/images/gallery/2024-01/503imagen.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".**
[](https://pandorafms.com/guides/public/uploads/images/gallery/2024-01/kZHimagen.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**
[](https://pandorafms.com/guides/public/uploads/images/gallery/2024-01/3G0imagen.png)
# Agente y módulos generados por el plugin
- El plugin creará un agente con el nombre seleccionado con el parámetro --agent\_name. O en su defecto introducirá el módulo en un agente que ya exista con este nombre.
- El plugin creará un módulo:
MQTT.<topic de subscripción>.results
| Resultados obtenidos en formato lista, es decir, los mensajes recibidos que han pasado los filtros usados. |