Monitoring with Beszel

Monitoring all your machines with Beszel, makes it easy to have a quick oversight of whats going on without been overly complex. It shows most metrics for different timescales and other things.
Beszel is a lightweight server monitoring platform that includes Docker statistics, historical data, and alert functions.
It has a friendly web interface, simple configuration, and is ready to use out of the box. It supports automatic backup, multi-user, OAuth authentication, and API access.

Installing the Windows Agent
Grab the latest release from https://github.com/henrygd/beszel/releases and download the latest beszel agent. Make sure to select Windows and the corresponding architecture (amd64 or arm64), arm64 in case of this guide. Unzip and copy the beszel-agent.exe
file to;
C:\Program Files\beszel-agent\beszel-agent.exe

On the Beszel dashboard, select Add System and select Binary.

Enter the machine Name and Host/IP, copy the Public Key to your clipboard ready for setting in the next step.

Configuring Beszel Agent as a Windows service
We're going to use Chocolatey to install NSSM, then enable the beszel-agent as a service on Windows.
Install Chocolatey - https://chocolatey.org/
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Install NSSM - https://nssm.cc/
choco install nssm
Install the Beszel Agent, set KEY & add firewall rule
nssm install beszelagent "C:\Program Files\beszel-agent\beszel-agent.exe"
nssm set beszelagent AppEnvironmentExtra "KEY=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAYOURKEYWOULDBEHERE2344545"
New-NetFirewallRule -DisplayName "Beszel Agent" -Direction Inbound -Protocol TCP -LocalPort 45876 -Action Allow
nssm start beszelagent
To view logs and check everything is good
nssm dump beszelagent
Then check back in the Beszel Hub and your machine should be added.

Install the agent on xcp-ng hosts
This is probably not recommended for production as we shouldn't be installing anything inside the dom0, also it may need a re-install after any updates.
ssh root@xcp-ng
curl -sL https://get.beszel.dev -o /tmp/install-agent.sh && chmod +x /tmp/install-agent.sh && /tmp/install-agent.sh
Open the port on the firewall inside the dom0
/etc/xapi.d/plugins/firewall-port open 45876 tcp