DocsHow hosts are read

Platforms

View source on GitHubdocs/platforms.md

Six platforms are supported, and every one of them can be monitored with the agent or agentless over SSH. The agent reads more and keeps reading through a network break; agentless installs nothing on the target. A metric a platform cannot give is shown as unknown (it exists but cannot be read this way) or n/a (it does not exist there), with the reason, and never as zero. An unknown metric never sets a host state.

PlatformBase systemAgent installAgentless loginGuide
LinuxAny distribution; x86_64, aarch64 and armv7Static binary and a systemd unit, or the agent containersshd, any user; POSIX sh probeLinux
Unraidx86_64 only; the root file system runs from RAMAgent container (compose or a container template)sshd as root; POSIX sh probeUnraid
Synology DSMDSM 7; x86_64 and aarch64Container Manager project, or the binary from a boot-up Task Scheduler tasksshd (Control Panel, Terminal & SNMP) for a member of administrators; POSIX sh probeSynology DSM
UGREEN UGOS ProDebian 12 based; DXP series x86_64, DH series aarch64Docker project where the model has Docker, otherwise the binary and a systemd unitsshd (Control Panel, Terminal); POSIX sh probe. Nothing is installed on the boxUGREEN UGOS Pro
macOSarm64 and x86_64Native binary and a launchd jobRemote Login (sshd); POSIX sh probemacOS
WindowsWindows 10 1809 or later, Windows 11, Server 2019 or later; x86_64yarrix.exe registered as a Windows service (install-agent.ps1)Built-in OpenSSH Server; PowerShell 5.1 or laterWindows

Unraid, Synology DSM, UGOS Pro and Windows have not been run on real systems yet. Each guide says what has been exercised.

What each method reads#

A metric the agentless probe does not read is shown as not read. Custom checks can read anything the SSH account can; see custom-checks.md.

The agentless probes are linux.sh (version 1), macos.sh (version 1), windows.ps1 (version 1). Linux, Unraid, Synology and UGOS share linux.sh.

Linux#

MetricAgentAgentless (SSH)
CPUyesyes
Memory and swapyesyes
Disk usage per volumeyesyes
Disk I/Oyesyes
Networkyesyes
Uptimeyesyes
Load averageyesyes
Temperatureyes, if the kernel exposes hwmon or thermal-zone sensorsyes
GPUneeds nvidia-smi (NVIDIA) or amdgpu counters (AMD)not read
SMARTneeds smartctlyes, with ssh.sudo and a NOPASSWD rule; otherwise unknown
RAID (md)yes, if the md driver is loaded (/proc/mdstat)yes
Containersneeds a reachable Docker socketnot read
Servicesyes, if systemctl is presentnot read
Sleep detectionyes, if dbus-monitor and systemd-inhibit are presentnot read

Unraid#

MetricAgentAgentless (SSH)
CPUyesyes
Memory and swapyesyes
Disk usage per volumeyesyes
Disk I/Oyesyes
Networkyesyes
Uptimeyesyes
Load averageyesyes
Temperatureyes, if the kernel exposes hwmon or thermal-zone sensorsyes
GPUneeds nvidia-smi (NVIDIA) or amdgpu counters (AMD)not read
SMARTneeds smartctlyes, with ssh.sudo and a NOPASSWD rule; otherwise unknown
RAID (md)yes, if the md driver is loaded (/proc/mdstat)yes
Unraid arrayyes, if mdcmd status is readableyes
Containersneeds a reachable Docker socketnot read
Servicesyes, if systemctl is presentnot read
Sleep detectionyes, if dbus-monitor and systemd-inhibit are presentnot read

Synology DSM#

MetricAgentAgentless (SSH)
CPUyesyes
Memory and swapyesyes
Disk usage per volumeyesyes
Disk I/Oyesyes
Networkyesyes
Uptimeyesyes
Load averageyesyes
Temperatureyes, if the kernel exposes hwmon or thermal-zone sensorsyes
GPUneeds nvidia-smi (NVIDIA) or amdgpu counters (AMD)not read
SMARTneeds smartctlyes, with ssh.sudo and a NOPASSWD rule; otherwise unknown
RAID (md)yes, if the md driver is loaded (/proc/mdstat)yes
Containersneeds a reachable Docker socketnot read
Servicesyes, if systemctl is presentnot read
Sleep detectionyes, if dbus-monitor and systemd-inhibit are presentnot read

UGREEN UGOS Pro#

MetricAgentAgentless (SSH)
CPUyesyes
Memory and swapyesyes
Disk usage per volumeyesyes
Disk I/Oyesyes
Networkyesyes
Uptimeyesyes
Load averageyesyes
Temperatureyes, if the kernel exposes hwmon or thermal-zone sensorsyes
GPUneeds nvidia-smi (NVIDIA) or amdgpu counters (AMD)not read
SMARTneeds smartctlyes, with ssh.sudo and a NOPASSWD rule; otherwise unknown
RAID (md)yes, if the md driver is loaded (/proc/mdstat)yes
Containersneeds a reachable Docker socketnot read
Servicesyes, if systemctl is presentnot read
Sleep detectionyes, if dbus-monitor and systemd-inhibit are presentnot read

macOS#

MetricAgentAgentless (SSH)
CPUyesyes
Memory and swapyesyes
Disk usage per volumeyesyes
Disk I/Oyesyes
Networkyesyes
Uptimeyesyes
Load averageyesyes
Temperatureunknown: IOKit HID temperature sensors are not read yetunknown: SMC temperature sensors cannot be read over plain ssh on macOS
GPUyesunknown: GPU utilization needs root-level tooling; not read agentless
SMARTneeds smartctlyes, with ssh.sudo and a NOPASSWD rule; otherwise unknown
RAID (md)n/a: md arrays are Linux-onlyn/a: md arrays are Linux-only
Containersneeds a reachable Docker Desktop socketnot read
Servicesyes, if launchd label globs are set in agent.yaml (services:)not read
Sleep detectionyesnot read

Windows#

MetricAgentAgentless (SSH)
CPUyesyes
Memory and swapyesyes
Disk usage per volumeyesyes
Disk I/Oyesyes
Networkyesyes
Uptimeyesyes
Load averagen/a: Windows has no load averagen/a: Windows has no load average
Temperatureunknown: no reliable temperature API without vendor driversunknown: no reliable temperature API without vendor drivers
GPUneeds nvidia-smiunknown: GPU utilization is not read agentless
SMARTneeds smartctl.exe (smartmontools), run as an administratorunknown: needs smartmontools installed and an Administrators account
RAID (md)n/a: md arrays are Linux-onlyn/a: md arrays are Linux-only
Containersneeds the docker_engine named pipenot read
Servicesyes, if service name globs are set in agent.yaml (services:)not read
Sleep detectionyes, if running as the Windows servicenot read