Plugin Openstack

Plugin para coger datos de monitorización de una instalación de open stacks.

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:

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":

1.JPG

 

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).

2.JPG

 

Abrimos el fichero y vemos las credenciales:

3-2.jpg

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).

4.JPG

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:

5-2.jpg

 

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. 

image-1627041029575.png

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:

image-1627040751499.png

Ejecución manual

Podemos comprobar el plugin desde el terminal para ver si funciona, para comprobarlo, ejecutamos el plugin:

image-1627041058267.png

Configuración en pandora

Instalación desde consola

Para el registro del plugin, desde la consola, se debe ir al apartado "registrar plugin".

register_plugin.png

Daremos a seleccionar archivo.

register_plugin2.png

Seleccionaremos el fichero.pspz2 que hemos descargado previamente.

registerplugin.png

Una vez subido, se nos mostrará este mensaje, evidenciando que se ha subido correctamente.

register_plugin openstack_.png

Una vez registrado el plugin, lo veremos en el apartado plugins.

serversingles.png

Podremos ver como se ha cargado y acceder a el pinchando en su título.

register_openstack.png

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.

register_plugin openstack.png

Abajo, se podra insertar el valor de la macro en el campo "Default value".

register_plugin_openstack.png

 

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

image-1626775607623.png

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>

image-1627041013653.png

se nos crearan los agentes en nuestra consola de pandora, en recursos > gestionar agentes 

image-1627041112654.png

 

También se podría crear desde el menu de plugins de servidor, para ello,  vamos al menu "servidores" y damos en "plugins" :

1.JPG

Bajamos y le damos en "añadir plugins":

2.JPG

Le ponemos nombre y descripción :

3.JPG

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.

4.JPG

Configuramos los macros introduciendo el nombre que queramos para cada uno, y su atributo.

5.JPG

 

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.

image-1627041132382.png

 

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

instance.JPG

 

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

hypervisor.JPG

 

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".

6.JPG

 

¿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.