Magazine Insolite

Monit surveiller et agir sur les services de votre serveur

Publié le 11 juin 2012 par Shadwk

Maintenant que le serveur fonctionne bien, il est important qu’un chef d’orchestre surveille tout le petit monde et fasse diverses contrôles à votre place. Le logiciel miracle est Monit comme vous allez le voir car ce dernier vous alerte lorsqu’un problème survient sur votre serveur, mais il essaye aussi de rétablir la situation. Cela peut être pratique lorsque le service sshd tombe et que vous n’avez pas accès à la machine physiquement…

Pour commencer, il faut installer le paquet.

apt-get install monit

Configuration du démon

set daemon  900
set logfile syslog facility log_daemon
set httpd port 8080 and allow user:pass

set alert [email protected]
set mailserver localhost
set mail-format {
        from: [email protected]
        subject: [monit] $SERVICE: $EVENT
}
set eventqueue basedir /home/log/monit slots 100

include /etc/monit/conf.d/*
  • daemon : Fréquence entre deux contrôles exprimé en secondes (ici 15 minutes).
  • httpd : Serveur web vers lequel on pourra monitorer en temps réelle ce qui se passe. user:pass sont à changer selon vos désires.
  • alert : Adresse email vers laquelle envoyer une alerte.
  • eventqueue : Fichier contenant les alertes n’ayant pas put être envoyer.

Configuration de Monit et des services à surveiller

Nous allons créer un fichier de configuration par service a surveiller. Ces fichiers seront dans le dossier /etc/monit/config.d/

Apache2 (/etc/monit/conf.d/apache2)

group www
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 (/etc/monit/conf.d/mysql)

check process mysql with pidfile /var/run/mysqld/mysqld.pid
group database
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

Pure-FTPD (/etc/monit/conf.d/pureftpd)

check process vsftpd with pidfile /var/run/pure-ftpd/pure-ftpd.pid
start program = "/etc/init.d/pure-ftpd-mysql start"
stop program  = "/etc/init.d/pure-ftpd-mysql stop"
if failed port 21 protocol ftp then restart
if 5 restarts within 5 cycles then timeout

SSHd (/etc/monit/conf.d/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

Fail2ban(/etc/monit/conf.d/fail2ban)

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

Rsyslog (/etc/monit/conf.d/rsyslog)

group system
start program = "/etc/init.d/rsyslog start"
stop  program = "/etc/init.d/rsyslog
if 5 restarts within 5 cycles then timeout

Activer Monit

Pour terminer il faut activer Monit en modifiant le fichier /etc/default/monit

startup=1

Puis vous pouvez le redémarrer et si tout ce passe bien vous devriez avoir un mail vous informant qu’il a bien démarrer.

/etc/init.d/monit restart

Et voila, Monit va surveiller pour vous votre serveur et envoyer des mails d’alerte si un problème survient !

Share on Facebook

Retour à La Une de Logo Paperblog

A propos de l’auteur


Shadwk 9 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte