Skip to content

Proxmox VE Agent v2: Part 1: Modernize Proxmox extension #616

Draft
Torstein-Eide wants to merge 1 commit intolibrenms:masterfrom
Torstein-Eide:proxmox-v2
Draft

Proxmox VE Agent v2: Part 1: Modernize Proxmox extension #616
Torstein-Eide wants to merge 1 commit intolibrenms:masterfrom
Torstein-Eide:proxmox-v2

Conversation

@Torstein-Eide
Copy link
Contributor

This is the first step in modernizing the Proxmox extension.

It introduces a new Proxmox VE Agent v2 that uses pvesh for API access, together with a Python-based local agent designed for SNMP polling. The goal here is to make the extension more reliable, more maintainable, and better aligned with the modernized server-side workflow that will follow in the next update.

This PR is intentionally part 1 of the modernization effort and should be treated as a prerequisite foundation. It requires a server-side update before it should be pulled/merged, since the agent and documentation changes here are designed to work together with that backend update.

Summary

  • Add Proxmox VE Agent v2 using pvesh CLI for API access
  • Python-based local agent with JSON output for SNMP polling
  • Features: compression, privacy redaction, duration tracking, exit code tracking
  • Auto-discovers available API endpoints with caching
  • Install script with systemd/cron support

Files

  • snmp/proxmox/proxmox - Main Python agent
  • snmp/proxmox/install.sh - Installation script
  • snmp/proxmox/README.md - pointer to libreNMS docs.
  • snmp/common/librenms-snmp-extension@.service - Systemd service template
  • snmp/common/librenms-snmp-extension@.timer - Systemd timer template

Features

  • Configurable endpoint collection (node, cluster, pool scopes)
  • gzip+base64 compression (enabled by default)
  • Privacy redaction for sensitive fields
  • Verbose logging with discovery prefix
  • Endpoint caching (6h TTL)

Endpoints

The currently implemented endpoints to query from the Proxmox API are:

Node Endpoints

Endpoint Description
lxc Container configs
qemu Virtual machine configs
status Node uptime and load
storage Local storage info
netstat Network statistics
ceph Ceph status (if configured)
subscription Subscription info
replication Replication jobs

Cluster Endpoints

Endpoint Description
resources Cluster resource usage
status Cluster status and quorum
ceph Ceph cluster status (if configured)
ha High availability (status, resources, groups, rules)
options Cluster options
config Cluster configuration
replication Replication configuration

Pool Endpoints

Endpoint Description
pools Resource pools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant