Surveillances
Applications auto-hébergées
Nextcloud, Immich, Paperless-ngx, Jellyfin, Plex, Home Assistant, GitLab et Forgejo.
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.
Maintenance mode left on, a database upgrade waiting, Nextcloud and app updates, active users, free space, PHP OPcache.
Exemples
- Nextcloud Server
- Nextcloud AIO
- Nextcloud Hub
Ce qu'il faut
- Monitoring token (NC-Token)The serverinfo token set with occ. It opens Nextcloud's statistics and nothing else.
Port par défaut: 443
Règles d'alerte livrées 6
- AvisNextcloud stuck in maintenanceMaintenance mode is on: nobody can log in or sync.
- AlerteNextcloud database upgrade pendingThe code was updated and Nextcloud waits for occ upgrade.
- InfoNextcloud update availableNextcloud's update check found a newer release.
- AvisNextcloud OPcache fullPHP's OPcache is out of room and pages get slow.
- AvisNextcloud free space lowLess than 5 GiB free for the data directory; clears above 6 GiB.
- 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: Create a monitoring token in Nextcloud
On the Nextcloud server, set a random token with occ as the web server user (in Docker: docker exec -u www-data, then the container name).
php occ config:app:set serverinfo token --value "$(openssl rand -hex 32)"
php occ config:app:get serverinfo token
If occ says serverinfo is disabled, enable the Monitoring app: profile menu → Apps → Monitoring → Enable.
In DumbMonit, enter the address you open Nextcloud with and paste the token.
À savoir. Use an address listed in Nextcloud's trusted domains, or Nextcloud refuses the request.
Documentation
Job queues that stall or sit paused, updates, disk space, photo and video counts, each device's last connection and last backup.
Exemples
Ce qu'il faut
- API keyAn Immich API key limited to the read permissions of the setup guide.
Port par défaut: 2283
Règles d'alerte livrées 5
- AvisImmich jobs stalledJobs wait in a queue that is not paused and runs nothing (dumbmonit_immich_queue_waiting > 0 and on (target, queue) dumbmonit_immich_queue_active == 0 unless on (target, queue) dumbmonit_immich_queue_paused == 1). The notification names the queue.
- InfoImmich queue pausedA job queue has been paused for a day.
- AvisImmich storage almost fullThe disk holding the library is more than 90 % full; clears below 88 %.
- InfoImmich update availableImmich's version check knows a newer release.
- 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: Create a read-only API key in Immich
In Immich, open Account Settings → API Keys → New API Key and name it as follows.
dumbmonit
Tick the permissions listed below, create the key and copy it: Immich shows it only once.
In DumbMonit, enter Immich's address and paste the key.
À savoir. Create the key from an account that can open Administration, or photo counts and job queues are skipped; "last backup" is the whole library's latest upload, the same for every device.
Documentation
Redis, Celery, search index and classifier health, failed imports, updates, disk space, document count.
Exemples
Ce qu'il faut
- API token (recommended)The token of the dedicated dumbmonit user, sent as "Authorization: Token …".
- User name / passwordThe dedicated dumbmonit user itself, sent as HTTP basic authentication.
Port par défaut: 8000
Règles d'alerte livrées 7
- AlertePaperless task queue downRedis or Celery in error (max by (target) (dumbmonit_paperless_component_status{component=~"redis\|celery"}): 2 is an error): nothing new is imported.
- AvisPaperless index or sanity check errorThe search index, the classifier or the sanity check (missing or altered files) reports an error.
- AvisPaperless migrations pendingDatabase migrations left to apply.
- AvisPaperless task failedA task this user can see failed within the failed task window and was not dismissed.
- AvisPaperless storage almost fullThe disk holding the documents is more than 90 % full; clears below 88 %.
- InfoPaperless update availablePaperless-ngx's version check knows a newer release.
Afficher 1 de plus
- 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: Create a read-only user in Paperless-ngx
In Paperless-ngx, open Settings → Users & Groups → Add user and name it as follows, with a long random password.
dumbmonit
Leave Superuser and Staff off, and give it only the permissions listed below.
Log in as that user, open the user menu → My Profile and generate its API token (circular arrow button).
In DumbMonit, enter Paperless-ngx's address and paste the token.
À savoir. When Redis or Celery stops, Paperless keeps serving its pages and documents, but nothing new is imported, from the consume folder or from mail, until someone looks. DumbMonit alerts on both.
Documentation
Scheduled tasks that fail (library scans), a restart waiting, broken plugins, active streams and transcodes.
Exemples
Ce qu'il faut
- API keyA key created in Jellyfin's dashboard, sent in the MediaBrowser authorization header.
Port par défaut: 8096
Règles d'alerte livrées 4
- AvisJellyfin scheduled task failedA scheduled task (a library scan, a cleanup) failed or was aborted on its last run.
- AvisJellyfin plugin brokenA plugin failed to load or does not support this version.
- InfoJellyfin restart pendingJellyfin has waited a day for a restart after a plugin install or update.
- 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: Create an API key in Jellyfin
In Jellyfin, open Dashboard → Advanced → API Keys → + and name the key as follows, then copy it.
DumbMonit
In DumbMonit, enter Jellyfin's address and paste the key.
À savoir. Jellyfin keys cannot be limited, so this one has every right on the server: keep it to DumbMonit and revoke it on the same page if it leaks.
Documentation
Active streams and transcodes, bandwidth, library scans, updates, read from the server itself.
Exemples
Ce qu'il faut
- X-Plex-TokenNeeded by a server linked to a Plex account, unless this network is allowed without authentication.
Aucun compte nécessaire.
Port par défaut: 32400
Règles d'alerte livrées 2
- InfoPlex update availablePlex's update check found a newer release.
- 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: Give DumbMonit access to the Plex server
In Plex Web, open Settings → Network and click Show Advanced.
Add the DumbMonit address to List of IP addresses and networks that are allowed without auth, then save.
10.0.0.20/32
In DumbMonit, enter the server's address and pick No token.
If DumbMonit is not on your network, use the owner's token instead: open a movie → ⋯ → Get Info → View XML and copy X-Plex-Token from the page address.
À savoir. The token is your Plex account's and can manage the server and every library: prefer the allowed network when DumbMonit is on your own network.
Documentation
Home Assistant
homeassistant
The smart home behind the dashboard: integrations whose entities went unavailable, low batteries, updates waiting and open repairs, plus the last connection of the companion app's phones and tablets.
Exemples
- Home Assistant OS
- Home Assistant Container
Ce qu'il faut
- Long-lived access tokenCreated in the dedicated user's profile, under Security.
Port par défaut: 8123
Règles d'alerte livrées 7
- AlerteHome Assistant in recovery modeHome Assistant started in recovery mode: its configuration could not be loaded and automations do not run.
- AvisHome Assistant not runningHome Assistant answers but has not finished starting for ten minutes.
- AvisHome Assistant entities went unavailableAt least five more entities are unavailable than an hour ago: an integration, a hub or a radio stopped (sum by (target) (dumbmonit_homeassistant_entities_unavailable) - sum by (target) (dumbmonit_homeassistant_entities_unavailable offset 1h)). The rise counts, not the total, which a real installation never has at zero.
- InfoHome Assistant battery lowA battery reported by Home Assistant is low.
- InfoHome Assistant update availableHome Assistant has updates waiting: core, operating system, add-ons or device firmware.
- AvisHome Assistant repair to addressHome Assistant has an open repair of error or critical severity.
Afficher 1 de plus
- 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: Create a dedicated user and a long-lived token in Home Assistant
Open Settings → People → Users → Add user (turn on Advanced mode in your profile if the tab is missing), name the user as follows and give it a long random password.
dumbmonit
Log in as that user, open its profile (bottom of the sidebar) → Security → Long-lived access tokens → Create token, name it and copy it: it is shown only once.
In DumbMonit, enter the Home Assistant address (for example homeassistant.local, port 8123) and paste the token.
À savoir. A long-lived token carries every right of its user and lasts ten years: create it for the dedicated user, never your own. Home Assistant serves plain HTTP unless TLS is configured: across an untrusted network, use HTTPS.
Documentation
GitLab (self-managed)
gitlab
Readiness, Sidekiq backlog, CI runners online or not, pending migrations, instance statistics, sign-up and two-factor settings, licence expiry.
Exemples
- GitLab Community Edition
- GitLab Enterprise Edition
Ce qu'il faut
- Personal access tokenAn administrator's personal access token, sent as PRIVATE-TOKEN. A token without admin rights still works, but only the version is read.
Port par défaut: 443
Règles d'alerte livrées 5
- AvisGitLab runners all offlineEvery CI/CD runner GitLab knows is offline, and at least one is registered (dumbmonit_gitlab_runners_online and on (target) dumbmonit_gitlab_runners_total > 0).
- AvisGitLab Sidekiq backlog highA Sidekiq queue has more than 500 jobs waiting (max by (target) (dumbmonit_gitlab_sidekiq_queue_backlog)): notifications, webhooks and imports fall behind.
- InfoGitLab migrations pendingDatabase migrations from an upgrade are left to apply.
- AvisGitLab license expiringThe Enterprise Edition licence expires in less than 30 days.
- 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: Create a read-only token in GitLab
On an administrator account, open avatar → Edit profile → Access → Personal access tokens → Generate token → Legacy token.
Name it as follows, set an expiry date you can renew, and tick only the scope listed below.
dumbmonit
Generate the token and copy it: GitLab shows it only once.
In DumbMonit, enter GitLab's address and paste the token.
To watch CI pipelines, list the numeric project IDs (shown on each project's page) in the Projects watched for CI health option.
À savoir. GitLab has no read-only administrator role, so the token can read everything its account can: use a dedicated bot account, not your own.
Documentation
Health check, repository, user and organisation counts, scheduled tasks running on time, Actions runners online or not.
Exemples
Ce qu'il faut
- Access tokenA site administrator's access token, sent as "Authorization: token …". A token without admin rights still works, but only the version and the account's own repositories are read.
Port par défaut: 3000
Règles d'alerte livrées 3
- AvisForgejo/Gitea runners all offlineEvery Actions runner is offline, and at least one is registered (dumbmonit_forgejo_runners_online and on (target) dumbmonit_forgejo_runners_total > 0).
- AvisForgejo/Gitea scheduled task overdueA scheduled task (repository check, cleanup, update checker) did not run at its own interval.
- 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: Create an access token in Forgejo or Gitea
On a site administrator account, open avatar → Settings → Applications → Generate New Token.
Name it as follows and tick only the scopes listed below.
dumbmonit
Generate the token and copy it: Forgejo shows it only once.
In DumbMonit, enter the server's address and paste the token.
À savoir. Forgejo and Gitea have no read-only administrator role, so the token can do whatever its account can: use a dedicated bot account, not your own.
Documentation
Readiness and database health, version, realms (disabled ones), active sessions and users per realm.
Exemples
- Keycloak 25 and later
- Keycloak 24 and earlier
Ce qu'il faut
- Client ID / secretA service-account client with read-only roles. DumbMonit asks for a token at each probe.
Aucun compte nécessaire.
Port par défaut: 8080
Règles d'alerte livrées 3
- AlerteKeycloak not readyKeycloak answers but its readiness check is DOWN, usually the database: nobody can log in.
- InfoKeycloak realm disabledA realm is disabled: its users cannot log in.
- 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: Let DumbMonit read Keycloak's health and realms
Run Keycloak with health checks on, with the option below. From Keycloak 25 they answer on the management port 9000.
KC_HEALTH_ENABLED=true
Optional, for realms, sessions and users: in the master realm, create a client named as follows, with Client authentication and Service accounts roles on, and Standard flow off.
dumbmonit
On that client's Service accounts roles tab, assign the client roles listed below, then copy the secret from its Credentials tab.
In DumbMonit, enter Keycloak's address and the client ID and secret, or choose None (health checks only).
À savoir. Keycloak 24 and earlier serve the health checks on the main port: set the health port option to same. Health checks must be enabled on the server, or DumbMonit reports a missing /health/ready.
Documentation
Readiness, workers, failed system tasks, outpost connections, version updates, users.
Exemples
Ce qu'il faut
- API tokenThe key of an API token created for a service account, sent as "Authorization: Bearer …".
Port par défaut: 9000
Règles d'alerte livrées 6
- Alerteauthentik not readyauthentik answers but its readiness check fails: database or cache down.
- Alerteauthentik has no workerNo worker reports: synchronisation, e-mails and clean-up stop.
- Avisauthentik task failedA system task failed on its last run. The notification names the task.
- Avisauthentik outpost disconnectedAn outpost that serves providers has not reported for five minutes.
- Infoauthentik update availableA newer authentik release exists.
- 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: Create an API token in authentik
In authentik, open Directory → Users → Create a service account and name it as follows, without a random password.
dumbmonit
Put that user in a group that can open the authentik interface, so it can read the system pages.
Open Directory → Tokens and App passwords, create a token for that user with the intent API Token and no expiry, and copy its key.
In DumbMonit, enter authentik's address and paste the key.
À savoir. authentik has no read-only role for its system pages: the token's user must be allowed into the interface, so keep the key only in DumbMonit. Pages the token cannot read are skipped, not failed.
Documentation
Vaultwarden
Bêtavaultwarden
Liveness, version, open sign-ups, and with the admin token disabled-account and two-step login counts.
Exemples
Ce qu'il faut
- Admin tokenThe plain ADMIN_TOKEN of the admin page. It opens a session whose cookie DumbMonit keeps between probes; only counters are read.
Aucun compte nécessaire.
Port par défaut: 443
Règles d'alerte livrées 2
- InfoVaultwarden sign-ups openAnyone who can reach the vault can create an account.
- 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: Check Vaultwarden, and optionally read its admin page
Nothing to install: check from the DumbMonit host that Vaultwarden answers.
curl https://vault.example.com/alive
Optional, for account counts: enable the admin page with an ADMIN_TOKEN on the server, and keep the plain token you type on the /admin page.
In DumbMonit, enter Vaultwarden's address; paste the admin token, or choose No admin token for the public checks only.
À savoir. The admin token opens Vaultwarden's admin page and can change every setting: store it only in DumbMonit, or leave it out if you do not need the counts. DumbMonit reads counters only, never a name, e-mail address or vault item.
Documentation
UniFi Protect
Bêtaunifiprotect
Cameras offline or not recording, NVR disks and storage, recording switched off.
Exemples
- UNVR
- Dream Machine Pro
- Cloud Key Gen2+
Ce qu'il faut
- Local user name / passwordA local UniFi OS user with the View Only role on Protect. Ubiquiti cloud accounts are refused.
Port par défaut: 443
Règles d'alerte livrées 5
- AvisProtect camera offlineA UniFi Protect camera is disconnected from its NVR. The notification names the camera.
- AvisProtect camera not recordingA camera is connected and set to record but does not.
- AlerteProtect NVR disk unhealthyThe NVR reports a failing disk.
- AvisProtect recording disabledRecording is switched off on the NVR.
- 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: Create a local view-only user for Protect
In UniFi OS, open Admins & Users → Create New and create a local user named as follows, with no cloud account.
dumbmonit
Give it access to the Protect application only, with the View Only role, and none to Network or other applications.
In DumbMonit, enter the console's address and that user name and password.
À savoir. Use a local account: UniFi OS refuses Ubiquiti cloud accounts here. The console's certificate is usually self-signed: turn on the certificate option.
Documentation
Cameras that stopped delivering frames, detector speed and hangs, frame rates, recording storage, updates.
Exemples
Ce qu'il faut
- Bearer tokenSent as "Authorization: Bearer …" on every request.
Aucun compte nécessaire.
Port par défaut: 5000
Règles d'alerte livrées 5
- AvisFrigate camera offlineA camera delivers no frames to Frigate. The notification names the camera.
- AvisFrigate detector stuckA detector has been on the same inference for more than 30 seconds.
- AvisFrigate storage almost fullThe disk holding the recordings is more than 90 % full; clears below 88 %.
- InfoFrigate update availableA newer Frigate release exists.
- 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: Let DumbMonit read Frigate's statistics
Nothing to install: check from the DumbMonit host that Frigate's API answers on port 5000.
curl http://frigate.lan:5000/api/version
If a proxy in front of Frigate expects a token (port 8971 requires a login), choose Bearer token below; otherwise choose No authentication.
In DumbMonit, enter Frigate's address, for example "frigate.lan".
À savoir. Port 5000 has no login and gives full control of Frigate: expose it only to DumbMonit, never to the internet. A camera you turned off in Frigate's settings also reads as offline.
Documentation
Health warnings, failing download clients and indexers, download queue errors, library disk space, updates.
Exemples
Ce qu'il faut
- API keyThe API key of Settings → General → Security, sent in the X-Api-Key header.
Port par défaut: 8989
Règles d'alerte livrées 5
- AvisSonarr health errorSonarr reports an error on its System → Status page: a failing download client or indexer, a missing root folder.
- AvisSonarr queue has errorsAn item of the download queue has an error (failed download, import blocked) for half an hour.
- AvisSonarr disk almost fullA disk Sonarr reports is more than 90 % full; clears below 88 %.
- InfoSonarr update availableA newer Sonarr release exists.
- 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: Read the API key in Sonarr
In Sonarr, open Settings → General → Security and copy the API Key.
In DumbMonit, enter Sonarr's address and paste the key.
À savoir. A Sonarr API key cannot be limited to reading: keep it only in DumbMonit, which sends GET requests and nothing else.
Documentation
Health warnings, failing download clients and indexers, download queue errors, library disk space, updates.
Exemples
Ce qu'il faut
- API keyThe API key of Settings → General → Security, sent in the X-Api-Key header.
Port par défaut: 7878
Règles d'alerte livrées 5
- AvisRadarr health errorRadarr reports an error on its System → Status page: a failing download client or indexer, a missing root folder.
- AvisRadarr queue has errorsAn item of the download queue has an error (failed download, import blocked) for half an hour.
- AvisRadarr disk almost fullA disk Radarr reports is more than 90 % full; clears below 88 %.
- InfoRadarr update availableA newer Radarr release exists.
- 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: Read the API key in Radarr
In Radarr, open Settings → General → Security and copy the API Key.
In DumbMonit, enter Radarr's address and paste the key.
À savoir. A Radarr API key cannot be limited to reading: keep it only in DumbMonit, which sends GET requests and nothing else.
Documentation
Health warnings, failing download clients and indexers, download queue errors, library disk space, updates.
Exemples
Ce qu'il faut
- API keyThe API key of Settings → General → Security, sent in the X-Api-Key header.
Port par défaut: 8686
Règles d'alerte livrées 5
- AvisLidarr health errorLidarr reports an error on its System → Status page: a failing download client or indexer, a missing root folder.
- AvisLidarr queue has errorsAn item of the download queue has an error (failed download, import blocked) for half an hour.
- AvisLidarr disk almost fullA disk Lidarr reports is more than 90 % full; clears below 88 %.
- InfoLidarr update availableA newer Lidarr release exists.
- 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: Read the API key in Lidarr
In Lidarr, open Settings → General → Security and copy the API Key.
In DumbMonit, enter Lidarr's address and paste the key.
À savoir. A Lidarr API key cannot be limited to reading: keep it only in DumbMonit, which sends GET requests and nothing else.
Documentation
Health warnings, indexers disabled after failures, disk space, updates.
Exemples
Ce qu'il faut
- API keyThe API key of Settings → General → Security, sent in the X-Api-Key header.
Port par défaut: 9696
Règles d'alerte livrées 5
- AvisProwlarr health errorProwlarr reports an error on its System → Status page: a failing download client or indexer, a missing root folder.
- AvisProwlarr disk almost fullA disk Prowlarr reports is more than 90 % full; clears below 88 %.
- InfoProwlarr update availableA newer Prowlarr release exists.
- AvisProwlarr indexers disabledProwlarr disabled indexers after repeated failures: Sonarr, Radarr and Lidarr stop finding releases through them.
- 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: Read the API key in Prowlarr
In Prowlarr, open Settings → General → Security and copy the API Key.
In DumbMonit, enter Prowlarr's address and paste the key.
À savoir. A Prowlarr API key cannot be limited to reading: keep it only in DumbMonit, which sends GET requests and nothing else.
Documentation
qBittorrent
Bêtaqbittorrent
Torrents in error or stalled, lost connectivity, download and upload speed, free space, torrents by state.
Exemples
Ce qu'il faut
- User name / passwordThe WebUI account. DumbMonit opens a session and reuses its cookie for the probe.
Aucun compte nécessaire.
Port par défaut: 8080
Règles d'alerte livrées 4
- AvisqBittorrent torrents in errorTorrents are in error or have lost their files.
- AvisqBittorrent disconnectedqBittorrent is firewalled or disconnected: nothing is downloaded or seeded.
- AvisqBittorrent free space lowLess than 5 GiB free in the download folder; clears above 6 GiB.
- 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: Give DumbMonit access to qBittorrent's WebUI
In qBittorrent, open Tools → Options → Web UI and tick Web User Interface (Remote control).
Under Authentication, set a user name and password named as follows, or allow DumbMonit's address in the whitelisted IP subnets bypass.
dumbmonit
In DumbMonit, enter qBittorrent's address and that user name and password, or choose No authentication for a bypassed address.
À savoir. qBittorrent bans an address for an hour after five failed logins (HTTP 403): fix the password before the next probe, or the probe stays refused.
Documentation