Si vous gérez des serveurs, vous avez déjà certainement été confronté à la mise en place d’un système de supervision. Les solutions techniques ne manquent pas (Nagios, Zabbix …) mais la plupart restent assez lourdes à mettre en œuvre et on tombe vite dans l’usine à gaz !
Si vos besoins sont simples (monitoring de l’espace disque, de la charge mémoire/processeur, requêtes simples sur un serveur distant, surveillance d’un processus local …) je vous conseille de jeter un coup d’œil du côté de Monit. Cette solution m’a séduit par sa simplicité et sa rapidité de mise en œuvre : un petit « apt-get install » (sous Debian ou Ubuntu / le paquet est disponible dans les dépôts officiels) et un seul et unique fichier de conf. On peut difficilement faire plus simple !
Un bémol toutefois : cette solution n’est pas capable d’aller interroger un agent localisé sur un serveur distant (comme on peut le faire avec Nagios par exemple). Il est toutefois possible de superviser le fonctionnement d’une machine distante au travers de requêtes standards (ping, http, smtp …)
Concernant l’installation et le paramétrage c’est assez simple (pour Debian / Ubuntu) :
apt-get install monit
Editez ensuite le fichier de configuration : /etc/monit/monitrc (au passage je vous conseille de faire une copie du fichier original : cp /etc/monit/monitrc /etc/monit/monitrc.original )
* vers la ligne 19 : la directive « set daemon » permet de définir l’intervalle entre deux tests (en secondes). On peut aussi retarder l’exécution du premier test avec « start delay » pour être sûr que le serveur ait bien fini de booter
* vers la ligne 52 : on définie « set mailserver » le serveur smtp à utiliser pour transmettre les alertes (il est possible d’en spécifier plusieurs en les séparant par une virgule)
* vers la ligne 84 : la directive « set mail-format » vous permet de modifier la structure et le contenu des emails d’alerte
* vers la ligne 109 : on mentionne l’adresse du contact qui recevra les alertes ( « set alert » ). De nombreuses options sont disponibles dans cette rubrique pour limiter l’envoi de certaines alertes à des contacts spécifiques par exemple. Consultez la doc pour en savoir plus
Vous trouverez ensuite quelques configurations types de tests pouvant être réalisés par Monit.
A titre trois exemples (très simples) que j’utilise personnellement :
* Pour tester l’espace disque disponible (envoi d’une alerte si l’espace disque occupé dépasse 90%)
check filesystem rootfs with path /dev/sda1 if space usage > 90% then alert
* Pour tester un hôte distant et envoyer une alerte si ce dernier ne répond plus au ping et/ou ne répond plus à une requête smtp sur le port 25
check host mail.votre_serveur.com with address mail.votre_serveur.com if failed icmp type echo count 3 with timeout 2 seconds then alert if failed port 25 protocol smtp with timeout 10 seconds then alert
* Pour tester la présence du process « Apache », lancer une requête http sur le port 80 du serveur et alerter en cas d’échec
check process apache with pidfile /var/run/apache2.pid if failed host www.votre_serveur.com port 80 protocol http then alert
Les possibilités offertes par Monit sont très vastes (il est possible par exemple de relancer automatiquement un service en cas de dysfonctionnement …). Je vous invite à consulter la doc qui est particulièrement bien détaillée (ICI).
A noter que Monit propose également un serveur web embarqué vous permettant de visualiser les équipements supervisés (et de gérer les services) à partir d’un simple navigateur. Vous pouvez activer et paramétrer cette fonctionnalité au sein du fichier de configuration « monitrc » (vers la ligne 118). Là encore le nombre d’options est important (authentification, gestion des droits …) il est donc impératif de consulter la documentation pour en savoir plus.
- Site officiel de Monit : http://mmonit.com/monit/
-
Lien direct vers la documentation : ICI
-
Si le sujet de la supervision vous intéresse voici un site assez complet présentant les différentes solutions disponibles : ICI
- Crédit photo : Michael