To monitor a Proxmox VE host with Beszel: install the Beszel Hub on any internet-reachable server, then run the Beszel agent on the Proxmox host with a one-liner installer (curl -sL https://get.beszel.dev | bash). The agent uses about 10MB of RAM, exposes port 45876, and reports CPU, memory, disk, network, temperature, and Docker container metrics to the Hub. No license. No telemetry. No per-host pricing.
I run Beszel across two Proxmox hosts and a handful of LXC containers in my homelab. Total monthly cost: $0 (Hub on a free-tier pod) or about $3/mo if you want a managed Hub. Total RAM footprint per machine: 10MB. Total time to set up the first host: under 5 minutes once the Hub is running.
This guide walks through the full setup, including the LXC-vs-host decision, the systemd service config that survives Proxmox reboots, and the gotchas that trip people up.
What is Beszel?
Beszel is an open-source server monitoring tool built by Henry Doss. It has two parts:
- Beszel Hub: a web dashboard you self-host once. It receives metrics from every agent and renders the charts, alerts, and history.
- Beszel Agent: a tiny binary you install on each machine you want to monitor. It reports CPU, RAM, disk usage, network throughput, swap, temperature, and Docker container stats.
The agent uses about 10MB of RAM. For comparison: Netdata's agent uses 200-500MB. Datadog's agent uses 500MB+ and starts at $15/host/month. Beszel is free and self-hosted.
For Proxmox VE specifically, Beszel gives you per-host load, memory pressure, ZFS pool usage, and a per-container view if you run Docker on the host. It does not replace the Proxmox cluster manager (you still want that for backups and migrations), but it gives you the historical graphs and alert hooks Proxmox itself does not.
Step-by-Step: Install Beszel on Proxmox
The setup has two phases. Phase 1 is one-time. Phase 2 you repeat for every Proxmox host or LXC container you want to monitor.
Phase 1: Set up the Beszel Hub
The Hub needs to live somewhere reachable from your Proxmox hosts. Options:
- A cheap VPS (Hetzner CX11 at $4/mo, InstaPods Launch plan at $3/mo, or any small Linux box).
- An LXC container on your Proxmox host itself (free, but you lose monitoring if the host goes down).
- A Raspberry Pi on the same network (zero cloud cost, but no remote alerts).
For most homelabs I recommend option 1 or 3. If you only have one Proxmox host, option 1 wins because you can still see metrics when the host reboots.
For a one-click Hub on a $3 pod with HTTPS handled: deploy the Beszel app on InstaPods. Otherwise, pull the official Docker image:
docker run -d \
--name beszel \
--restart unless-stopped \
-p 8090:8090 \
-v ./beszel_data:/beszel_data \
henrygd/beszel
Open http://<hub-host>:8090/ in a browser. The first request prompts you to create an admin account. Save the URL - the agents need it.
Phase 2: Install the Beszel Agent on the Proxmox host
SSH into the Proxmox host as root:
ssh root@your-proxmox-host
In the Beszel Hub web UI, click Add System. Copy the public key it generates - the agent needs this to authenticate.
Run the installer one-liner:
curl -sL https://get.beszel.dev -o /tmp/install-agent.sh && \
chmod +x /tmp/install-agent.sh && \
/tmp/install-agent.sh
The installer prompts for:
- Public key: paste from the Hub
- Port: leave default (45876)
- Hub URL (optional): if your Hub is on a different network, paste the full URL
- Token (optional): only needed for advanced multi-tenant setups
The installer creates a systemd service at /etc/systemd/system/beszel-agent.service and starts it. Verify:
systemctl status beszel-agent
Output should show active (running). Within 30 seconds, the host appears in the Beszel Hub dashboard with live charts.
Phase 3 (Optional): Monitor LXC Containers Individually
Proxmox LXC containers do not appear automatically as separate systems in Beszel - they share the host's namespace. If you want each LXC monitored independently, install the agent inside the container:
pct enter <container-id>
curl -sL https://get.beszel.dev | bash
exit
For privileged LXC containers this works directly. For unprivileged containers you may need to enable the mount=cgroup feature in the container's .conf file at /etc/pve/lxc/<id>.conf. Most monitoring metrics (CPU, RAM, network) work without this; full Docker stats inside the LXC need it.
Phase 4: Make it Reboot-Proof
The installer already enables the service via systemctl enable beszel-agent.service. To verify after a reboot:
sudo reboot
# wait, SSH back in
systemctl is-enabled beszel-agent
# expected: enabled
systemctl is-active beszel-agent
# expected: active
If the agent does not come up, the most common cause is firewall. Check that port 45876 is open between the host and the Hub:
iptables -L | grep 45876
# or for nftables
nft list ruleset | grep 45876
Beszel vs Other Proxmox Monitoring Options
| Tool | RAM per agent | Setup time | Cost | Best for |
|---|---|---|---|---|
| Beszel | 10 MB | 5 min | $0 (self-hosted) | Homelabs, small fleets, Proxmox + Docker |
| Netdata | 200-500 MB | 10 min | $0 (free tier) or $69/mo (cloud) | Granular per-second metrics, ML anomaly detection |
| Datadog Agent | 500+ MB | 30 min | $15+/host/month | Large enterprise fleets, compliance |
| Grafana + Prometheus + Node Exporter | 200+ MB stack | 60+ min | $0 (self-hosted), complex | Customizable dashboards, alerting flexibility |
| Proxmox built-in graphs | 0 (already there) | 0 min | $0 | Single-host CPU/RAM at-a-glance only |
| Zabbix | 50-200 MB | 60+ min | $0 (self-hosted), enterprise pricing | Network device monitoring, large fleets |
For most Proxmox homelabs running 1-10 hosts, Beszel hits the sweet spot. It is more lightweight than Netdata, simpler than Grafana + Prometheus, and free vs Datadog. The trade-off is fewer metrics types - if you need per-second granularity or ML anomaly detection, Netdata is the better pick.
Frequently Asked Questions
Does Beszel work on Proxmox VE 8?
Yes. The agent is a standalone Linux binary that runs on any modern systemd-based Linux distribution. Proxmox VE 7 and 8 (both Debian-based) work without modification.
Will the Beszel agent interfere with Proxmox's own monitoring?
No. Beszel reads from /proc and /sys, the same places Proxmox's built-in graphs read from. There is no conflict and no measurable performance overhead.
Can I monitor ZFS pools with Beszel?
Beszel reports disk usage for mounted filesystems including ZFS. It does not report ZFS-specific metrics like ARC hit ratio or scrub status. For those, pair Beszel with zpool status cron alerts or use zfs-mon.
How do I add alerts when a Proxmox host goes down?
In the Beszel Hub, open any system and click the bell icon next to the metric you want to alert on. Beszel supports email, Discord, Slack, ntfy, Pushover, Gotify, and webhook notifications. The Hub watches for missing agent heartbeats and fires a "system down" alert automatically.
What if I run Proxmox in a cluster?
Install the agent on each cluster node. Each node reports independently to the Hub. The Hub does not currently aggregate cluster-level views (per-cluster RAM, per-cluster VM count), so you get a per-node dashboard rather than a cluster overview.
Is there a Beszel agent for Windows Server?
Yes, as of Beszel 0.8+. Same install pattern with a PowerShell installer instead of bash. Most Proxmox users do not need this, but it is there if you have a mixed-OS homelab.
Cost Comparison: One Year of Proxmox Monitoring
For a 3-host Proxmox cluster monitored over 12 months:
| Setup | Year 1 cost |
|---|---|
| Beszel + Hub on InstaPods $3/mo Launch plan | $36 |
| Beszel + Hub on Hetzner CX11 €4/mo | ~$56 |
| Beszel + Hub self-hosted on existing Pi/VPS | $0 |
| Netdata Cloud Pro (3 hosts) | $99 |
| Datadog Pro (3 hosts) | $540 |
Beszel pays for itself the first month if you were paying for Netdata or Datadog. The license is open source. There is no per-host or per-metric pricing.
Wrapping Up
Beszel on Proxmox is the lightest-weight serious monitoring you can get. 10MB of RAM per host, a real web UI with charts and alerts, and Docker container visibility for free. The setup is two phases - Hub once, agent per host - and the agent ships its own systemd service so it survives reboots.
If you want zero-config Hub hosting with HTTPS and a real backup story, Beszel runs as a 1-click app on InstaPods for $3/mo. You can also see how it stacks against Netdata, Datadog, and Prometheus in our comparison cluster.
What does your Proxmox monitoring stack look like? Drop a comment - I'm especially curious about anyone running Beszel alongside Netdata or Grafana to see if they're worth the combined overhead.
Top comments (0)