# Oracle VM enterprise plugin

# Introducción

Este plugin permite obtener datos de un entorno de virtualización Oracle VM, generando agentes para cada uno de sus elementos y monitorizando estadísticas acerca de la virtualización.  
  
La información es obtenida vía web a través de la API REST del Oracle VM Manager, por lo que no es necesario instalar ningún software adicional en el entorno de Oracle VM.

# Matriz de compatibilidad

Desarrollado contra:  
● Oracle VM Manager 3.4.5.

# Prerrequisitos

Se requiere conexión con el servicio Tentacle asociado a su servidor de Pandora FMS.  
  
El despliegue de este plugin por binarios no requiere ningún otro requisito especial.  
  
Requiere la librería “​PandoraFMS::PluginTools.pm​”. Esta librería está disponible con la instalación del paquete Pandora FMS OpenSource. Puede descargar la última versión de:  
  
https://github.com/pandorafms/pandorafms/blob/develop/pandora\_server/lib/PandoraFMS/PluginTools.pm

# Configuración

El fichero de configuración del plugin “​ovm-plugin​” se divide en bloques (todos los parámetros de configuración se indicarán sin comillas aunque tengan espacios en blanco):  
  
**Configuraciones de acceso a la API REST**

```
################################
## OVM Manager access parameters
################################
## OVM Manager REST API URL
ovmm_api_url=https://192.168.70.70:7002/ovm/core/wsapi/rest/
## OVM Manager user
user=admin
## OVM Manager password
password=P4nd0r4OVM
```

  
**ovmm\_api\_url**  
URL de acceso a la API REST del Oracle VM Manager a monitorizar  
**user**  
Usuario de acceso a la API REST  
**password**  
Contraseña del usuario de acceso especificado  
  
**Configuraciones de los agentes generados**

```
####################
## Agents parameters
####################
## Agents group (if Pandora server autocreate_group is not set)
group=Servers
## Agents interval
interval=300
```

  
**group**  
Grupo al que se asignarán los agentes generados. Este grupo se tendrá en cuenta  
solo si el parámetro “​autocreate\_group​” del servidor de Pandora no se ha definido  
correctamente.  
**interval**  
Intervalo de monitorización en segundos de los agentes generados. Permitirá  
definir cuándo pasarán los módulos a estado desconocido (por defecto, 2 veces el intervalo  
definido sin recibir datos)

**Configuraciones de transferencia de los ficheros XML**

```
######################
## Transfer parameters
######################
## Temporal folder
tmp=/tmp
## Transfer mode used to send XML files (tentacle or local)
transfer_mode=tentacle
## Local folder to copy XML files (used only if transfer_mode is not tentacle)
local_folder=/var/spool/pandora/data_in/
## Tentacle server IP
tentacle_ip=127.0.0.1
## Tentacle server port
tentacle_port=41121
## Tentacle extra options (if needed)
#tentacle_opts=
```

  
**tmp**  
Directorio temporal en el que se generarán los ficheros XML de los agentes  
generados antes de su transferencia al servidor de Pandora FMS.  
**transfer\_mode**  
Método de transferencia de ficheros que se utilizará. Si no se establece como “​tentacle​” se considerará que el método de transferencia es “​local​” (copiando los ficheros XML del directorio temporal a uno definido).  
**local\_folder**  
Directorio al que se copiarán los ficheros XML si el método de transferencia no se establece como “​tentacle​”.  
**tentacle\_ip**  
Dirección IP al que se enviarán los ficheros XML si el método de transferencia se establece como “​tentacle​”.  
**tentacle\_port**  
Puerto al que conectarse al servidor de Tentacle indicado en el parámetro “​tentacle\_ip​”.  
**tentacle\_opts**  
Opciones adicionales para la transferencia de ficheros al servidor de Tentacle indicado.

**Configuraciones de renombrado de agentes**

```
#################
## Rename section
#################
## Change the default agent name to the desired agent name
## (By default, the agent name is the ID provided by the API except for OVM servers,
where it is the ID's MD5 hash)
#default_agent_name1=new_agent_name1
#default_agent_name2=new_agent_name2
```

  
De forma opcional, se pueden configurar tantos parámetros de renombrado de agentes como se quiera. Estos parámetros permitirán que el nombre de agente (​agent\_name​) utilizado se sustituya por el indicado. Por ejemplo:  
  
0004fb000009000059ae00c7b0568784=Oracle VM Server 1  
  
Cambiará el nombre del agente “​0004fb000009000059ae00c7b0568784​” por “​Oracle VM Server 1​” en los ficheros XML generados, y por tanto sus módulos se verán reflejados en un nuevo agente en la consola.  
  
Por defecto los nombres de agente utilizados son los IDs devueltos por la API REST de Oracle VM para cada uno de sus elementos.

[![image-1664979618958.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-10/scaled-1680-/image-1664979618958.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-10/image-1664979618958.png)

Esto es así para todos los elementos excepto para los servidores (OVM servers), donde el nombre de agente es el hash MD5 del ID del servidor, debido a que el formato utilizado para estos IDs es distinto y no es aceptado por Pandora como “​agent\_name​”.

[![image-1664979662227.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-10/scaled-1680-/image-1664979662227.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-10/image-1664979662227.png)

Por ejemplo, para el servidor con ID “​ff:67:51:6d:00:a8:ca:ae:5e:52:b5:cd:58:a0:11:70​” el nombre de agente utilizado sería el hash MD5 de esa cadena:  
“​a62454d287e230c773f56d618b78500f​”  
  
Los nombres de los agentes no se utilizarán como alias de los agentes (​agent\_alias​) a no ser que se configure la opción “​alias\_as\_name​” (se explica en el siguiente bloque).

**Configuraciones adicionales**

```
###################
## Extra parameters
###################
## Set to 1 to use the agent_name as the agent_alias in the XML file (By default = 0).
alias_as_name=0
## Set to 1 to get the IP addresses from VMs (requires OVM guest additions installed)
- By default = 1
scan_vm_ip=1
## Set to 1 to get detailed execution information
debug=0
```

  
**alias\_as\_name**  
Si se establece a “1” se utilizará el nombre del agente (​agent\_name​) como alias del agente (​agent\_alias​). Esto solo tendrá efecto si el agente se crea en Pandora a partir del XML generado. Por defecto se usará el nombre del elemento del Oracle VM como su alias. Su valor por defecto si no se especifica es “0” (deshabilitado).  
**scan\_vm\_ip**  
Si se establece a “1” se intentarán obtener las direcciones IP de las VMs detectadas. Para poder obtener las direcciones IP es necesario que las VMs tengan instaladas las “OVM guest additions”. Su valor por defecto si no se especifica es “1” (habilitado).  
**debug**  
Si se establece a “1” se mostrará información detallada de las acciones que se realicen durante la ejecución del plugin. Su valor por defecto si no se especifica es “0” (deshabilitado).

# Ejecución manual

Para ejecutar el plugin configure el archivo de configuración “​ovm-plugin.conf​” según las  
instrucciones precedentes.  
Ejecución del plugin:  
●  
Versión binaria:

```
./ovm-plugin.64 ovm-plugin.conf
```

  
●  
Versión código:

```
perl ovm-plugin.pl ovm-plugin.conf
```

# Módulos generados por el plugin

La ejecución de este plugin generará los siguientes agentes y módulos:  
  
●Un agente para el Oracle VM Manager​: Su alias por defecto será siempre “OVM  
Manager”.  
 ○ Manager run state​: Módulo con el estado del Oracle VM Manager devuelto por la API REST. Se considerará normal (valor “1”) si está en estado “RUNNING”, y crítico (valor “0”) si está en cualquier otro estado. En la descripción del módulo se muestra el estado actual.  
 ○ Successfull jobs​: Cantidad de tareas (jobs) en estado “SUCCESS”.  
 ○ Failure jobs​: Cantidad de tareas (jobs) en estado “FAILURE”.  
  
●Un agente para cada pool de servidores​: Su agente padre será el del Oracle VM  
Manager.  
 ○ Servers running​: Cantidad de servidores en estado “RUNNING” en el pool.  
 En la descripción del módulo se muestra la cantidad total de servidores en el pool.  
 ○ Usable memory (%)​: Porcentaje de memoria usable por VMs en el pool. En la descripción del módulo se muestra la memoria usable y la memoria total del pool en MB.  
 ○ VMs count​: Cantidad de VMs en el pool.

●Un agente para cada servidor​: Su agente padre será el agente del pool de servidores al que pertenezca o el agente del Oracle VM Manager si no está asignado a ningún pool.  
 ○ Server run state​: Módulo con el estado del servidor OVM devuelto por la API REST. Se considerará normal (valor “1”) si está en estado “RUNNING”, y crítico (valor “0”) si está en cualquier otro estado. En la descripción del módulo se muestra el estado actual.  
 ○ Usable memory (%)​: Porcentaje de memoria usable por VMs en el servidor.  
 En la descripción del módulo se muestra la memoria usable y la memoria total del servidor en MB.  
 ○ VMs running​: Cantidad de VMs en estado “RUNNING” en el servidor. En la descripción del módulo se muestra la cantidad total de VMs en el servidor.  
 ○ Port state (​&lt;port\_name&gt;​):​ Se genera un módulo con el estado de cada puerto del servidor OVM devuelto por la API REST. Se considerará normal (valor “1”) si está en estado “PORT\_UP”, y crítico (valor “0”) si está en cualquier otro estado. En la descripción del módulo se muestra el estado actual.  
  
●Un agente para cada VM​: Su agente padre será el agente del servidor al que pertenezca.  
 ○ VM run state​: Módulo con el estado de la VM devuelto por la API REST. Se considerará normal (valor “1”) si está en estado “RUNNING”, y crítico (valor “0”) si está en cualquier otro estado. En la descripción del módulo se muestra el estado actual.  
 ○ Used memory on server (%)​: Porcentaje de memoria usada por la VM en el  
 servidor. En la descripción del módulo se muestra la memoria usada y la memoria total del servidor en MB, además del máximo de memoria asignada para la VM.  
 ○ &lt;disk\_name&gt;​ on disk size (%)​: Se genera un módulo con el porcentaje de  
 disco usado devuelto por la API REST en cada disco de la VM. En la descripción del módulo se muestra el disco usado y el total en MB.  
  
●Un agente para cada servidor de ficheros (​file server​):​ Su agente padre será el del Oracle VM Manager.  
 ○ &lt;file system&gt;​ free size (%)​: Se genera un módulo con el porcentaje de disco libre devuelto por la API REST de cada sistema de ficheros en el servidor de ficheros. En la descripción del módulo se muestra la ubicación del disco, el disco libre y el total en MB.