Surveillances
Sites web, certificats et tests
Pages web et API, ports, DNS, ping, certificats TLS, serveurs de temps, expiration des domaines, heartbeats et changements de sites.
Les descriptions des surveillances et les textes des règles d'alerte sont en anglais, comme dans le produit. Les libellés de la page suivent votre langue.
Website or web API (HTTP)
http
A page or API answers with the right status and content, over a valid certificate.
Exemples
- Website
- Application health page
- REST API
- Self-hosted service interface
Ce qu'il faut
- Username / passwordSent as HTTP basic authentication.
- Bearer tokenSent as "Authorization: Bearer …" on every request.
Aucun compte nécessaire.
Port par défaut: 443
Règles d'alerte livrées 5
- AlerteService downThe service has not responded correctly for three minutes.
- AvisService flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- AvisSlow serviceThe service takes more than three seconds to respond; failed checks are left out.
- AvisCertificate expiring soonThe certificate expires in less than fourteen days.
- AlerteCertificate expiredThe certificate has expired.
Étapes de mise en place: 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.
À savoir. Never write a password or a token in the options: use the credential field, which is encrypted.
Documentation
A port accepts connections: SSH, a file share, a game server, anything without its own probe.
Exemples
- SSH
- SMB or NFS share
- Database
- Game server
- Network printer
Ce qu'il faut
Aucun compte nécessaire.
Règles d'alerte livrées 3
- AlerteService downThe service has not responded correctly for three minutes.
- AvisService flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- AvisSlow serviceThe service takes more than three seconds to respond; failed checks are left out.
Étapes de mise en place: 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.
À savoir. An open port does not prove the application works: for a web service, use the "Website or web API" type.
Documentation
Sends a datagram to a UDP port and checks the reply, or that nobody refuses it.
Exemples
- A game or VoIP server
- A syslog or SNMP listener
- A WireGuard endpoint
- A custom UDP service that answers a ping message
Ce qu'il faut
Aucun compte nécessaire.
Règles d'alerte livrées 1
- AlerteMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
Étapes de mise en place: 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.
À savoir. UDP has no connection: without an expected reply, a firewall that silently drops the datagrams looks healthy.
Documentation
A name resolves, and points to the address you expect.
Exemples
- Your domain name
- An internal name served by your Pi-hole or AdGuard
- An MX record
Ce qu'il faut
Aucun compte nécessaire.
Port par défaut: 53
Règles d'alerte livrées 3
- AlerteService downThe service has not responded correctly for three minutes.
- AvisService flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- AvisSlow serviceThe service takes more than three seconds to respond; failed checks are left out.
Étapes de mise en place: 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".
À savoir. Give the DNS server by its IP address, not by a name.
Documentation
Reachable host (ping)
ping
A host answers ICMP: response time and packet loss.
Exemples
- Home router or gateway
- Wi-Fi access point
- Printer
- Machine without agent or SNMP
- Remote host
Ce qu'il faut
Aucun compte nécessaire.
Règles d'alerte livrées 3
- AlerteService downThe service has not responded correctly for three minutes.
- AvisService flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- AvisSlow serviceThe service takes more than three seconds to respond; failed checks are left out.
Étapes de mise en place: 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.
À savoir. In Docker, keep the sysctls lines of the shipped docker-compose.yml, or the check cannot send pings.
Documentation
A certificate is valid on any TLS port, with a warning well before it expires.
Exemples
- Mail server (IMAPS, SMTPS)
- Reverse proxy
- LDAPS directory
- MQTT broker
- Administration interface
Ce qu'il faut
Aucun compte nécessaire.
Port par défaut: 443
Règles d'alerte livrées 3
- AlerteService downThe service has not responded correctly for three minutes.
- AvisCertificate expiring soonThe certificate expires in less than fourteen days.
- AlerteCertificate expiredThe certificate has expired.
Étapes de mise en place: 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".
À savoir. For a website, the "Website or web API" type already reads the certificate: use this type for services that do not speak HTTP.
Documentation
A time server answers SNTP with a sane clock: offset, delay, stratum and leap indicator.
Exemples
- A router or NAS acting as a local time server
- An internal NTP server (chrony, ntpd)
- A public pool server used as a reference
Ce qu'il faut
Aucun compte nécessaire.
Port par défaut: 123
Règles d'alerte livrées 3
- AlerteService downThe service has not responded correctly for three minutes.
- AvisService flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- AvisSlow serviceThe service takes more than three seconds to respond; failed checks are left out.
Étapes de mise en place: 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.
À savoir. Keep the DumbMonit host itself in sync: its own drift is added to the measured offset.
Documentation
Reads the SSH banner and, if you ask, checks that the host key is still the one you know.
Exemples
- A Linux server or a Raspberry Pi
- A NAS or a hypervisor with SSH enabled
- A bastion host
- A Git server over SSH
Ce qu'il faut
Aucun compte nécessaire.
Port par défaut: 22
Règles d'alerte livrées 1
- AlerteMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
Étapes de mise en place: 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.
À savoir. The check never logs in and does not verify the server's signature: it reads the key the server shows, like ssh-keyscan.
Documentation
Calls the standard gRPC health check (grpc.health.v1): catches a service that is up but reports itself unhealthy.
Exemples
- A gRPC microservice
- etcd
- A service behind Envoy or a service mesh
- Any server that registers grpc.health.v1
Ce qu'il faut
Aucun compte nécessaire.
Port par défaut: 50051
Règles d'alerte livrées 1
- AlerteMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
Étapes de mise en place: 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.
À savoir. The check only sees what the health service reports: a server that always answers SERVING proves nothing about the methods behind it.
Documentation
WebSocket endpoint
websocket
Completes the upgrade handshake, and can exchange a frame.
Exemples
- The Home Assistant API
- A live dashboard
- A log stream
- An endpoint behind a reverse proxy
Ce qu'il faut
- Username / passwordSent as HTTP basic authentication.
- Bearer tokenSent as "Authorization: Bearer …" on every request.
Aucun compte nécessaire.
Port par défaut: 443
Règles d'alerte livrées 5
- AlerteService downThe service has not responded correctly for three minutes.
- AvisService flappingThe service changed state more than six times in thirty minutes (changes(dumbmonit_probe_success{probe!="push"}[30m])).
- AvisSlow serviceThe service takes more than three seconds to respond; failed checks are left out.
- AvisCertificate expiring soonThe certificate expires in less than fourteen days.
- AlerteCertificate expiredThe certificate has expired.
Étapes de mise en place: 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.
À savoir. The check hangs up within a second: a connection that a firewall or proxy cuts after thirty seconds looks healthy here.
Documentation
Your cron job or backup script calls DumbMonit; when it goes quiet, you are told.
Exemples
- Nightly backup script
- Cron job
- Home Assistant automation
- Certificate renewal
- Database dump
Ce qu'il faut
Aucun compte nécessaire.
Règles d'alerte livrées 1
- AvisHeartbeat missedThe job has not called in within its expected interval plus grace period, or reported a failure itself).
Étapes de mise en place: 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.
À savoir. 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.
Documentation
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.
Exemples
- example.com
- Your company's domain
- The domain of your mail server
Ce qu'il faut
Aucun compte nécessaire.
Règles d'alerte livrées 5
- AvisDomain expiringThe domain expires in less than 30 days.
- AlerteDomain about to expireThe domain expires in less than 7 days, or has expired.
- AlerteDomain on holdThe registry put the domain in clientHold or serverHold: it is out of the DNS.
- AlerteDomain in redemptionThe domain is in redemptionPeriod, pendingDelete or pendingRestore: it has expired.
- AlerteMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
Étapes de mise en place: 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/
À savoir. A domain in clientHold or serverHold is taken out of the DNS: every site and mailbox under it stops.
Documentation
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.
Exemples
- Cloudflare
- GitHub
- Atlassian Cloud
- The AWS Health feed
Ce qu'il faut
Aucun compte nécessaire.
Règles d'alerte livrées 1
- AlerteMonitor unreachableNo measurement received for more than three minutes. bottomk by (target) (1, time() - tlast_over_time(dumbmonit_up[7d]))
Étapes de mise en place: 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.
À savoir. The monitor reads what the provider chooses to publish, often minutes after the fact: it complements your own checks and never replaces them.
Documentation
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.
Exemples
- Company website
- Online shop
- Customer sites you host
- Landing pages
- Blog or documentation
Ce qu'il faut
Aucun compte nécessaire.
Port par défaut: 443
Règles d'alerte livrées 2
- AlerteService downThe service has not responded correctly for three minutes.
- InfoWebsite 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.
Étapes de mise en place: 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.
À savoir. Only what the server sends is read: for a page drawn by JavaScript, set "Blank page below" to 0.
Documentation
Be told when the content of a page, or of a whole site, changes, with a before/after view of each change.
Exemples
- Pricing or terms page
- Documentation site
- Supplier's status or maintenance notice
- Public announcement page
- Your own site after a deployment
Ce qu'il faut
Aucun compte nécessaire.
Port par défaut: 443
Règles d'alerte livrées 1
- InfoWebsite 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.
Étapes de mise en place: 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.
À savoir. Only the text the server sends is compared: pages drawn by JavaScript or behind a login are not followed.
Documentation