Sur un serveur, les services peuvent tomber sans prévenir : Apache crash, MySQL ne répond plus, le disque se remplit… Monit est un outil léger, facile à configurer et capable de surveiller, redémarrer et alerter automatiquement en cas de problème.
C’est un excellent choix pour un auto-hébergeur ou un admin VPS qui veut une supervision sans complexité.
🧩 Qu’est-ce que Monit ?
- Petit démon écrit en C
- Supervise services, fichiers, processus, ressources système
- Redémarre automatiquement ce qui plante
- Envoie des alertes e-mail
- Propose une interface web locale facultative
⚙️ Installation sur Debian / Ubuntu
sudo apt update
sudo apt install monit -y
Démarrer et activer au boot :
sudo systemctl enable --now monit
📁 Configuration de base
Fichier principal : /etc/monit/monitrc
Décommente la section suivante pour recevoir des alertes :
set mailserver localhost
set alert tonmail@tondomaine.fr
Tu peux tester l’envoi avec :
echo "Test Monit" | mail -s "Monit OK" tonmail@tondomaine.fr
🧪 Exemple de surveillance : Apache
Créer un fichier /etc/monit/conf-enabled/apache2
:
check process apache2 with pidfile /run/apache2/apache2.pid
start program = "/usr/sbin/service apache2 start"
stop program = "/usr/sbin/service apache2 stop"
if failed port 80 protocol http then restart
if 5 restarts within 5 cycles then timeout
Activer la configuration :
sudo monit reload
📊 Surveiller la charge, la mémoire, le disque
Dans monitrc
, ajouter :
check system localhost
if loadavg (1min) > 2.5 then alert
if memory usage > 85% then alert
if cpu usage (user) > 70% then alert
if space / > 90% then alert
🌐 Interface web locale
Tu peux activer l’interface web pour consulter les services :
set httpd port 2812
use address 127.0.0.1 # ou 0.0.0.0 pour accès externe
allow admin:motdepassefort
Puis :
sudo systemctl restart monit
Accès via : http://localhost:2812
🔁 Autres services surveillables
- MySQL :
check process mysql with pidfile /var/run/mysqld/mysqld.pid
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
if failed host 127.0.0.1 port 3306 then restart
- Nginx, Redis, Fail2ban, Docker, SSH, etc.
- Fichiers : taille, date, permissions, contenu
✅ Avantages de Monit
- 📦 Léger et natif (pas de conteneur, pas de dépendances)
- ⏱️ Réagit rapidement (par défaut toutes les 30 s)
- 🧠 Facile à écrire, facile à lire
- 🔐 Fonctionne sans interface graphique
🎯 Parfait pour auto-hébergeur solo, VPS minimaliste, ou devops pressé.