# Proxmox

# Introduction

**The purpose of this plugin is to monitor Proxmox**, through relevant metrics such as memory, cpu and disks of the existing machines in the proxmox environment.

The plugin connects to the Proxmox API and monitors Nodes, lxc Containers or virtual machines by means of the previously mentioned metrics, generating an agent for each region via XML that it sends to the pandora server.

# Compatibility matrix

<table border="1" id="bkmrk-sistemas-donde-se-ha-1" style="width: 97.284%;"><tbody><tr><td style="width: 22.9565%;">**Systems where tested**</td><td style="width: 77.0319%;">Rocky linux, Fedora 34</td></tr><tr><td style="width: 22.9565%;">**Systems where it works**</td><td style="width: 77.0319%;">Any linux system</td></tr></tbody></table>

# Pre requisites

- Proxmox API Connectivity

The plugin is a binary that contains the packaged dependencies so there is no need to install any dependencies to use it.

# Parameters and configuration

**Parameter**

<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%;">Path to configuration file</td></tr></tbody></table>

**Configuration file (--conf)**

```
agents_group_name = < Name of the target group for the created agents >
interval = < Interval in seconds for the agents and for the metrics analysis >
temporal = < Path in which the temporary files will be created >
transfer_mode = < Transfer mode, tentacle or local > 
tentacle_client = < Tentacle client path, by default "tentacle_client" > tentacle_ip = < Tentacle client path, by default "tentacle_client" > tentacle_ip = < IP
tentacle_ip = < IP of the target machine for the created agents >
tentacle_port = < Port of tentacle, default : 41121 >
tentacle_opts = < Additional tentacle client options >
data_dir = < (Only enabled if transfer_mode is local) Destination path for each agent's XML, by default "/var/spool/pandora/data_in/" >

prefix = < Prefix for created agents >

host = < proxmox host >
user = < proxmox user >
password = < proxmox password >
port = < proxmox port > 

proxmox_token_name = < Proxmox API token name >
proxmox_token_pass = < Proxmox API token password >

scan_nodes = < Enable with 1 to enable generalized node monitoring >
scan_backups = < Enable with 1 to enable generalized backups monitoring >
scan_vms = < Enable with 1 to enable generalized vms monitoring >
scan_lxc = < Enable with 1 to enable generalized lxc monitoring >
scan_data_center = < Enable with 1 to enable generalized data center monitoring >
scan_storage = < Enable with 1 to enable generalized storage monitoring >

discard_nodes = < List with Nodes to discard from monitoring > 

# The following parameters are only required for the use of custom fields.

pandora_url = < Url of pandora >
api_pass = < Password for the api >
api_user = < User of the api >
api_user_pass = < Password for the api user >
```

<span style="text-decoration: underline;">Example</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
api_user_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"]
```

# Manual execution

The format of the plugin execution is as follows:

```
./pandora_proxmox --conf < path to configuration file >
```

For example :

```
./pandora_proxmox --conf /usr/share/pandora_server/util/plugin/proxmox.conf
```

The execution will return an output in JSON format with information about the execution, and will generate an XML file for each agent of each monitored region that will be sent to the Pandora FMS server by the transfer method indicated in the configuration.

For example:

```
{"summary": {"Total agents": 5, "Nodes agents": 1, "Vms agents": 2, "Lxc agents": 1, "Storage agents": 3}}
```

# Discovery

This plugin can be integrated with Pandora FMS Discovery.

To do so, you must load the ".disco" package that you can download from the Pandora FMS library:

[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-/UO2image.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2023-10/UO2image.png)

Once loaded, Proxmox environments can be monitored by creating Discovery tasks from the Management &gt; Discovery &gt; Apps section.

The following minimum data will be requested for each task:

- **Proxmox host:** Proxmox IP.
- **Port**: Proxmox port (8006 by default).
- **Proxmox user:** Proxmox user
- **Password Authentication**: Click to enable password authentication
- **Password:** proxmox password
- **API token**: Authentication: Click to enable authentication via API token
- **Token Name**: API token name
- **Token Password:** API token password
- **Tentacle IP**: Tentacle IP
- **Tentacle port:** Tentacle port
- **Tentacle extra options**: Tentacle extra options
- **Tentacle client path:** Tentacle custom path
- **Agent name prefix:** Prefix for the name of the generated agents.

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

It will also be possible to adjust the task settings to customize the desired monitoring:

- **Scan VMs :** Activate to enable monitoring of virtual machines.
- **Scan LXC:** Activate to enable monitoring of LXC containers.
- **Scan backups:** Activate to enable backup monitoring.
- **Scan nodes:** Activate to enable node monitoring.
- **Scan Data center:** Activate to enable data center monitoring.
- **Scan Storage:** Activate to enable storage monitoring.

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

The successfully completed tasks will have an execution summary with the following information:

- **Total agents** : Total number of agents generated by the task.
- **Vms agents** : Total number of vms agents created by the task.
- **LXC agents** : Total number of lxc containers agents created by the task.
- **Nodes Agents** : Total number of node agents created by the task.
- **Storage Agents:** Total number of storage agents created by the task.

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

# Agent and modules generated by the plugin

The plugin execution will create the following agents and modules:

- **One agent for each Node** with the following modules :

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

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

- **One agent per virtual machine and per lxc container** with the following modules :

**Lxc**

<table border="1" id="bkmrk-status-state-cpus-cp" style="width: 99.7531%; height: 386.122px;"><colgroup><col style="width: 100%;"></col></colgroup><tbody><tr style="height: 29.7017px;"><td style="height: 29.7017px;">status</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">state</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">cpus</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">cpu</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">mem</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">disk</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">diskread</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">diskwrite</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">maxdisk</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">maxmem</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">netin</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">netout</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">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-/2quimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/2quimage.png)

**virtual machine (VM)**

<table border="1" id="bkmrk-status-state-cpus-cp-1" style="width: 99.7531%; height: 386.122px;"><colgroup><col style="width: 100%;"></col></colgroup><tbody><tr style="height: 29.7017px;"><td style="height: 29.7017px;">status</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">state</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">cpus</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">cpu</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">mem</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">disk</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">diskread</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">diskwrite</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">maxdisk</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">maxmem</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">netin</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">netout</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">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-10/scaled-1680-/HvMimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-10/HvMimage.png)

- **One agent per storage defined in Proxmox and** generate a series of modules**:**

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

- **An agent for data centers:** which will have a series of modules associated with the 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)

- **A backup agent** that will have a module for each backup with the following data

 (general information):  
Name: vmid,node\_backup\_info.  
Description: next\_run,schedule,storage,backup\_id,repeat-missed  
value: enabled or disabled

And also has another module that will show how much time is left for the next backup in seconds:

Name: vmid, node\_backup\_info  
Description: Time in seconds to the next backup  
value: seconds left for the next backup\\

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