Plugin de Mist

Este plugin de servidor monitoriza el estado de los dispositivos dados de alta en cada zona del Cloud de Mist.

Introducción

Ver. 130721

Este plugin se usará para monitorizar los dispositivos dados de alta en el Cloud de Mist.

Conecta con el servicio del Cloud de Mist para obtener los datos de las zonas registradas y los dispositivos en cada zona, y envía esta información al servidor de Pandora FMS en el que se ha ejecutado el plugin.

Tipo: Plugin de servidor.

Matriz de compatibilidad

Sistemas en los que se ha probado CentOS 7
Sistemas en los que debería funcionar Cualquier sistema operativo que tenga instalado un servidor de Pandora FMS.

Pre-requisitos

Para poder ejecutar el plugin es necesario:

Configuración

Tanto el Data Server como el Plugin Server se encuentran habilitados por defecto en una instalación de Pandora FMS. Sin embargo, es recomendable comprobar que estos servidores se encuentran habilitados, si no estamos seguros, accederemos al fichero de configuración del servidor, ubicado por defecto en /etc/pandora/pandora_server.conf

Los tokens "dataserver" y "pluginserver" deben encontrarse a 1:

dataserver 1

pluginserver 1

Dependiendo de la velocidad de conexión a internet entre el servidor de Pandora FMS y la API de Mist y el número de dispositivos dados de alta en el entorno, el plugin puede tardar más o menos tiempo en extraer la información necesaria. Para evitar timeouts, es recomendable aumentar el valor del token "plugin_timeout" también en el fichero pandora_server.conf al menos a "20":

plugin_timeout 20

Una vez se ha terminado de editar este archivo, en caso de haber sido necesario, se debe reiniciar el servicio del servidor para aplicar cambios:

/etc/init.d/pandora_server restart 

Ejecución del plugin y parámetros

El plugin necesita permisos de ejecución para poder lanzarse manualmente. En caso de que no los tenga:

chmod +x pandora_mist

La ejecución del plugin y sus parámetros son:

./pandora_mist -t <token> -o <org_id> [ -g <group> ] [ -p <prefix> ] [ --data_dir <data_dir> ]

Parameter Description
-h Muestra la pantalla de ayuda del plugin
-t <token>, --token <token> Obligatorio. Token de la API de Mist
-o <org_id>, --org <org_id> Obligatorio. Organization ID del entorno del que se extraerá la información de las zonas

-g <group>, --group <group>

Grupo al que pertenecerán los agentes creados. Por defecto: Mist
-p <prefix>, --prefix <prefix> Prefijo en los nombres de los agentes creados. Por defecto: Mist
--data_dir <data_dir> Directorio de lectura de ficheros de datos . Por defecto: /var/spool/pandora/data_in

Si la ejecución se ha llevado a cabo correctamente, el plugin devolverá un "1" como dato.

Cómo crear un apitoken de Mist

El apitoken es un parámetro obligatorio para autenticarse en la API de Mist y que el plugin sea capaz de extraer los datos para crear los agentes y módulos.

Crear un apitoken nuevo

Estando logado en la cuenta de Mist, abre una nueva pestaña en el mismo navegador y ve a la siguiente url para abrir la llamada a la API "Getall Create Apitoken":

https://api.eu.mist.com/api/v1/self/apitokens

(la url puede depender de tu región)

Pulsa en el botón "POST" para crear un nuevo apitoken:

getapitoken.png

Mostrar todos los apitokens creados

Para mostrar todos los apitokens creados en la cuenta, podemos usar la misma llamada que la usada para crearlos (sin presionar en el botón de POST esta vez):

https://api.eu.mist.com/api/v1/self/apitokens

Necesitaremos el valor "key" de cualquier apitoken funcionando para usarlo en nuestro plugin.

Cómo saber el "Organization ID"

El plugin extrae los datos de todas las zonas y dispositivos registrados en una Organización de Mist. Es obligatorio mandar como parámetro el valor "Organization ID" de tu cuenta de Mist. Si tu entorno tiene más de una Organización, será necesario lanzar el plugin tantas veces como Organizaciones haya.

Puedes ver el "Organization ID" estando logado en tu cuenta de Mist y navegando en el menú a Organization>Settings

orgid1.png

En esta pantalla se puede encontrar el valor "Organization ID" justo de bajo del nombre de la Organización:

orgid2.png

Configuración en Pandora FMS

Este plugin es un plugin de tipo servidor que se distribuye en formato pspz2, por lo tanto la integración en Pandora FMS es muy simple y se puede realizar enteramente desde la consola. En primer lugar, es necesario descargar el archivo "mist-plugin.pspz2" desde la librería de módulos de Pandora FMS. Con este archivo descargado:

Por defecto, los agentes creados por el plugin pertenecerán a un grupo llamado "Mist". Si no quieres cambiar ese grupo, el primer paso será crear este grupo "Mist". Puede realizarse en Profiles>Manage agent groups y pulsando en "Create group":

mist7.png

Con el grupo "Mist" creado (recuerda que ese paso es opcional), ve a Servers>Register plugin:

mist1.png

En esta pantalla pulsa en "Seleccionar archivo" y busca el archivo "mist-plugin.pspz2" que se ha descargado anteriormente. Después de pulsar en el botón "Upload", el plugin de servidor se creará automáticamente:

mist2.png

Ahora es necesario crear el módulo de plugin de servidor que lanzará el plugin de mist y actualizará los módulos creados en cada intervalo.

Ve a la vista de Módulos en el agente en el que quieras almacenar y controlar el módulo que lanzará el plugin (o crea un nuevo agente para almacenar este módulo). Puedes ir directamente a esta vista desde Resources>Manage agents y pulsando en Modules debajo del nombre del agente:

mist3.png

En esta vista "Módulos" selecciona el box del Type como "Create a new plugin server module" y pulsa en Create:

mist4.png

En esta vista de creación del módulo, selecciona:

-Name: [nombre deseado para el módulo]

-Type: Generic boolean

-Plugin: Mist Plugin

Tras seleccionar "Mist Plugin" en la caja, los campos "apitoken", "organization ID", "group", "prefix" y "data dir" serán cargados. Rellénalos con los campos que desees, pero recuerda que el "apitoken" y el "organization ID" son parámetros obligatorios para la ejecución del plugin y deben ser rellenados correctamente con la información de tu Mist API:

mist5.png

Tras pulsar en Create, el módulo que ejecuta el plugin se creará. Si hay algún problema con la conexión a la API de Mist o con el apitoken, el valor del módulo será "0" y pasará a estado Critical. Si todo está correctamente, el valor del módulo debe ser "1":

mist6.png

Módulos generados por el plugin

Si no hay ningún error de conexión, el plugin creará un agente por cada zona que haya en la cuenta de Mist que corresponda con el "Organization ID" que se le ha pasado como parámetro. Por cada uno de estos agentes:

Los módulos creados serán:

Nombre del módulo Descripción
Total devices connected Total devices connected
Total devices not connected Total devices not in "connected" status
[device_type]_[device_name]_[device_MAC] IP: [device_ip]. Status: [device_status]

Se creará un módulo por cada dispositivo que haya en la zona configurada en el Cloud de Mist, de tipo booleano que permanecerá en estado "OK" siempre que el estado que muestre en Mist sea "connected".

Los valores [device_type] [device_name] y [device_MAC] son extraídos directamente de los configurados en el Cloud de Mist.

mist8.png

mist10.png