I’m having a persistent issue getting the inputs.proxmox
plugin to work. My Telegraf container fails on startup with a configuration parsing error, even though I can successfully query the Proxmox API from the host machine.
My Goal:
Collect basic node metrics from a Proxmox host using the Telegraf inputs.proxmox
plugin and send them to InfluxDB.
My Environment:
- Proxmox VE: 8.4.1
- Telegraf Host: Ubuntu 24.04 LXC (Privileged, Nesting enabled)
- Docker: 28.3.0
- Telegraf Image:
telegraf:1.29-alpine
What Works:
I have confirmed 100% that my Proxmox API token and network are correct. From the shell of the LXC that runs Telegraf, this curl
command works perfectly and returns the expected JSON:
curl -k "https://192.168.1.x:8006/api2/json/nodes" -H 'Authorization: PVEAPIToken=monitoring-agent@pve!telegraf-token=MY-TOKEN' | jq
What Fails:
When I try to run Telegraf with the --test
flag, it fails to parse the configuration file.
-
My
telegraf.conf
:# Global Telegraf Agent Configuration [agent] interval = "10s" flush_interval = "10s" hostname = "telegraf-proxmox" # Output plugin for InfluxDB [[outputs.influxdb_v2]] urls = ["http://192.168.1.x:8086"] token = "MY_INFLUX_TOKEN" organization = "myorg-monitoring" bucket = "proxmox_system" # Input plugin for Proxmox [[inputs.proxmox]] base_url = "https://192.168.1.x:8006" api_token = "monitoring-agent@pve!telegraf-token=MY-TOKEN" tls_ca = "/etc/telegraf/pve-root-ca.pem" node_status = true
-
The Command I Run:
docker run --rm \ -v "/opt/monitoring-stack/telegraf.conf":/etc/telegraf/telegraf.conf:ro \ -v "/opt/monitoring-stack/pve-root-ca.pem":/etc/telegraf/pve-root-ca.pem:ro \ --network host \ docker.io/library/telegraf:1.29-alpine --test
-
The Exact Error Message:
E! error loading config file /etc/telegraf/telegraf.conf: plugin inputs.proxmox: line 15: configuration specified the fields ["node_status"], but they weren't used
Troubleshooting Done:
I’ve tried recreating the telegraf.conf
file multiple times from scratch using different methods (nano
, cat
, echo
scripts) to eliminate any possibility of invisible characters or encoding issues (like tabs vs. spaces or CRLF line endings). The error is always the same.