Website or web API (HTTP)
http
A page or API answers with the right status and content, over a valid certificate.
示例
- Website
- Application health page
- REST API
- Self-hosted service interface
您需要准备
- Username / passwordSent as HTTP basic authentication.
- Bearer tokenSent as "Authorization: Bearer …" on every request.
无需账户。
默认端口: 443
内置告警规则 5
- 警告Service downThe service has not responded correctly for three minutes.
- 提示Service flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- 提示Slow serviceThe service takes more than three seconds to respond; failed checks are left out.
- 提示Certificate expiring soonThe certificate expires in less than fourteen days.
- 警告Certificate expiredThe certificate has expired.
设置步骤: Monitor a web page
In the address, paste the full URL of the page to monitor.
Prefer a light page such as "/health" or "/status" over the home page.
If the page needs a login, choose a credential: username and password (basic) or a token (Bearer).
Optionally require a keyword in the page or a value in a JSON response, in the options.
注意. Never write a password or a token in the options: use the credential field, which is encrypted.
文档
A port accepts connections: SSH, a file share, a game server, anything without its own probe.
示例
- SSH
- SMB or NFS share
- Database
- Game server
- Network printer
内置告警规则 3
- 警告Service downThe service has not responded correctly for three minutes.
- 提示Service flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- 提示Slow serviceThe service takes more than three seconds to respond; failed checks are left out.
设置步骤: Monitor a port
In the address, write the host and the port separated by a colon: "nas.home.lan:22", or "[fd00::1]:445" for IPv6.
Or leave the port out of the address and fill in the "Port" option.
注意. An open port does not prove the application works: for a web service, use the "Website or web API" type.
文档
Sends a datagram to a UDP port and checks the reply, or that nobody refuses it.
示例
- A game or VoIP server
- A syslog or SNMP listener
- A WireGuard endpoint
- A custom UDP service that answers a ping message
内置告警规则 1
- 警告Monitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
设置步骤: Monitor a UDP service
In the address, write the host and the UDP port: "192.168.1.20:5060". The port is required.
To check that the service really answers, fill in "Datagram to send" and "Expected reply".
Without an expected reply, the check only fails when the host answers that the port is closed.
注意. UDP has no connection: without an expected reply, a firewall that silently drops the datagrams looks healthy.
文档
A name resolves, and points to the address you expect.
示例
- Your domain name
- An internal name served by your Pi-hole or AdGuard
- An MX record
内置告警规则 3
- 警告Service downThe service has not responded correctly for three minutes.
- 提示Service flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- 提示Slow serviceThe service takes more than three seconds to respond; failed checks are left out.
设置步骤: Monitor a DNS resolution
In the address, write the name to resolve, without "http://": "www.example.com".
Pick another record type in the options if you do not want an IPv4 address (A record).
To monitor your own DNS server, enter its IP address in "DNS server to query".
To detect hijacking, list the addresses the answer must contain in "Expected values".
注意. Give the DNS server by its IP address, not by a name.
文档
Reachable host (ping)
ping
A host answers ICMP: response time and packet loss.
示例
- Home router or gateway
- Wi-Fi access point
- Printer
- Machine without agent or SNMP
- Remote host
内置告警规则 3
- 警告Service downThe service has not responded correctly for three minutes.
- 提示Service flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- 提示Slow serviceThe service takes more than three seconds to respond; failed checks are left out.
设置步骤: Monitor a host with ping
In the address, write the host name or IP address: "192.168.1.1" or "router.home.lan".
Lower "Tolerated loss" in the options to be warned before the loss is total.
注意. In Docker, keep the sysctls lines of the shipped docker-compose.yml, or the check cannot send pings.
文档
A certificate is valid on any TLS port, with a warning well before it expires.
示例
- Mail server (IMAPS, SMTPS)
- Reverse proxy
- LDAPS directory
- MQTT broker
- Administration interface
内置告警规则 3
- 警告Service downThe service has not responded correctly for three minutes.
- 提示Certificate expiring soonThe certificate expires in less than fourteen days.
- 警告Certificate expiredThe certificate has expired.
设置步骤: Monitor a certificate
In the address, write the host and the port of the encrypted service: "mail.example.com:993" (443 if omitted).
If you reach the service by its IP address, enter the certificate's name in "Server name (SNI)".
For a certificate from your own authority, tick "Accept an unverifiable certificate".
注意. For a website, the "Website or web API" type already reads the certificate: use this type for services that do not speak HTTP.
文档
A time server answers SNTP with a sane clock: offset, delay, stratum and leap indicator.
示例
- A router or NAS acting as a local time server
- An internal NTP server (chrony, ntpd)
- A public pool server used as a reference
内置告警规则 3
- 警告Service downThe service has not responded correctly for three minutes.
- 提示Service flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- 提示Slow serviceThe service takes more than three seconds to respond; failed checks are left out.
设置步骤: Monitor an NTP server
In the address, write the server's name or IP address: "pool.ntp.org" or "192.168.1.1".
Lower "Tolerated offset" in the options to be warned earlier than 100 ms.
注意. Keep the DumbMonit host itself in sync: its own drift is added to the measured offset.
文档
Reads the SSH banner and, if you ask, checks that the host key is still the one you know.
示例
- A Linux server or a Raspberry Pi
- A NAS or a hypervisor with SSH enabled
- A bastion host
- A Git server over SSH
内置告警规则 1
- 警告Monitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
设置步骤: Monitor an SSH server
In the address, write the host name or IP address, with the port if it is not 22: "server.home.lan:2222".
To be warned when the server's identity changes, read its fingerprint with ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub.
Paste that fingerprint (SHA256:...) in "Expected host key", or tick "Alert when the host key changes" to record it without choosing one.
注意. The check never logs in and does not verify the server's signature: it reads the key the server shows, like ssh-keyscan.
文档
Calls the standard gRPC health check (grpc.health.v1): catches a service that is up but reports itself unhealthy.
示例
- A gRPC microservice
- etcd
- A service behind Envoy or a service mesh
- Any server that registers grpc.health.v1
内置告警规则 1
- 警告Monitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
设置步骤: Monitor a gRPC service
Check that the server registers the standard health service (grpc.health.v1.Health): most gRPC frameworks have a one-line helper for it.
In DumbMonit, enter the server with its port, for example grpc.home.lan:50051.
Tick Encrypted connection (TLS) for a server that requires it; the port then defaults to 443.
Optional: name a Service, to check its own health instead of the whole server's.
注意. The check only sees what the health service reports: a server that always answers SERVING proves nothing about the methods behind it.
文档
WebSocket endpoint
websocket
Completes the upgrade handshake, and can exchange a frame.
示例
- The Home Assistant API
- A live dashboard
- A log stream
- An endpoint behind a reverse proxy
您需要准备
- Username / passwordSent as HTTP basic authentication.
- Bearer tokenSent as "Authorization: Bearer …" on every request.
无需账户。
默认端口: 443
内置告警规则 5
- 警告Service downThe service has not responded correctly for three minutes.
- 提示Service flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- 提示Slow serviceThe service takes more than three seconds to respond; failed checks are left out.
- 提示Certificate expiring soonThe certificate expires in less than fourteen days.
- 警告Certificate expiredThe certificate has expired.
设置步骤: Monitor a WebSocket endpoint
In DumbMonit, paste the full endpoint, for example wss://home.example.com/api/websocket (wss is assumed without a scheme).
Optional: fill in Expected content with a fragment of the first frame the server sends by itself.
Optional: if the endpoint says nothing until spoken to, put a message in Frame to send, and what the answer must contain in Expected content.
注意. The check hangs up within a second: a connection that a firewall or proxy cuts after thirty seconds looks healthy here.
文档
Your cron job or backup script calls DumbMonit; when it goes quiet, you are told.
示例
- Nightly backup script
- Cron job
- Home Assistant automation
- Certificate renewal
- Database dump
内置告警规则 1
- 提示Heartbeat missedThe job has not called in within its expected interval plus grace period, or reported a failure itself).
设置步骤: Make the job call in
In the address, write a short label for the job, unique among your heartbeats: "nightly-backup".
Set the expected interval to the job's schedule ("24h" for a nightly job), or give a cron expression and a time zone, then save the monitor.
Copy the URL shown on the monitor page and call it at the end of the job.
curl -fsS -m 10 --retry 3 https://monit.example.com/api/push/<token>
To time the job, call .../start before it, then .../success or .../fail after it, with its output as the request body. Send an exit code as ?exit_code=2 or as .../2.
To report a failure at once, append ?status=down&msg=... to the URL.
注意. Call the URL at the end of the job, after the part that matters: a call at the top would report a success even when the job fails.
文档
A registered domain, read from its registry over RDAP: days left before expiry, a hold that takes it out of the DNS, a redemption period, and its registrar.
示例
- example.com
- Your company's domain
- The domain of your mail server
内置告警规则 5
- 提示Domain expiringThe domain expires in less than 30 days.
- 警告Domain about to expireThe domain expires in less than 7 days, or has expired.
- 警告Domain on holdThe registry put the domain in clientHold or serverHold: it is out of the DNS.
- 警告Domain in redemptionThe domain is in redemptionPeriod, pendingDelete or pendingRestore: it has expired.
- 警告Monitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
设置步骤: Watch a domain's registration
Enter the registered domain, for example "example.com", not a name under it such as www.example.com.
For an extension the IANA does not list, such as .ch, set "RDAP server" to the registry's address.
https://rdap.nic.ch/
注意. A domain in clientHold or serverHold is taken out of the DNS: every site and mailbox under it stops.
文档
Third-party service status
provider
The public status page of a provider you depend on (Cloudflare, GitHub, Atlassian, AWS…), read as a monitor: it fails when the provider reports an incident, so you hear about it before your users do.
示例
- Cloudflare
- GitHub
- Atlassian Cloud
- The AWS Health feed
内置告警规则 1
- 警告Monitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
设置步骤: Watch a provider's status page
Enter a provider name (cloudflare, github, atlassian, aws, discord, npm…; the full list is in the guide), or the address of a Statuspage page or RSS/Atom feed.
To watch one part of the provider only, enter its name under Component, for example "Workers" or "EC2".
Choose what makes the monitor fail: any degradation, a partial outage or worse, or a major outage only.
注意. The monitor reads what the provider chooses to publish, often minutes after the fact: it complements your own checks and never replaces them.
文档
Website health & SEO
website
Know when a website breaks, goes blank, drops out of search engines or changes its title, description or canonical address, for one site or hundreds.
示例
- Company website
- Online shop
- Customer sites you host
- Landing pages
- Blog or documentation
内置告警规则 2
- 警告Service downThe service has not responded correctly for three minutes.
- 信息Website changedA check of a watched page or site found pages that changed, appeared or disappeared. Each such check is notified and names the pages, under the same alert while it fires; it resolves at the first check that finds nothing new.
设置步骤: Watch a website
In the address, paste the page to check, usually the home page.
Optionally fill in "Expected text" with a phrase the page must always show.
To add many sites at once, import a CSV file from the monitor list.
注意. Only what the server sends is read: for a page drawn by JavaScript, set "Blank page below" to 0.
文档
Be told when the content of a page, or of a whole site, changes, with a before/after view of each change.
示例
- Pricing or terms page
- Documentation site
- Supplier's status or maintenance notice
- Public announcement page
- Your own site after a deployment
内置告警规则 1
- 信息Website changedA check of a watched page or site found pages that changed, appeared or disappeared. Each such check is notified and names the pages, under the same alert while it fires; it resolves at the first check that finds nothing new.
设置步骤: Watch a website for changes
In the address, paste the page to watch, with http:// or https://.
To follow a whole site or section, set "Scope" to "site".
List lines that change at every visit (a clock, a counter) in "Ignore lines", as regular expressions.
For a screenshot of each version, follow the "Screenshots" section of this page.
注意. Only the text the server sends is compared: pages drawn by JavaScript or behind a login are not followed.
文档