# Proxmox

# Introducción

**Este plugin tiene como finalidad monitorizar Proxmox**, mediante métricas relevantes como memoria, cpu y discos de las máquinas existentes en el entorno proxmox.

El plugin se conecta al API de Proxmox y monitoriza Nodos, Contenedores lxc o máquinas virtuales mediante las métricas anteriormente mencionadas, 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: 97.1605%;"><tbody><tr><td style="width: 28.1477%;">**Sistemas donde se ha probado**</td><td style="width: 71.8422%;">Rocky linux, Fedora 34</td></tr><tr><td style="width: 28.1477%;">**Sistemas donde funciona**</td><td style="width: 71.8422%;">Cualquier sistema linux</td></tr></tbody></table>

# Prerrequisitos

- Conectividad a la API de Proxmox

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.

# Parámetros y configuración

**Parámetros**

<table border="1" id="bkmrk---conf-ruta-al-archi" style="width: 48.1481%;"><tbody><tr><td style="width: 20.7407%;">--conf</td><td style="width: 79.2593%;">Ruta al archivo de configuración</td></tr></tbody></table>

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

```
agents_group_name  = < Nombre del grupo de destino para los agentes creados >
interval           = < Intervalo en segundos para los agentes y para el analisis de métricas >
temporal           = < Ruta en la que se crearan los ficheros temporales >
transfer_mode      = < Modo de transferencia, tentacle o local > 
tentacle_client    = < Ruta del cliente de tentacle, por defecto "tentacle_client"
tentacle_ip        = < IP de la máquina destino para los agentes creados >
tentacle_port      = < Puerto de tentacle, por defecto : 41121 >
tentacle_opts      = < Opciones adicionales de tentacle client >
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/" >

prefix             = < Prefijo para los agentes creados >

host               = < Host de proxmox >
user               = < Usuario de proxmox >
password           = < Contraseña de proxmox >
port               = < Puerto de proxmox > 

proxmox_token_name = < Nombre del token de la API de Proxmox >
proxmox_token_pass = < Contraseña del token de la API de Proxmox >

scan_nodes         = < Activar con 1 para habilitar monitorización de nodos generalizada >
scan_backups       = < Activar con 1 para habilitar monitorización de backups generalizada >
scan_vms           = < Activar con 1 para habilitar monitorización de vms generalizada >
scan_lxc           = < Activar con 1 para habilitar monitorización de lxc generalizada >
scan_data_center   = < Activar con 1 para habilitar monitorización de data center generalizada >
scan_storage       = < Activar con 1 para habilitar monitorización de storage generalizada >

discard_nodes      = < Lista con Nodos a descartar de la monitorización > 

# Los siguientes parámetros solo son requeridos para el uso de custom fields.

pandora_url        = < Url de pandora >
api_pass           = < Contraseña para la api >
api_user           = < Usuario de la api >
apiuser_pass      = < Contraseña del usuario de la api >
```

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

```
agents_group_name  = proxmox
interval           = 300
temporal           = /tmp/
transfer_mode      = tentacle
tentacle_client    = tentacle_client
tentacle_ip        = 172.42.42.101
tentacle_port      = 41121
tentacle_opts      = ""
data_dir           = /var/spool/pandora/data_in/

prefix             = Proxmox.

pandora_url        = http://172.42.42.101/pandora_console
api_pass           = 1234
api_user           = admin
apiuser_pass       = pandora

host               = 192.168.80.134
user               = root@pam
password           = A34mS!
port               = 8006

proxmox_token_name = token auth
proxmox_token_pass = f230051c-0252-1600-8f32-b65d16cf3181

scan_nodes         = 1
scan_backups       = 1
scan_vms           = 1
scan_lxc           = 1
scan_data_center   = 1
scan_storage       = 1

discard_nodes      = ["Node4","Node7"]
```

# Ejecucion manual

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

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

Por ejemplo:

```
./pandora_proxmox --conf /usr/share/pandora_server/util/plugin/proxmox.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 de cada región monitorizada que enviará al servidor de Pandora FMS por el método de transferencia indicado en la configuración.

Por ejemplo:

```
{"summary": {"Total agents": 5, "Nodes agents": 1, "Vms agents": 2, "Lxc agents": 1, "Storage 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://marketplace.pandorafms.com/entries/pandorafms.proxmox](https://marketplace.pandorafms.com/entries/pandorafms.proxmox)

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

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

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

- **Proxmox host**: IP de proxmox.
- **Port**: Puerto de proxmox (8006 por defecto)
- **Proxmox user**: Usuario de proxmox
- **Password Authentication :** Pulsar para habilitar autenticación mediante contraseña
- **Password**: Contraseña de proxmox
- **Token API:** Authentication: Pulsar para habilitar autenticación mediante API token.
- **Token Name**: Nombre del token API
- **Token Password:** Password del token API
- **Tentacle IP**: IP de tentacle
- **Tentacle port:** Puerto de tentacle
- **Tentacle extra options:**Opciones extras de tentacle
- **Agent name prefix**: Prefijo para el nombre de los agentes generados.

[![Captura desde 2025-12-09 18-01-42.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-12/scaled-1680-/captura-desde-2025-12-09-18-01-42.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-12/captura-desde-2025-12-09-18-01-42.png)

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

- **Scan VMs :** Activar para habilitar la monitorización de máquinas virtuales.
- **Scan LXC:** Activar para habilitar la monitorización de contenedores lxc.
- **Scan backups:** Activar para habilitar la monitorización de backups.
- **Scan nodes:** Activar para habilitar la monitorización de nodos.<label class=""></label>
- **Scan data center:** Activar para habilitar la monitorización de data center.
- **Scan Storage:** Activar para habilitar la monitorización de storage.

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/scaled-1680-/9Ehimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/9Ehimage.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.
- **Vms agents :** Número total de agentes de vms creados por la tarea.
- **LXC agents :** Número total de agentes de lxc containers creados por la tarea.
- **Nodes Agents :** Número total de agentes de nodos creados por la tarea.
- **Storage Agents:** Número total de agentes de nodos creados por la tarea.

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/scaled-1680-/Gnjimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/Gnjimage.png)

# Agentes y módulos generados por el plugin

La ejecución del plugin, creara los siguientes agentes y módulos:

- **Un agente por cada Nodo** con los siguientes módulos :

<table border="1" id="bkmrk-status-state-uptime-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.9888%;"></col></colgroup><tbody><tr><td>status</td></tr><tr><td>state</td></tr><tr><td>uptime</td></tr><tr><td>maxdisk</td></tr><tr><td>maxcpu</td></tr><tr><td>maxmem</td></tr><tr><td>disk</td></tr><tr><td>cpu </td></tr><tr><td>mem</td></tr><tr><td>ssl\_fingerprint</td></tr><tr><td>disk\_usage\_pct</td></tr><tr><td>kernel\_version</td></tr><tr><td>manager\_version</td></tr><tr><td>mem\_usage\_pct</td></tr><tr><td>netin\_traffic</td></tr><tr><td>netout\_traffic</td></tr></tbody></table>

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/scaled-1680-/Xf4image.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/Xf4image.png)

- **Un agente por cada máquina virtual y por cada contenedor lxc** con los siguientes módulos :

**Lxc**

<table border="1" id="bkmrk-status-state-cpus-cp" style="border-collapse: collapse; width: 100%; height: 387.36px;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">status</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">state</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">cpus</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">cpu</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">mem</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">disk</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">diskread</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">diskwrite</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">maxdisk</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">maxmem</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">netin</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">netout</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">uptime</td></tr><tr><td>men\_usage\_host\_pct</td></tr><tr><td>men\_usage\_pct</td></tr><tr><td>cpu\_usage\_host\_pct</td></tr></tbody></table>

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/scaled-1680-/rIVimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/rIVimage.png)

**Máquina virtual (VM)**

<table border="1" id="bkmrk-status-state-cpus-cp-1" style="border-collapse: collapse; width: 100%; height: 416.931px;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr style="height: 29.7869px;"><td style="height: 29.7869px;">status</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">state</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">cpus</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">cpu</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">mem</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">disk</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">diskread</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">diskwrite</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">maxdisk</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">maxmem</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">netin</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">netout</td></tr><tr style="height: 29.7869px;"><td style="height: 29.7869px;">uptime</td></tr></tbody></table>

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

- **Un agente un agente por cada storage definido en proxmox** y generar una serie de modulos**:**

<table border="1" id="bkmrk-content-disk_usage_p" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.9888%;"></col></colgroup><tbody><tr><td>content</td></tr><tr><td>disk\_usage\_pct</td></tr><tr><td>enable</td></tr><tr><td>is\_active</td></tr><tr><td>path</td></tr><tr><td>total\_capacity</td></tr><tr><td>type</td></tr><tr><td>used\_space</td></tr></tbody></table>

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/scaled-1680-/2j1image.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/2j1image.png)

- **Un agente para data center:** que tendrá una seria de modulos asociados al summary:

<table border="1" id="bkmrk-cpu_sage_pct-lxc_run" style="border-collapse: collapse; width: 100%; height: 386.122px;"><colgroup><col style="width: 99.9888%;"></col></colgroup><tbody><tr style="height: 29.7017px;"><td style="height: 29.7017px;">cpu\_sage\_pct</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">lxc\_running</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">lxc\_stopped</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">mem\_usage\_pct</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">nodes\_offline</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">nodes\_online</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">status</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">storage\_usage\_pct</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">total\_lxc</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">total\_nodes</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">total\_vm</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">vm\_runnig</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">vm\_stopped</td></tr></tbody></table>

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/scaled-1680-/336image.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/336image.png)

- **Un agente para backups** que tendrá un módulo por cada backup con los siguientes datos (información general):

Nombre: vmid, node\_backup\_info  
Descripción: next\_run,schedule,storage,backup\_id,repeat-missed  
valor: enabled or disabled

Y también dispone de otro módulo que mostrara, cuanto tiempo falta para el siguiente backup en segundos:

Nombre: vmid, node\_backup\_info  
Descripción: Tiempo en segundos para la siguiente copia de seguridad  
valor: segundos que faltan para el siguiente backup

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/scaled-1680-/b8Himage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/b8Himage.png)