Installer le serveur
Sur Debian et ses dérivées (amd64, arm64, armhf, riscv64) :
curl -fsSL https://repo.lrob.net/apt/webmonit/webmonit.gpg -o /usr/share/keyrings/webmonit.gpg
echo "deb [signed-by=/usr/share/keyrings/webmonit.gpg] https://repo.lrob.net/apt/webmonit stable main" > /etc/apt/sources.list.d/webmonit.list
apt update && apt install webmonit
beta à la place de stable suit les builds de développement. Le paquet crée l'utilisateur système webmonit, écrit un /etc/webmonit/webmonit.yaml de départ, installe l'unité systemd et démarre le service sur 127.0.0.1:17460.
Le premier jeton, le premier compte
sudo -u webmonit webmonit token init # imprime le jeton d'API admin, une seule fois
sudo -u webmonit webmonit user add <login> # un compte pour l'interface
Le jeton se place dans ~/.config/webmonit/cli.yaml (server:, token:) ou dans WEBMONIT_TOKEN ; il commande tous les verbes de la CLI et l'API. Le compte, lui, est ce avec quoi vous vous connectez à l'interface.
Devant : un reverse proxy
Le service écoute sur la boucle locale, à dessein. Placez nginx, Apache ou Caddy avec TLS devant 127.0.0.1:17460, puis dites à la console l'URL à laquelle vous la servez, dans Settings › Server (ou public_url: dans /etc/webmonit/webmonit.yaml) — les liens des alertes, les pages de statut et l'extrait d'installation de l'agent s'en servent. Le panneau Getting started de l'accueil liste cette étape et les autres premiers pas tant qu'ils ne sont pas faits.
Vérifiez toute modification de la configuration avant de redémarrer : webmonit serve -t signale tous les problèmes d'un coup, chacun avec son fichier et sa ligne.
Résolution des noms
Les checks résolvent les noms par les résolveurs listés sous resolvers: dans /etc/webmonit/webmonit.yaml, dans cet ordre : le premier est toujours demandé en premier, le suivant seulement quand celui d'avant est resté muet. Un nom qui n'existe pas est définitif, quel que soit celui qui le dit. Mettez un résolveur local en premier et un public ensuite comme repli : un résolveur public demandé à chaque résolution finit par limiter, et chaque question qu'il jette coûte à un check tout son temps.
Tout ce qui touche à la résolution est un réglage, changé à chaud dans Settings › Checks, avec les valeurs du fichier tant que rien n'y est posé, et retour au fichier quand on vide le champ :
- Resolvers, in order — hôte ou hôte:port, huit au plus.
- Patience per resolver — combien de temps un résolveur peut rester muet avant qu'on demande au suivant, 2 s par défaut.
- DNS walk, per question — les checks DNS marchent aussi depuis la racine jusqu'aux serveurs autoritaires ; un renvoi qui n'est pas arrivé dans ce délai est sauté pour le suivant, 2 s par défaut.
- Ceiling per kind of check — le plus long qu'un check d'un type peut prendre, quoi que demande son moniteur : un port ou un ping répond en millisecondes, un check DNS qui interroge chaque serveur déclaré a besoin des secondes qu'un serveur mort coûte.