Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| monit [Le 17/07/2009, 14:52] – Autre lien mort (site officiel) rorist | monit [Le 14/01/2020, 06:55] (Version actuelle) – [Présentation] Actualisation du paragraphe sur m/monit qui datait de 2007. 78.251.109.36 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | ====== Monit : Alerter et Réagir en cas de panne ====== | ||
| + | |||
| + | ===== Présentation ===== | ||
| + | |||
| + | |||
| + | //monit// est un outil de surveillance de services locaux. Il vérifie la | ||
| + | disponibilité des *daemons* présents sur le serveur qui l' | ||
| + | panne, //monit// peut alerter l' | ||
| + | |||
| + | La particularité de //monit// par rapport à d' | ||
| + | (// | ||
| + | déclencher des actions pour tenter de rétablir un service interrompu, | ||
| + | comme par exemple relancer un serveur //Apache// si il ne répond plus ou | ||
| + | vider la file d' | ||
| + | |||
| + | < | ||
| + | |||
| + | --- // | ||
| + | |||
| + | //monit// est un logiciel à la fois simple et puissant. À utiliser avec | ||
| + | précautions ! | ||
| + | |||
| + | Quelques infos : | ||
| + | |||
| + | * Licence : GPL | ||
| + | * Site officiel : http:// | ||
| + | |||
| + | |||
| + | |||
| + | Une solution de gestion distribuée de //monit//, appelée //m/monit// permet de superviser | ||
| + | à distance de multiples instances //monit//, c' | ||
| + | |||
| + | |||
| + | ===== Installation ===== | ||
| + | |||
| + | |||
| + | L' | ||
| + | |||
| + | $ apt-get install monit | ||
| + | |||
| + | Le paquet se trouve dans le dépôt // | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Configuration ===== | ||
| + | |||
| + | |||
| + | |||
| + | Dans premier temps, il convient d' | ||
| + | les paramètres généraux du démon monit. La configuration des services | ||
| + | surveillés sera abordée dans la partie suivante. | ||
| + | |||
| + | Éditer le fichier /// | ||
| + | suivantes : | ||
| + | < | ||
| + | set daemon | ||
| + | set logfile syslog facility log_daemon | ||
| + | set mailserver localhost | ||
| + | set mail-format { from: monit@serveurdev.example.com } | ||
| + | set alert root@localhost | ||
| + | set httpd port 2812 and | ||
| + | SSL ENABLE | ||
| + | PEMFILE | ||
| + | allow admin:test | ||
| + | </ | ||
| + | L' | ||
| + | //monit//. Un cycle correspond à l' | ||
| + | vérifications. | ||
| + | |||
| + | Cette configuration active le serveur //web// (//https//) de //monit// sur le | ||
| + | port //2812//. L' | ||
| + | messages d' | ||
| + | |||
| + | Le fichier de configuration est très clair et il est relativement | ||
| + | simple de modifier le comportement du *daemon* de surveillance. | ||
| + | |||
| + | Il faut ensuite engendrer un certificat //SSL//. Tout d' | ||
| + | répertoire qui accueillera le certificat : | ||
| + | |||
| + | $ mkdir /var/certs | ||
| + | $ cd /var/certs | ||
| + | |||
| + | Puis définir les options du certificat : | ||
| + | |||
| + | vi / | ||
| + | < | ||
| + | # create RSA certs - Server | ||
| + | | ||
| + | [ req ] | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | [ req_dn ] | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | [ cert_type ] | ||
| + | | ||
| + | </ | ||
| + | Puis procéder à la génération du certificat : | ||
| + | < | ||
| + | $ openssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out / | ||
| + | $ openssl gendh 512 >> / | ||
| + | $ openssl x509 -subject -dates -fingerprint -noout -in / | ||
| + | $ chmod 700 / | ||
| + | </ | ||
| + | |||
| + | Dans un environnement de développement, | ||
| + | ne pas être nécessaire, | ||
| + | ci-dessus par les lignes : | ||
| + | < | ||
| + | set httpd port 2812 and | ||
| + | allow admin:monit | ||
| + | </ | ||
| + | L' | ||
| + | fréquence de surveillance (ici : 60 secondes). Pour cela on édite le | ||
| + | fichier /// | ||
| + | < | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | Il ne reste plus qu'à démarrer //monit// : | ||
| + | < | ||
| + | $ / | ||
| + | </ | ||
| + | Vérifier que le *daemon* est activé, en se connectant à l' | ||
| + | < | ||
| + | | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Utilisation ===== | ||
| + | |||
| + | |||
| + | Pour surveiller un service donné, il suffit d' | ||
| + | //monitrc// et de spécifier : | ||
| + | |||
| + | * le fichier //PID// du service, | ||
| + | * les commandes de démarrage et d' | ||
| + | * l' | ||
| + | * la condition de test à effectuer, | ||
| + | * le(s) commande(s) à effectuer lorsque le test est positif. | ||
| + | |||
| + | Par exemple, voici comment redémarrer automatiquement le serveur //SSH// | ||
| + | s'il ne répond plus : :: | ||
| + | < | ||
| + | check process sshd with pidfile / | ||
| + | start program | ||
| + | stop program | ||
| + | if failed port 22 protocol ssh then restart | ||
| + | if 5 restarts within 5 cycles then timeout | ||
| + | </ | ||
| + | La dernière ligne permet d' | ||
| + | la configuration du serveur //SSH// est erronée. | ||
| + | |||
| + | Bien sûr il est possible de configurer des traitements d' | ||
| + | fins. Voici par exemple, une politique de surveillance d'// | ||
| + | < | ||
| + | check process apache with pidfile / | ||
| + | start program = "/ | ||
| + | stop program = "/ | ||
| + | if failed host www.example.com port 80 protocol http | ||
| + | and request "/ | ||
| + | if cpu is greater than 60% for 2 cycles then alert | ||
| + | if cpu > 80% 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 | ||
| + | </ | ||
| + | Dans cet exemple, //monit// vérifiera la présence d'un fichier | ||
| + | // | ||
| + | redémarré. | ||
| + | |||
| + | On note également qu'une alerte par courriel sera envoyé dès qu'// | ||
| + | utilisera plus de 60% des capacités du ou des processeurs. | ||
| + | |||
| + | |||
| + | |||
| + | ===== Pour aller plus loin ===== | ||
| + | |||
| + | |||
| + | |||
| + | * Quelques exemples de configurations avancées : http:// | ||
| + | * Documentation : http:// | ||
| + | * Plusieurs tutoriels sur la configuration de Monit : http:// | ||
| + | |||
| + | |||
| + | |||
