Monit est un outil open-source, sous licence GNU, de surveillance des services locaux sous GNU/Linux.
La particularité de Monit par rapport à d’autres outils de surveillance comme, par exemple Nagios ou Zabbix, est de pouvoir redémarrer le service en défaut tout en envoyant un e-mail à l’administrateur.
La visualisation de l’état des services est accéssible via l’interface web de Monit.
Installtion de Monit sur un serveur Debian Wheezy
Pré-requis
Pour pouvoir avoir accès à l’interface web de Monit, il faut avoir un serveur web.
apt-get install apache2
Installation de Momit
apt-get install monit
Configuration de Monit et des services à surveiller
Pour configurer Monit, il faut éditer le fichier /etc/monit/monitrc, ensuite ajouter des fichiers de configuration pour chaques services à surveiller dans le répertoire /etc/monit/conf.d/.
Configuration de Monit
nano /etc/monit/monitrc
Configuration du daemon Munit: 2 minutes d’intervales(configuration par défaut)
set daemon 120
Déclaration d’un serveur de messagerie pour délivrer les messages d’alertes:
set mailserver mail.server.tld
Pour être notifier par mail de toutes les alertes:
set alert sysadm@foo.bar
Pour personnaliser l’expéditeur du mail:
set mail-format { from: monit@foo.bar }
L’accès à l’interface web de Monit:
set httpd port 2812 and allow admin:monit
Par défaut le login et mot de passe sont admin et monit, à changer.
Pour auoriser l’accès à l’interface web de Monit uniquement en local, dé-commenter:
use address localhost allow localhost
Configuration des services à surveiller
Voici, quelques exemples de services:
sshd:
check process sshd with pidfile /var/run/sshd.pid start program "/etc/init.d/ssh start" stop program "/etc/init.d/ssh stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout
Apache2:
check process apache with pidfile /var/run/apache2.pid group www-data start program = "/etc/init.d/apache2 start" stop program = "/etc/init.d/apache2 stop" if cpu > 60% for 2 cycles then alert if cpu > 90% for 5 cycles then restart if totalmem > 500 MB for 5 cycles then restart if children > 250 then restart if loadavg(5min) greater than 10 for 8 cycles then stop if 3 restarts within 5 cycles then timeout
MySql ou MariaDB:
check process mysql with pidfile /var/run/mysqld/mysqld.pid group mysql start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop" if failed unix "/var/run/mysqld/mysqld.sock" then restart if failed host 127.0.0.1 port 3306 then restart if 5 restarts within 5 cycles then timeout
check process proftpd with pidfile /var/run/proftpd.pid start program = "/etc/init.d/proftpd start" stop program = "/etc/init.d/proftpd stop" if failed port 21 protocol ftp then restart if 5 restarts within 5 cycles then timeout
Activation de Momit
Par défaut, du moins sous Debian, Monit est actif. Pour vérifier il faut éditer le fichier /etc/default/monit et avoir:
START=yes
Une fois la configuration terminée, il faut relancer Monit:
service monit restart
Contrôl de la bonne syntax des fichiers de configuration
Pour contrôler la bonne syntax des fichers de configuration de Monit et des services associés:
monit -t
Interface web de Monit
Se connecter à l’interface web de monit: http://IP_server:2812/