Plugin Openstack
Plugin para coger datos de monitorización de una instalación de open stacks.
- Introducción
- Matriz de compatibilidad
- Pre requisitos
- Configuración
- Parametros generales del plugin
- Parametros específicos del plugin
- Ejecución manual
- Configuración en pandora
- Modulos generados por el plugin
- Preguntas frecuentes
- Posibles causas de error
Introducción
Ver.
Con este plug-in podremos ver los datos de monitoreo de tus instancias e hypervisores de openstack.
Se conecta a la cuenta mediante un token.
Tipo: Plug-in de servidor
Matriz de compatibilidad
Sistemas donde se ha probado |
CentOS 7 |
Sistemas donde debería funcionar |
Cualquier sistema linux |
Pre requisitos
Se requiere:
- Una instalación de Openstack
- Generar un token de lectura de la API mediante un comando curl con tus credenciales de la cuenta de Openstack
- Tener instalado python3 en la maquina en la que este instalado pandora.
- Tener instalado el modulo requests en su versión de python3.
- Tener el Data Server de Pandora FMS habilitado
- Tener el Plugin Server de Pandora FMS habilitado
Configuración
El plugin hace uso de un token, que autenticara con la api cuando lo introduzcamos como parámetro en el comando. Para crear este token, vamos a ir a nuestro Dashboard y vamos a pinchar en "acceso a la api":
Dentro de aqui, vamos a descargarnos el fichero "admin-openrc.sh", dentro de este fichero podremos ver todas las credenciales que tenemos que meter en un curl para generar el token (si conoces todas estas credenciales, no es necesario descargar el fichero, en el apartado "ver credenciales" salen algunas pero no todas, entre ese apartado y el fichero podréis comprobar todos los datos).
Abrimos el fichero y vemos las credenciales:
Este fichero también sirve para autenticarnos en la maquina que tengamos instalado openstack y poder hacer uso del CLI, pero no vamos a hacer uso de esto en este manual (la imagen siguiente sería una muestra de como se ejecutaría, trás esto nos pediría el password, que es el mismo con el que entras al dashboard).
Trás hacer esto, ejecutamos el siguiente comando, introduciendo nuestras credenciales en cada apartado:
curl -v -s -X POST $OS_AUTH_URL/auth/tokens?nocatalog -H "Content-Type: application/json" -d '{ "auth": { "identity": { "methods": ["password"],"password": {"user": {"domain": {"name": "'"$OS_USER_DOMAIN_NAME"'"},"name": "'"$OS_USERNAME"'", "password": "'"$OS_PASSWORD"'"} } }, "scope": { "project": { "domain": { "name": "'"$OS_PROJECT_DOMAIN_NAME"'" }, "name": "'"$OS_PROJECT_NAME"'" } } }}' \
| python -m json.tool
Necesitaremos introducir los siguientes datos :
Parámetro | Tipo | Descripción |
User Domain (requerido) | string | Dominio del user. |
username (requerido) | string | Nombre del user. |
password (requerido) | string | Password del user. |
Project Domain (opcional) | string | Dominio del proyecto. |
Project Name (opcional) | string | Nombre del proyecto. |
Project ID (opcional) | string | Id del proyecto |
Ejemplo de uso del curl:
En X-Subject-Token podemos ver el token generado. Este será el que habrá que introducir al ejecutar el plugin.
A su vez, para hacer uso del plugin tendremos que tener instalado python 3 y el modulo requests, para python 3 usaremos el siguiente comando en centOS7:
yum install python3
Para instalar el módulo requests usaremos :
pip3 install requests
Parametros generales del plugin
python3 pandora_openstack.py -u <url> -t <token> [-i <instances>] [-n <node>][ -g <group> ] [ --data_dir <data_dir > ]
Si la ejecución ha sido correcta veremos un ‘1’ al ejecutar el plugin.
Parametros específicos del plugin
El plug-in cuenta con los siguientes parámetros:
Parámetro |
Descripción |
-u URL, --url URL |
Es obligatorio. Para introducir tu url de autenticación. |
-h, --help |
Muestra un pequeño mensaje de ayuda. |
-t TOKEN, --token TOKEN |
Es obligatorio. Para introducir el token generado en Digital Ocean |
-i , --instances |
Poner a 0 para deshabilitar la creación de agentes de instancias, por defecto habilitado, a 1 para habilitar. |
-n, --node |
Poner a 0 para deshabilitar la creación de agentes de instancias, por defecto habilitado, a 1 para habilitar. |
-g GROUP, --group GROUP |
Grupo de destino de Pandora FMS |
--data_dir DATA_DIR |
Directorio de datos de Pandora FMS. Por defecto es /var/spool/pandora/data_in/ |
Ejemplo de ayuda:
Ejecución manual
Podemos comprobar el plugin desde el terminal para ver si funciona, para comprobarlo, ejecutamos el plugin:
Configuración en pandora
Instalación desde consola
Para el registro del plugin, desde la consola, se debe ir al apartado "registrar plugin".
Daremos a seleccionar archivo.
Seleccionaremos el fichero.pspz2 que hemos descargado previamente.
Una vez subido, se nos mostrará este mensaje, evidenciando que se ha subido correctamente.
Una vez registrado el plugin, lo veremos en el apartado plugins.
Podremos ver como se ha cargado y acceder a el pinchando en su título.
En el menú del plugin podremos ver las macros precargadas, no obstante saldrán todas, se debe investigar cuales son las apropiadas para cada uso, y en el caso que no sea necesario el uso de algunas, borrarlas.
Abajo, se podra insertar el valor de la macro en el campo "Default value".
Instalación manual
La mejor forma de manejar plugins de servidor en Pandora es desde "/usr/share/pandora_server/util/plugin" asi que lo enviaremos por pscp a esa ruta :
Nos ubicamos en el terminal desde la ruta en la que tenemos ubicado el plugin e introducimos el siguiente comando :
pscp -P 22 pandora_openstack.py root@<ip-de-la-maquina>:/usr/share/pandora_server/util/plugin
Ahora , si entramos en la carpeta en la que hemos ubicado el plugin:
cd /usr/share/pandora_server/util/plugin
y lo ejecutamos con los párametros mencionados anteriorme :
python3 pandora_openstack.py -u <url> -t <token>
se nos crearan los agentes en nuestra consola de pandora, en recursos > gestionar agentes
También se podría crear desde el menu de plugins de servidor, para ello, vamos al menu "servidores" y damos en "plugins" :
Bajamos y le damos en "añadir plugins":
Le ponemos nombre y descripción :
Configuramos los parametros que va a utilizar, en este caso, los 3 imprescindibles son los de la url, instancia y token, son macros. En comando del plugin, introducimos la ruta en la que tenemos ubicado el plugin.
Configuramos los macros introduciendo el nombre que queramos para cada uno, y su atributo.
Para ver como podemos conseguir el token, mira en el apartado de este manual "configuración".
Para ver como podemos saber la url y la id de la instancia, ve a "preguntas frecuentes".
Modulos generados por el plugin
Se creara un agente por cada instancia de nuestra instalación openstack, con sus métricas . Aparte se creará un agente por cada hypervisor utilizado de nuestra instalación.
Módulos del agente de la instancia
Nombre | Descripción |
memory | memory used by the machine |
memory-actual | memory actual used by the machine |
memory-rss | Resident Set Size and is used to show how much memory is allocated |
vda_errors | diagnostics for a libvirt based instance, vda receibed errors |
vda_read | diagnostics for a libvirt based instance, vda dates read |
vda_read_req | diagnostics for a libvirt based instance, vda dates requests read |
vda_write | diagnostics for a libvirt based instance, vda dates write |
vda_write_req | diagnostics for a libvirt based instance, vda write requests dates |
Módulos generados en los agentes de los hypervisores:
Nombre | Descripción |
free_disk_gb | avalaible disk space |
free_ram_mb | available ram |
disk_available_least | this value is dependent on over committed value of disk, disk_available_least = disk_free_gb - disk_over_committed |
local_gb | the total available disk for the node's virtual machine, local_gb = local_gb_used + free_disk_gb |
local_gb_used | the sum of the node's virtual machine disk |
memory_mb | the total ram of the node, memory_mb_used + free_ram_mb |
memory_mb_used | the sum of the rams of the node's virtual machine |
vcpus | node physical cpu total threads |
vcpus_used | the sum of the vcpus of the node virtual machine |
current_workload | hypervisor current workload |
host_ip | hypervisor host ip |
hypervisor_type | hypervisor type |
hypervisor_version | hypervisor version |
running_vms | number of virtual machines running |
Preguntas frecuentes
¿ Donde se puede encontrar la url de autenticación con la API de mi instalación openstack?
En acceso a la API, el endpoint del servicio "Compute".
¿Como genero un token de autenticación?
Esta explicado detalladamente en el apartado "configuración" de este manual.
Posibles causas de error
Token caducado
El período de vida del token es limitado y configurable, asegúrese que el token que usas es válido.
Instancias openstack apagadas
Para poder pillar los datos de las instancias estas deben estar activas y corriendo, si no puede dar error a la hora de pillar los datos.