Monit : la supervision en toute simplicité

monitoringSi 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

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *