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
- Matriz de compatibilidad
- Pre requisitos
- Parámetros
- Ejecución manual
- Configuración en PandoraFMS
- Agente y módulos generados por el plugin
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:
3. Se le añade nombre, descripción y timeout:
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.
5. Se configurar las macros anteriores, añadiendo en cada una el valor del parámetro:
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:
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".
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
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. |