Monit est un outil permettant de vérifier l'état des processus.
Pour l'installer :
# aptitude install monit
Éditer le fichier /etc/default/monit et modifier l'option startup (mettre 1).
Ensuite, il faut éditer son fichier de configuration /etc/monit/monitrc :
set httpd port 2812 and allow username:password
Enfin, on doit configurer chaque processus qu'on veut surveiller. Pour chaque daemon à surveiller, créer son fichier de configuration dans /etc/monit/conf.d/. Voici une liste d'exemple :
check process apache2 with pidfile /var/run/apache2.pid start program = "/etc/init.d/apache2 start" stop program = "/etc/init.d/apache2 stop" if cpu is greater than 60% for 2 cycles then alert if cpu > 80% for 5 cycles then restart if totalmem > 240.0 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
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 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 fail2ban with pidfile /var/run/fail2ban/fail2ban.pid start program = "/etc/init.d/fail2ban start" stop program = "/etc/init.d/fail2ban stop" if failed unixsocket /var/run/fail2ban/fail2ban.sock then restart if 5 restarts within 5 cycles then timeout
check process postfix with pidfile /var/spool/postfix/pid/master.pid start program = "/etc/init.d/postfix start" stop program = "/etc/init.d/postfix stop" if failed port 25 protocol smtp for 2 times within 2 cycles then restart if 5 restarts within 5 cycles then timeout
check process imapd-ssl with pidfile /var/run/courier/imapd-ssl.pid start program = "/etc/init.d/courier-imap-ssl start" stop program = "/etc/init.d/courier-imap-ssl stop" if 5 restarts within 5 cycles then timeout
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
D'autres exemples sont disponibles sur le Wiki de Monit.