Monitors
Servers and hardware
Linux, Windows, macOS and FreeBSD machines through the agent, server hardware through its management controller, UPS units and Active Directory.
Monitor descriptions and alert rule texts are in English, as in the product. The page labels follow your language.
Linux, Windows, macOS or FreeBSD: CPU, memory, disks, network, Docker, services, backups.
Examples
- Linux server
- Windows server
- Raspberry Pi
What you need
No account needed.
Built-in alert rules 13
- WarningMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
- AdvisoryHigh CPUCPU load sustained above 90%, averaged per monitor across SNMP, Proxmox and agent sources; clears below 85 %.
- InfoUnusual CPUCPU load noticeably different from the usual at this time and day of the week (seasonal baseline).
- AdvisoryDisk almost fullFilesystem 90% full or more, per mount point (SNMP, Proxmox storages and root filesystems); clears below 88 %.
- AdvisoryFilesystem almost fullAt this rate, the filesystem will be full within four days.
- WarningDisk SMART failingThe disk's own SMART self-assessment reports it as failing. Replace it and check the backups.
Show 7 more
- WarningZFS pool degradedA ZFS pool is no longer healthy: a device is missing, faulted or removed.
- WarningZFS scrub found errorsThe last ZFS scrub found errors on this pool, or files are permanently lost. The pool can stay ONLINE.
- WarningTemperature above criticalA sensor is above the critical temperature its own hardware declares; no fixed value.
- AdvisoryContainer stoppedThe container has been stopped for two minutes. A container Docker would not restart is left out: a one-shot docker run that finished, a container never started, or one stopped by hand without a restart policy. A crash (any other exit code), an out-of-memory kill, or an always / unless-stopped container still counts.
- AdvisoryContainer unhealthyThe container's health check has been failing for three minutes. A stopped container is left out: Docker keeps its last verdict, which no longer means anything.
- AdvisoryContainer restartingThe container restarted three times or more in fifteen minutes (increase(dumbmonit_container_restart_count[15m])): it is rarely stopped long enough for the previous rule.
- InfoContainer update availableA newer image is available in the registry for this container.
Setup steps: Install the agent on the machine
In DumbMonit, add a monitor and pick Server with the agent, then choose how the machine reaches the server: directly, or through the relay of a remote site behind a firewall.
An enrollment token (its secret starts with dmon_; the token is listed as tok_… afterwards) is shown once, with the install command ready to copy for Linux/macOS, Windows and Docker.
Run that install command on the machine, with elevated rights (sudo on Linux and macOS, an elevated PowerShell on Windows).
The page waits for the first report (a few seconds), then lets you name the machine, file it in a folder and place it at a site, on the spot.
Optional, for Docker: if the agent runs under a dedicated user, add that user to the "docker" group and restart the agent.
usermod -aG docker dumbmonit
For a fleet (a playbook, a machine image), tick Several machines with this command; a whole Windows domain goes through the Active Directory kit, offered on the same page.
Heads-up. The agent contacts the server, never the other way round: no port needs to be opened on the monitored machine.
Documentation
Windows (WinRM, no agent)
winrm
A Windows server or PC without installing anything, through WinRM and WMI queries: CPU, memory, disks, services (the chosen ones and every automatic service that is stopped), uptime and recent event log errors.
Examples
- Windows Server 2019
- Windows Server 2022
- Windows 11 workstation
What you need
- Windows accountA local or domain account in the Remote Management Users group, as dumbmonit, DOMAIN\dumbmonit or dumbmonit@domain.
Default port: 5986
Built-in alert rules 1
- WarningMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
Setup steps: Give DumbMonit a WinRM account on the Windows server
On the server, in an elevated PowerShell, enable WinRM.
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Create the HTTPS listener with a certificate named after the server (use your own certificate instead of this self-signed one if you have one), then open its port.
$cert = New-SelfSignedCertificate -DnsName "srv01.corp.example.com" -CertStoreLocation Cert:\LocalMachine\My
New-Item -Path WSMan:\LocalHost\Listener -Transport HTTPS -Address * -CertificateThumbPrint $cert.Thumbprint -Force
New-NetFirewallRule -DisplayName "WinRM HTTPS" -Direction Inbound -Protocol TCP -LocalPort 5986 -Action Allow
Create the account with a long random password, then add it to the groups listed below.
net user dumbmonit * /add
net localgroup "Remote Management Users" dumbmonit /add
net localgroup "Performance Monitor Users" dumbmonit /add
net localgroup "Event Log Readers" dumbmonit /add
Give the account access to the WMI namespace: wmimgmt.msc → right-click WMI Control → Properties → Security → Root → CIMV2 → Security, add it and tick Enable Account and Remote Enable.
In DumbMonit, enter the server name as its certificate names it (srv01.corp.example.com) and log in as dumbmonit, or DOMAIN\dumbmonit for a domain account.
Heads-up. The account runs no command on the server, it only reads WMI. NTLM and Basic (HTTPS only) are supported, Kerberos is not. Pending Windows updates cannot be read this way. A self-signed certificate needs the option Accept an unverifiable certificate.
Documentation
Server hardware (Redfish)
redfish
Fans, temperatures, power supplies, drives and memory, read from the BMC (iDRAC, iLO…).
Examples
- Supermicro BMC
- Dell iDRAC
- HPE iLO
- Lenovo XClarity Controller
- ASRock Rack BMC
What you need
- Management controller account
Default port: 443
Built-in alert rules 7
- WarningServer fan failedThe management controller reports a fan as failed.
- WarningServer temperature above criticalA temperature sensor is above the critical threshold the controller itself declares.
- AdvisoryPower supply redundancy lostThe power supplies are no longer redundant: one more failure and the server goes down.
- WarningPower supply failedThe controller reports a power supply as failed.
- AdvisoryDrive failure predictedA drive reports a predicted failure: replace it while it still works.
- WarningServer health criticalThe controller reports the system's own health as Critical.
Show 1 more
- WarningMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
Setup steps: Create a read-only account on the management controller
Open the web interface of the management controller (BMC), not the operating system of the server.
Create a local user named as follows, with a long password used nowhere else.
dumbmonit
Give it the read-only right of your vendor, listed below.
In DumbMonit, enter the controller address (bmc.lan or 10.0.0.50) with that user name and password.
Heads-up. Do not reuse the controller's factory account, which can power the server off and reflash the firmware; a self-signed certificate needs "Accept an unverifiable certificate" ticked.
Documentation
UPS served by Network UPS Tools: on battery, low or worn-out battery, charge, runtime left, load and input voltage, for every UPS the server publishes.
Examples
- Synology or QNAP NAS with a USB UPS
- Raspberry Pi running NUT
- TrueNAS UPS service
What you need
- upsd user name / passwordSent with USERNAME and PASSWORD before reading. upsd does not check them to read; set them only if your setup asks for them.
No account needed.
Default port: 3493
Built-in alert rules 3
- WarningUPS on batteryThe UPS is powering the load from battery.
- WarningUPS battery lowThe UPS battery is low or depleted.
- WarningMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
Setup steps: Let DumbMonit read the NUT server
On a plain NUT install, add this line to upsd.conf and restart upsd.
LISTEN 0.0.0.0 3493
Open TCP port 3493 in the firewall for the DumbMonit host.
On a NAS, enable its network UPS server instead: Synology DSM → Control Panel → Hardware & Power → UPS, then add the DumbMonit host under Permitted DiskStation Devices.
Optional, to name this client: add a user without actions or instcmds to upsd.users, with a long random password, and restart upsd.
[dumbmonit]
password = a-long-random-password
In DumbMonit, enter the NUT server's address (nas.lan): every UPS it publishes is watched.
Heads-up. DumbMonit watches the UPS; it shuts nothing down: the machines it powers still need their own NUT client (upsmon) to shut down cleanly.
Documentation
Active Directory
activedirectory
A Windows domain over LDAP, read-only: domain controllers and FSMO roles, privileged group members, password policy, and security findings such as Kerberos-roastable accounts, unconstrained delegation or an old krbtgt password.
Examples
- Windows Server domain controller
- Samba AD domain controller
What you need
- Service accountA plain domain user created for DumbMonit, member of no group.
Default port: 636
Built-in alert rules 6
- WarningDomain controller unreachableA domain controller of the domain no longer answers on its LDAP port. A name that does not resolve from DumbMonit produces no series and never fires.
- AdvisoryActive Directory bind failedThe domain controller answers but refuses the service account: expired password, disabled or locked-out account.
- AdvisoryPrivileged group membership changedA member joined or left Domain Admins, Enterprise Admins, Schema Admins, Administrators or an operators group, nesting included (changes_prometheus(dumbmonit_ad_privileged_group_fingerprint[1h]), label group). Resolves by itself an hour later.
- AdvisoryActive Directory replication failingThe queried domain controller cannot replicate from a partner. Only when the account may read replication status.
- Infokrbtgt password older than 180 daysThe krbtgt password was last changed more than 180 days ago.
- WarningMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
Setup steps: Create a read-only service account for DumbMonit
Active Directory Users and Computers → your domain → Users → New → User: name it as follows, set a long random password and add it to no group.
svc-dumbmonit
On its Account tab, tick Password never expires, or the bind fails the day the password does.
Optional, to see inbound replication status: grant the account the right listed below on the domain object.
dsacls "DC=corp,DC=example,DC=com" /G "CORP\svc-dumbmonit:CA;Monitor active directory replication"
For LDAPS, export your certification authority's certificate as Base-64 encoded X.509 and paste it as CA certificate below.
In DumbMonit, enter a domain controller's name as its certificate names it (dc1.corp.example.com) and log in as [email protected].
Heads-up. Plain LDAP on port 389 sends the password in clear and is refused by default: use LDAPS, or StartTLS on port 389.
Documentation
Prometheus exporter
prometheus
Any exporter that serves Prometheus metrics (node_exporter, windows_exporter, cAdvisor, blackbox_exporter…): every series is stored and can be graphed and used in threshold alerts.
Examples
- node_exporter
- windows_exporter
- cAdvisor
- blackbox_exporter
What you need
- Basic authFor an exporter behind basic authentication (web.config.file, or a reverse proxy).
- Bearer tokenSent as "Authorization: Bearer …" on every read.
No account needed.
Default port: 9100
Built-in alert rules 1
- WarningMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
Setup steps: Point DumbMonit at the exporter
Check that the exporter answers from the DumbMonit host.
curl http://server.lan:9100/metrics
In DumbMonit, enter the host and pick the exporter, or leave custom and give the port.
Optional: restrict what is stored with Keep only or Ignore, to keep a large exporter within the series limit.
Optional: if the exporter is on another site, choose a relay agent to read it from there.
Heads-up. Metrics pages are usually unauthenticated: filter the port so that only the DumbMonit host reaches it.
Documentation
Receives OpenTelemetry metrics (OTLP over HTTP) from a collector or an instrumented application: gauges, counters and histograms are stored and can be graphed and alerted on.
Examples
- OpenTelemetry Collector
- Instrumented application
- Docker host with an OTel agent
What you need
No account needed.
Built-in alert rules 1
- WarningMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
Setup steps: Send OTLP/HTTP to DumbMonit
In Settings, API & assistants, create a token with the write scope. Restrict it to the network of your collector.
Save this source, then note its number: it ends the address of its page, /devices/<number>.
In the otlphttp exporter of your collector, set the endpoint to this server followed by /api/otlp, then add two headers: Authorization with the token, and X-DumbMonit-Target with the number of this source.
https://monit.example.com/api/otlp
Make sure counters and histograms use cumulative temporality (the default); for delta, add the deltatocumulative processor.
Optional: logs sent to /api/otlp/v1/logs are stored in VictoriaLogs when it is enabled in Settings, Storage.
Heads-up. OTLP over gRPC is not supported: configure the otlphttp exporter, not otlp. The token can write to the whole API: keep it in the collector's secrets.
Documentation