# Plugin Openstack # 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": [![1.JPG](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/1.JPG)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/zwe2.JPG)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/zwe2.JPG) Abrimos el fichero y vemos las credenciales: [![3-2.jpg](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/3-2.jpg)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/4.JPG)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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)stringDominio del user.
username (requerido)stringNombre del user.
password (requerido)stringPassword del user.
*Project Domain* (opcional)stringDominio del proyecto.
*Project Name* (opcional)stringNombre del proyecto.
*Project ID* (opcional)stringId del proyecto
*Ejemplo de uso del curl:* *[![5-2.jpg](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/5-2.jpg)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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 -t [-i ] [-n ][ -g ] [ --data_dir ] ``` Si la ejecución ha sido correcta veremos un ‘1’ al ejecutar el plugin. [![image-1627041029575.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1627041029575.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1627040751499.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1627041058267.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/scaled-1680-/register-plugin.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/register-plugin.png)** Daremos a seleccionar archivo. **[![register_plugin2.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/scaled-1680-/register-plugin2.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/register-plugin2.png)** Seleccionaremos el fichero.pspz2 que hemos descargado previamente. **[![registerplugin.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/scaled-1680-/registerplugin.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/registerplugin.png)** Una vez subido, se nos mostrará este mensaje, evidenciando que se ha subido correctamente. **[![register_plugin openstack_.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/scaled-1680-/cskregister-plugin-openstack.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/cskregister-plugin-openstack.png)** Una vez registrado el plugin, lo veremos en el apartado plugins. [![serversingles.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/scaled-1680-/serversingles.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/serversingles.png) Podremos ver como se ha cargado y acceder a el pinchando en su título. **[![register_openstack.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/scaled-1680-/register-openstack.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/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](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/scaled-1680-/register-plugin-openstack.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/register-plugin-openstack.png)** Abajo, se podra insertar el valor de la macro en el campo "Default value". **[![register_plugin_openstack.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/scaled-1680-/Mt5register-plugin-openstack.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-04/Mt5register-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@:/usr/share/pandora_server/util/plugin ``` [![image-1626775607623.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626775607623.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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 -t ``` [![image-1627041013653.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1627041013653.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1627041013653.png) se nos crearan los agentes en nuestra consola de pandora, en recursos > gestionar agentes [![image-1627041112654.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1627041112654.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/twT1.JPG)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/twT1.JPG) Bajamos y le damos en "añadir plugins": [![2.JPG](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/Nnh2.JPG)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/Nnh2.JPG) Le ponemos nombre y descripción : [![3.JPG](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/3.JPG)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/1si4.JPG)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/1si4.JPG) Configuramos los macros introduciendo el nombre que queramos para cada uno, y su atributo. [![5.JPG](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/5.JPG)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1627041132382.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1627041132382.png) **Módulos del agente de la instancia**
**Nombre****Descripción**
memorymemory used by the machine
memory-actualmemory actual used by the machine
memory-rssResident Set Size and is used to show how much memory is allocated
vda\_errorsdiagnostics for a libvirt based instance, vda receibed errors
vda\_readdiagnostics for a libvirt based instance, vda dates read
vda\_read\_reqdiagnostics for a libvirt based instance, vda dates requests read
vda\_writediagnostics for a libvirt based instance, vda dates write
vda\_write\_reqdiagnostics for a libvirt based instance, vda write requests dates
[![instance.JPG](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/instance.JPG)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/instance.JPG) **Módulos generados en los agentes de los hypervisores:**
**Nombre****Descripción**
free\_disk\_gbavalaible disk space
free\_ram\_mbavailable ram
disk\_available\_leastthis value is dependent on over committed value of disk, disk\_available\_least = disk\_free\_gb - disk\_over\_committed
local\_gbthe total available disk for the node's virtual machine, local\_gb = local\_gb\_used + free\_disk\_gb
local\_gb\_usedthe sum of the node's virtual machine disk
memory\_mbthe total ram of the node, memory\_mb\_used + free\_ram\_mb
memory\_mb\_usedthe sum of the rams of the node's virtual machine
vcpusnode ​​physical cpu total threads
vcpus\_usedthe sum of the vcpus of the node virtual machine
current\_workloadhypervisor current workload
host\_iphypervisor host ip
hypervisor\_typehypervisor type
hypervisor\_versionhypervisor version
running\_vmsnumber of virtual machines running
[![hypervisor.JPG](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/hypervisor.JPG)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/6.JPG)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/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.