Monitoring with Beszel

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