This microservice is intended to allow for auto-discovery of Prometheus Node Exporters running
on Proxmox VE guests. It can be run as a standalone python script, or using the docker container
hosted at 14agerber/pve-node-discovery:latest
.
PVE Exporter must already be set up so the service can query guest names.
-job_name: pve-node-exporter
params:
prometheus: ['http<s>://<prometheus URL>']
http_config:
- url: http://<discovery_server>:9951/static-configs
Configuring node discovery can be done via command line arguments or environment variables.
The only required parameter is prometheus-url
.
Lists are passed via command line using multiple arguments (ex: --exclude foo --exclude bar
).
Environment variables use comma-separated lists (ex: NODE_DISCOVERY_EXCLUDE='foo,bar'
).
The map-from
and map-to
parameters are used when the vm's/container's proxmox name is not the
same as its DNS name. They musted be provided in pairs (ex: --map-from WebsiteVM --map-to www
).
Argument | Env Variable | Default | Description |
---|---|---|---|
--listen-host | NODE_DISCOVERY_LISTEN_HOST | 0.0.0.0 | Server listen address |
--listen-port | NODE_DISCOVERY_LISTEN_PORT | 9951 | Server listen port |
--prometheus-url | NODE_DISCOVERY_PROMETHEUS_URL | Required | Prometheus base URL for making queries |
--guest-domain | NODE_DISCOVERY_GUEST_DOMAIN | none | Domain to append to pve guest name |
--guest-port | NODE_DISCOVERY_GUEST_PORT | 9100 | Port of node_exporter running on guests |
--exclude | NODE_DISCOVERY_EXCLUDE | none | List of guests to exclude/skip |
--map-from | NODE_DISCOVERY_MAP_FROM | none | Ordered list of guests requering mapping |
--map-to | NODE_DISCOVERY_MAP_TO | none | Ordered list of dns names to map to |
Requires Prometheus v2.29 or later