Meraki

Plugin con el que el posible monitorizar dispositivos de Meraki.

Introducción

Este plugin tiene como finalidad poder monitorizar dispositivos de meraki, de tipo appliance, switch y wireless.

El plugin conecta con la rest api de Meraki, para poder obtener todas las métricas.

Matriz de compatibilidad

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


Pre requisitos

Parámetros

Parámetros conexión Meraki

--url Url de conexión de la API, ejemplo : https://api.meraki.com/api/v1 . Por defecto: https://api.meraki.com/api/v1
--token Token bearer necesario para la autenticación
--id ID de la tienda, que identificara si el grupo existe en Pandora y creara el agente en este, y si existe la network en Meraki.
--organization ID de la organización en las que se escanearan las redes.
--timespan Intervalo de monitorización para las estadísticas de los puertos de un switch.

Parámetros configuración Pandora

--agent_prefix
Prefijo para todos los agentes creados por el plugin
--module_prefix Prefijo para todos los módulos creados por el plugin
--location Grupos secundarios añadidos al agente
--interval Intervalo de monitorización del agente
--temporal Directorio temporal de PandoraFMS
--data_dir
Directorio de datos 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 API Pandora

--api_url
Url de la API de Pandora. Ejemplo: http://172.42.42.101
Default: http://localhost
--api_user
Usuario de la API de Pandora. Ejemplo: admin. Default: admin
--api_pass
Contraseña del usuario de la API de Pandora. Ejemplo : pandora. Default : pandora
--api_user_pass
Contraseña del usuario de la API de Pandora. Ejemplo: 1234. Default: 1234

Parámetros Extra

--scan_appliance Deshabilitar el escaneo de dispositivos appliance con 0. Por defecto activado a 1.
--scan_switch Deshabilitar el escaneo de dispositivos switch con 0. Por defecto activado a 1.
--scan_wireless Deshabilitar el escaneo de dispositivos wireless con 0. Por defecto activado a 1.
--log_file Ruta en la que se guardará el fichero de logs, por ejemplo :
/tmp/meraki_logfile.txt

Ejecución manual

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

./pandora_meraki --id < id > --url < url > --token < token > --location < location > --organization < organization > --timespan < interval switch port data monitoring in seconds >
--module_prefix < module prefix > --agent_prefix < agent prefix >
[ --scan_appliance < 1 or 0 > ] [ --scan_switch < 1 or 0 > ] [ --scan_wireless < 1 or 0 > ]
[ --api_url < api url > ] [ --api_user < api user> ] [ --api_pass < api pass > ][ --api_user_pass < api user pass > ]
[ --transfer_mode < local o tentacle > ] [ --tentacle_port < tentacle_port > ] [ --tentacle_address < tentacle_address > ] [ --tentacle_client < tentacle client path ] [ --tentacle_opts < tentacle extra options ]
[ --data_dir < data dir > ] [ --temporal < temporary directory path > ] [ --interval < interval agent monitorings in seconds > ] [--log_file < log file >]

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:

/usr/share/pandora_server/util/plugin

2. Dirigirse al apartado plugins y crear uno nuevo:

imagen.png

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

image.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 son obligatorios, --id, --url, --token, --agent_prefix, --localization, --api_url y --tentacle_address ya que todos los demás se pueden usar con los valores default.

image.png

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

image.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 configurado y se le debe dar a "crear".

image.png

8. Se crearan los agentes en la siguiente ejecución del plugin :

image.png

Agentes y módulos generados por el plugin

La ejecución del plugin con la monitorización de todos los tipos de dispositivo habilidades creara los siguientes agentes:

< prefijo >< nombre dispositivo >

Con los siguientes módulos 

< prefijo modulo >status Estado del dispositivo, 1 si esta online, 0 de no ser el caso.
< prefijo modulo >perfScore Indica como de ocupado esta el dispositivo.

Y uno por cada interface :

< prefijo modulo >< Nombre interface >  Estado de la interface.
< prefijo >< nombre dispositivo >

Con los siguientes módulos 

< prefijo modulo >status Estado del dispositivo, 1 si esta online, 0 de no ser el caso.

Y los siguientes por cada puerto:

< port ID >_ifOperStatus 1 si esta habilitado, 0 de no ser el caso
< port ID >.ifInOctets Trafico total mandado en kb
< port ID >.T_ifOutOctets Tráfico total recibido en kb
< prefijo >< nombre dispositivo >

Con los siguientes módulos 

< prefijo modulo >status Estado del dispositivo, 1 si esta online, 0 de no ser el caso.
< prefijo modulo >totalKbps Kb de uso el ultimo día totales
< prefijo modulo >sentKbps Kb de uso el ultimo día envíados
< prefijo modulo >receivedKbps Kb de uso el ultimo día recibidos
< prefijo modulo >clientCount Conexiones de clientes totales