telegraf/plugins/inputs/proxmox/README.md

101 lines
3.3 KiB
Markdown
Raw Normal View History

2020-08-13 00:26:38 +08:00
# Proxmox Input Plugin
The proxmox plugin gathers metrics about containers and VMs using the Proxmox
API.
2020-08-13 00:26:38 +08:00
Telegraf minimum version: Telegraf 1.16.0
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
In addition to the plugin-specific configuration settings, plugins support
additional global and plugin configuration settings. These settings are used to
modify metrics, tags, and field or create aliases and configure ordering, etc.
See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins
## Configuration
2020-08-13 00:26:38 +08:00
```toml @sample.conf
# Provides metrics from Proxmox nodes (Proxmox Virtual Environment > 6.2).
2020-08-13 00:26:38 +08:00
[[inputs.proxmox]]
## API connection configuration. The API token was introduced in Proxmox v6.2.
## Required permissions for user and token: PVEAuditor role on /.
2020-08-13 00:26:38 +08:00
base_url = "https://localhost:8006/api2/json"
api_token = "USER@REALM!TOKENID=UUID"
## Node name, defaults to OS hostname
## Unless Telegraf is on the same host as Proxmox, setting this is required.
# node_name = ""
2020-08-13 00:26:38 +08:00
## Additional tags of the VM stats data to add as a tag
## Supported values are "vmid" and "status"
# additional_vmstats_tags = []
2020-08-13 00:26:38 +08:00
## Optional TLS Config
# tls_ca = "/etc/telegraf/ca.pem"
# tls_cert = "/etc/telegraf/cert.pem"
# tls_key = "/etc/telegraf/key.pem"
## Use TLS but skip chain & host verification
# insecure_skip_verify = false
2020-08-13 00:26:38 +08:00
## HTTP response timeout (default: 5s)
# response_timeout = "5s"
2020-08-13 00:26:38 +08:00
```
### Permissions
2020-08-13 00:26:38 +08:00
The plugin will need to have access to the Proxmox API. In Proxmox API tokens
are a subset of the corresponding user. This means an API token cannot execute
commands that the user cannot either.
For Telegraf, an API token and user must be provided with at least the
PVEAuditor role on /. Below is an example of creating a telegraf user and token
and then ensuring the user and token have the correct role:
```s
## Create a influx user with PVEAuditor role
pveum user add influx@pve
pveum acl modify / -role PVEAuditor -user influx@pve
## Create a token with the PVEAuditor role
pveum user token add influx@pve monitoring -privsep 1
pveum acl modify / -role PVEAuditor -token 'influx@pve!monitoring'
```
See this [Proxmox docs example][1] for further details.
[1]: https://pve.proxmox.com/wiki/User_Management#_limited_api_token_for_monitoring
2020-08-13 00:26:38 +08:00
## Metrics
2020-08-13 00:26:38 +08:00
- proxmox
- status
- uptime
- cpuload
- mem_used
- mem_total
- mem_free
- mem_used_percentage
- swap_used
- swap_total
- swap_free
- swap_used_percentage
- disk_used
- disk_total
- disk_free
- disk_used_percentage
### Tags
2020-08-13 00:26:38 +08:00
- node_fqdn - FQDN of the node telegraf is running on
- vm_name - Name of the VM/container
- vm_fqdn - FQDN of the VM/container
- vm_type - Type of the VM/container (lxc, qemu)
- vm_id - ID of the VM/container
2020-08-13 00:26:38 +08:00
## Example Output
2020-08-13 00:26:38 +08:00
```text
proxmox,host=pxnode,node_fqdn=pxnode.example.com,vm_fqdn=vm1.example.com,vm_id=112,vm_name=vm1,vm_type=lxc cpuload=0.147998116735236,disk_free=4461129728i,disk_total=5217320960i,disk_used=756191232i,disk_used_percentage=14,mem_free=1046827008i,mem_total=1073741824i,mem_used=26914816i,mem_used_percentage=2,status="running",swap_free=536698880i,swap_total=536870912i,swap_used=172032i,swap_used_percentage=0,uptime=1643793i 1595457277000000000
2020-08-13 00:26:38 +08:00
```