Vous faites tourner Maintenant sur un serveur et il voit tout ce qui tourne dessus. Puis arrive un deuxième VPS, puis un troisième. Installer un Maintenant sur chacun fonctionne, mais vous vous retrouvez avec trois tableaux de bord et trois jeux d’alertes.
Le mode multi-serveurs garde un seul tableau de bord : un serveur, et un agent léger sur chaque autre hôte.
Comment ça marche
- Le serveur est une instance Maintenant normale, lancée avec
--mode=server. Il garde l’historique, évalue les règles d’alerte et sert le tableau de bord. - Chaque agent est la même image, lancée avec
--mode=agent. Il lit le socket Docker local en lecture seule (ou Swarm, ou Kubernetes, détectés tout seuls) et envoie au serveur l’état des conteneurs, les endpoints, les certificats ainsi que le CPU, la mémoire et le disque de l’hôte. - Le lien est un flux gRPC persistant, ouvert par l’agent. Pas de base partagée, pas de file de messages, pas de VPN.
- Chaque élément est rattaché à son hôte : deux conteneurs
postgressur deux machines ne se mélangent jamais.
Enrôler un hôte
L’enrôlement utilise un jeton à usage unique, généré dans l’interface du serveur. Au premier démarrage, l’agent crée une paire de clés Ed25519 en local et présente le jeton une seule fois. Ensuite, chaque flux est authentifié par défi-réponse. Vous pouvez révoquer un agent depuis l’interface à tout moment.
L’interface génère la commande exacte. Elle ressemble à ceci :
docker run -d --name maintenant-agent --restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc:/host/proc:ro \
-v /etc/os-release:/host/etc/os-release:ro \
-v maintenant-agent-data:/var/lib/maintenant \
ghcr.io/kolapsis/maintenant:latest \
--mode=agent --server=grpcs://monitoring.example.com \
--enrollment-token=mnt_enr_XXXXXXXXXXXXXXXX --label="prod-worker-01"
Sur le serveur, renseignez MAINTENANT_GRPC_URL avec l’adresse que les agents joindront (par exemple grpcs://monitoring.example.com), pour que les commandes générées pointent au bon endroit. La documentation multi-hôtes détaille le reverse proxy et le TLS.
Quand un agent se tait
Si le réseau coupe, l’agent continue de collecter dans un tampon local, se reconnecte tout seul et rejoue les événements des conteneurs, les mesures de ressources et les résultats des sondes une fois le flux rétabli. Les graphiques et la disponibilité n’ont pas de trou. À la reconnexion, il envoie d’abord un inventaire à jour : la vue actuelle est juste immédiatement.
Ce que permet chaque édition
| Community | Personal | Pro | |
|---|---|---|---|
| Machine qui fait tourner Maintenant | oui | oui | oui |
| Hôtes distants via des agents | aucun | jusqu’à 20 | Illimité |
| Canaux d’alerte | webhook, Discord | + email, Telegram | + Slack, Teams, escalade |
| Utilisation sur les serveurs d’un tiers | oui (Apache 2.0) | non | oui |
La machine qui fait tourner le serveur n’est jamais comptée. Personal coûte 149 € TTC, une fois, pour des serveurs que vous possédez ou gérez pour vous-même. Si les serveurs appartiennent à vos clients, c’est Pro.
Avant de commencer
- Les agents n’ont besoin que d’un accès sortant vers l’adresse gRPC du serveur.
- Le serveur détient l’identité des agents. S’il tourne sur PostgreSQL, un serveur de remplacement reprend la flotte sans rien réenrôler.