# OVH

# Introducción

**Este plugin tiene como finalidad monitorizar OVH**, monitorizando el estado de las máquinas virtuales y estadísticas de estas como el cpu o la memoria.

El plugin se conecta al API de OVH y monitoriza máquinas virtuales, servers, o costes , generando un agente para cada elemento vía XML que envía al servidor de pandora.

# Matriz de compatibilidad

<table border="1" id="bkmrk-sistemas-donde-se-ha-1" style="width: 64.6914%;"><tbody><tr><td style="width: 56.7204%;">**Sistemas donde se ha probado**</td><td style="width: 43.2796%;">Rocky linux, Fedora 34</td></tr><tr><td style="width: 56.7204%;">**Sistemas donde funciona**</td><td style="width: 43.2796%;">Cualquier sistema linux</td></tr></tbody></table>

# Prerrequisitos

- Conectividad a la API de OVH

El plugin es un binario que contiene las dependencias empaquetadas por lo que no es necesaria la instalación de ningún tipo de dependencia para su uso.

<p class="callout info">Para conectar, hacen falta application key, application secret y consumer key, el proceso para obtenerlas esta documentado en la página de ovh, esta información esta disponible en el siguiente link:  
  
[https://help.ovhcloud.com/csm/es-es-api-getting-started-ovhcloud-api?id=kb\_article\_view&amp;sysparm\_article=KB0042785](https://help.ovhcloud.com/csm/es-es-api-getting-started-ovhcloud-api?id=kb_article_view&sysparm_article=KB0042785)</p>

# Parámetros y configuración

**Parámetros**

<table border="1" id="bkmrk---conf-ruta-al-archi"><tbody><tr><td>--conf</td><td>Ruta al archivo de configuración</td></tr></tbody></table>

**Archivo de configuración (--conf)**

```
application_key = < Clave application key >
application_secret = < Clave application secret >
consumer_key = <  Clave consumer key >
interval         = < Intervalo en segundos para los agentes y para el analisis de métricas >
agent_group_name = < Nombre del grupo de destino para los agentes creados >
prefix           = < Prefijo para el nombre de los agentes >
transfer_mode    = < Modo de transferencia, tentacle o local >
data_dir         = < (Solo se activa si el transfer_mode es local) Ruta de destino para los XML de cada agente, por defecto "/var/spool/pandora/data_in/" >
tentacle_ip      = < IP de la máquina destino para los agentes creados >
tentacle_port    = < Puerto de tentacle, por defecto : 41121 >
cost             = < Activar con 1 para habilitar la monitorización de costes  >
scan_vms         = < Activar con 1 para habilitar la monitorización de máquinas virtuales >
storage          = < Activar con 1 para habilitar la monitorización de volúmenes  >
servers          = < Activar con 1 para habilitar la monitorización de servers  >
advance_monitoring  = < Activar con 1 para habilitar la monitorización avanzada >
```

<span style="text-decoration: underline;">Ejemplo</span>

```
application_key = 6787fa7fa6f68687fafa
application_secret = faf7879afa87f9af9af78fa7f
consumer_key = 8fa8f8af8a8f78af5a3f2af

interval         = 300
agent_group_name = OVH
prefix           = ovh.
transfer_mode    = tentacle
data_dir         = /var/spool/pandora/data_in/
tentacle_ip      = 172.42.42.101
tentacle_port    = 41121 

cost                = 0
scan_vms            = 1
storage             = 1
servers             = 1
advance_monitoring  = 0
```

<p class="callout warning">Habilitar la monitorización avanzada y los costos puede aumentar la duración de la ejecución del plugin, si no se habilita la monitorización avanzada, en las máquinas virtuales solo se monitorizará su status.</p>

# Ejecución manual

El formato de la ejecución del plugin es el siguiente:

```
./pandora_ovh --conf < ruta al fichero de configuración >
```

Por ejemplo:

```
./pandora_ovh --conf /usr/share/pandora_server/util/plugin/ovh-cloud.conf
```

La ejecución devolverá una salida en formato JSON con información sobre la ejecución, y generará un fichero XML para cada agente monitorizado que enviará al servidor de Pandora FMS por el método de transferencia indicado en la configuración.

Por ejemplo:

```
{"summary": {"Total agents": 17, "VMs agents": 12, "Storage agents": 1, "Server agents" : 3}}
```

# Discovery

Este plugin puede integrarse con el *Discovery* de Pandora FMS.

Para ello se debe cargar el paquete ".disco" que puede descargar desde la librería de Pandora FMS:

[https://pandorafms.com/library/](https://pandorafms.com/library/)

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

Una vez cargado, se podrán monitorizar entornos de OVH creando tareas de *Discovery* desde la sección *Management &gt; Discovery &gt; Cloud*

Para cada tarea se solicitarán los siguientes datos mínimos:

- **OVH application key :** .Clave application key.
- **OVH application secret :** Clave application secret.
- **OVH consumer key:** Clave consumer key.
- **Tentacle IP**: IP del servidor de Tentacle al que enviar los datos de los agentes. Normalmente este parámetro no se modificará.
- **Tentacle port**: Puerto del servidor de Tentacle al que enviar los datos. Normalmente este parámetro no se modificará.

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

.También se podrá ajustar la configuración de la tarea para personalizar la monitorización deseada:

- **Scan Volumes :** Si se activa monitorizará los volúmenes y creará un agente por cada uno de estos.
- **Scan Servers:** Si se activa monitorizarál los servers y creará un agente por cada uno de estos.
- **Get monthly and overall costs:** Si se activa monitorizará los costes y creará un módulo de costos totales y otro de costos mensuales del último mes.<label class=""></label>
- **Monitor virtual machines:** Si se activa monitorizará las máquinas virtuales y creará un agente por cada una de estas.
- **Advanced statistics:** Si se activa habilitará módulos de estadísticas adicionales en los agentes de máquinas virtuales.

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

Las tareas completadas con éxito tendrán un resumen de ejecución con la siguiente información:

- **Total agents** : Número total de agentes generados por la tarea.
- **Storage agents :** Número total de agentes de proyectos creados por la tarea.
- **VMs agents :** Número total de agentes de máquinas virtuales creados por la tarea.
- **Server agents:** Número total de agentes de servidores creados por la tarea.

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

# Agentes y módulos generados por el plugin

La ejecución del plugin, con todas las opciones activadas, creara los siguientes agentes y módulos:

- **Agente global**

<table border="1" id="bkmrk-%3C-prefix.kubernetes-"><colgroup><col></col></colgroup><tbody><tr><td>&lt; prefijo &gt;.OVH </td></tr></tbody></table>

**Módulos**

<table border="1" id="bkmrk-ovh-vms-count-ovh-to" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr><td>OVH VMs count</td></tr><tr><td>OVH total costs</td></tr><tr><td>OVH mont costs</td></tr></tbody></table>


- **Un agente por cada máquina virtual**

<table border="1" id="bkmrk-%3C-prefijo-%3E.-nombre-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr><td>&lt; prefijo &gt;. nombre máquina virtual</td></tr></tbody></table>

**Módulos**

<table border="1" id="bkmrk-%3C-nombre-m%C3%A1quina-vir" style="border-collapse: collapse; width: 100%; height: 208.578px;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre máquina virtual &gt;. status</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre máquina virtual &gt;. cpu:used</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre máquina virtual &gt;. cpu:max</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre máquina virtual &gt;. mem:used</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre máquina virtual &gt;. mem:max</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre máquina virtual &gt;. net:rx</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre máquina virtual &gt;. net:tx</td></tr></tbody></table>

- **Un agente por cada volumen**

<table border="1" id="bkmrk-%3C-prefijo-%3E.-nombre--1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr><td>&lt; prefijo &gt;. nombre volumen</td></tr></tbody></table>

**Módulos**

<table border="1" id="bkmrk-%3C-nombre-volumen-%3E.s" style="border-collapse: collapse; width: 100%; height: 208.578px;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre volumen &gt;.status</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre volumen &gt;.size</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre volumen &gt;.type</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre volumen &gt;.bootable</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre volumen &gt;.region</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre volumen &gt;.creationDate</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">&lt; nombre volumen &gt;.attachedTo</td></tr></tbody></table>

- **Un agente por cada server**

<table border="1" id="bkmrk-%3C-prefijo-%3E.-nombre--2" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 100%;"></col></colgroup><tbody><tr><td>&lt; prefijo &gt;. nombre server</td></tr></tbody></table>

**Módulos**

<table border="1" id="bkmrk-%3C-server-name-%3E.stat"><colgroup><col></col></colgroup><tbody><tr><td>&lt; nombre servidor &gt;.status</td></tr><tr><td>&lt; nombre servidor &gt;.powerState</td></tr><tr><td>&lt; nombre servidor &gt;.datacenter</td></tr><tr><td>&lt; nombre servidor &gt;.region</td></tr><tr><td>&lt; nombre servidor &gt;.linkSpeed</td></tr><tr><td>&lt; nombre servidor &gt;.availityZone</td></tr><tr><td>&lt; nombre servidor &gt;.os</td></tr><tr><td>&lt; nombre servidor &gt;.rack</td></tr><tr><td>&lt; nombre servidor &gt;.reverse</td></tr><tr><td>&lt; nombre servidor &gt;.supportLevel</td></tr><tr><td>&lt; nombre servidor &gt;.commercialRange</td></tr></tbody></table>