steampipe-plugin-proxmox

command module
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 24, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

README

Steampipe Plugin: Proxmox

plugins slack

Use SQL to query your Proxmox VE cluster — nodes, virtual machines, LXC containers, storage, networking, tasks, users, and resource pools.

Steampipe is an open source CLI that exposes APIs and services as a high-performance relational database, giving you the ability to write SQL-based queries to explore dynamic data. This plugin adds Proxmox VE as a queryable data source.

Quick start

Install the plugin with Steampipe:

steampipe plugin install becash143/proxmox

Configure your credentials in ~/.steampipe/config/proxmox.spc:

connection "proxmox" {
  plugin     = "becash143/proxmox"
  endpoint   = "https://your-proxmox-host:8006"
  api_token  = "user@realm!tokenid"     # e.g. "bikash@pve!inventory"
  api_secret = "your-token-secret"
  insecure   = true                     # set false if using a trusted/valid TLS certificate
}

Create an API token in the Proxmox web UI under Datacenter → Permissions → API Tokens. For a read-only inventory tool like this plugin, assign the token the PVEAuditor role at path /, and make sure Privilege Separation is unchecked (or an explicit role is granted) so the token can see VMs, containers, and other resources — not just nodes.

Run a query:

steampipe query
> select storage, node, type, is_shared, used, total from proxmox_storage;
Connection arguments
Argument Type Required Description
endpoint string Yes Base URL of your Proxmox API, e.g. https://proxmox.example.com:8006
api_token string Yes API token ID in user@realm!tokenid format
api_secret string Yes API token secret
insecure bool No Skip TLS certificate verification. Defaults to false.

Documentation

  • Sample query results — real output captured against a live, multi-node cluster, useful when you don't have one handy to test against locally.
Tables
Table Description
proxmox_node Physical nodes in the Proxmox cluster
proxmox_vm QEMU virtual machines across all nodes
proxmox_container LXC containers across all nodes
proxmox_cluster_resource Unified view of nodes, VMs, containers, storage, and pools in one call
proxmox_storage Configured storage pools and their usage
proxmox_network Network interfaces on each node
proxmox_task Recent task/job history per node
proxmox_user Proxmox access-control users
proxmox_pool Resource pools
Example queries

All running VMs, sorted by memory usage:

select
  name,
  node,
  status,
  mem,
  maxmem
from
  proxmox_vm
where
  status = 'running'
order by
  mem desc;

VM and container count per node:

select
  node,
  count(*) filter (where type = 'qemu') as vms,
  count(*) filter (where type = 'lxc') as containers
from
  proxmox_cluster_resource
where
  type in ('qemu', 'lxc')
group by
  node;

Storage pools nearing capacity:

select
  storage,
  type,
  used,
  total,
  round((used::numeric / nullif(total, 0)) * 100, 1) as percent_used
from
  proxmox_storage
where
  total > 0
order by
  percent_used desc;

Failed tasks in the last day:

select
  node,
  type,
  user,
  status,
  to_timestamp(start_time) as started_at
from
  proxmox_task
where
  status != 'OK'
  and start_time > extract(epoch from now() - interval '1 day')
order by
  start_time desc;

Developing

If you want to help develop the plugin, here's how to build and install a local copy.

Prerequisites

Clone

git clone https://github.com/becash143/steampipe-plugin-proxmox.git
cd steampipe-plugin-proxmox

Build and install

make

When installed locally, reference the plugin as local/proxmox in your connection config:

connection "proxmox" {
  plugin = "local/proxmox"
  # ...
}

Restart the Steampipe service and query away:

steampipe query
> .inspect proxmox

Contributing

Contributions are welcome! Please read the contribution guidelines before opening a PR.

  1. Fork the repo
  2. Create a feature branch
  3. Make your changes, with tests/sample queries where relevant
  4. Open a PR against main, referencing any related issue (e.g. Fixes #12)

Small fixes made directly by maintainers are fine too — not everything needs a PR, but issue-linked commits (and a comment closing the issue) keep the history traceable for other contributors.

Get involved

License

Apache License 2.0

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL