Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
monit [Le 27/04/2007, 19:38]
daamien créée
monit [Le 03/12/2022, 11:52] (Version actuelle)
freechelmi
Ligne 1: Ligne 1:
 +{{tag>​administration systeme serveur vétuste}}
 ====== Monit : Alerter et Réagir en cas de panne ====== ====== Monit : Alerter et Réagir en cas de panne ======
  
Ligne 8: Ligne 9:
 panne, //monit// peut alerter l'​administrateur du système. panne, //monit// peut alerter l'​administrateur du système.
  
-La particularité de //​monit// ​par rapport à d'​autres solutions similaires +//​monit// ​peut comme d'​autres solutions similaires 
-(//​Zabbix//,​ //​Nagios//​) ​réside dans le fait qu'il est capable de +(//​Zabbix//,​ //Nagios//) déclencher des actions pour tenter de rétablir un service interrompu,
-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 comme par exemple relancer un serveur //Apache// si il ne répond plus ou
 vider la file d'​attente d'un serveur //Postfix// en cas d'​engorgement. vider la file d'​attente d'un serveur //Postfix// en cas d'​engorgement.
Ligne 24: Ligne 24:
  
  
-Une solution de gestion distribuée de //​monit// ​est en cours +Une solution de gestion distribuée de //monit//, appelée ​//​m/​monit// ​permet ​de superviser 
-d'​élaboration. Cette solution s'​appelera ​//​m/​monit// ​et devrait être +à distance de multiples instances //monit//, c'est-à-dire les administrer et centraliser des informations historiques et statistiques envoyées par chaque instance ​//​monit// ​gérée.
-disponible dans le courant ​de l'​année 2007. //m/monit// est un système +
-de gestion ​à distance de multiples instances //monit//. C'​est ​aussi un +
-serveur ​à qui les instances ​//​monit// ​envoient des informations historiques +
-et statistiques.+
  
  
Ligne 35: Ligne 31:
  
  
-L'​installation est très simple ​: ::+L'​installation est très simple :
  
   $ apt-get install monit   $ apt-get install monit
  
 Le paquet se trouve dans le dépôt //​Universe//​ Le paquet se trouve dans le dépôt //​Universe//​
 +
 +
  
  
Ligne 52: Ligne 50:
 Éditer le fichier ///​etc/​monit/​monitrc.//​ afin d'​obtenir les options Éditer le fichier ///​etc/​monit/​monitrc.//​ afin d'​obtenir les options
 suivantes : suivantes :
- +<​file>​ 
-  set daemon ​ 60 + set daemon ​ 60 
-  set logfile syslog facility log_daemon + set logfile syslog facility log_daemon 
-  set mailserver localhost + set mailserver localhost 
-  set mail-format { from: monit@serveurdev.example.com } + set mail-format { from: monit@serveurdev.example.com } 
-  set alert root@localhost + set alert root@localhost 
-  set httpd port 2812 and + set httpd port 2812 and 
-     ​SSL ENABLE +    SSL ENABLE 
-     ​PEMFILE ​ /​var/​certs/​monit.pem +    PEMFILE ​ /​var/​certs/​monit.pem 
-     ​allow admin:​test +    allow admin:​test 
 +</​file>​
 L'​instruction //set daemon// permet de définir la durée d'un "​cycle"​ L'​instruction //set daemon// permet de définir la durée d'un "​cycle"​
 //monit//. Un cycle correspond à l'​intervalle (en secondes) entre deux //monit//. Un cycle correspond à l'​intervalle (en secondes) entre deux
Ligne 83: Ligne 81:
  
    vi /​var/​certs/​monit.cnf    vi /​var/​certs/​monit.cnf
 +<​file>​
    # create RSA certs - Server    # create RSA certs - Server
    ​RANDFILE = ./​openssl.rnd    ​RANDFILE = ./​openssl.rnd
Ligne 91: Ligne 89:
    ​distinguished_name = req_dn    ​distinguished_name = req_dn
    ​x509_extensions = cert_type    ​x509_extensions = cert_type
- 
    [ req_dn ]    [ req_dn ]
    ​countryName = Country Name (2 letter code)    ​countryName = Country Name (2 letter code)
    ​countryName_default = MO    ​countryName_default = MO
- 
    ​stateOrProvinceName ​   = Ile de France    ​stateOrProvinceName ​   = Ile de France
    ​stateOrProvinceName_default ​    = Monitoria    ​stateOrProvinceName_default ​    = Monitoria
Ligne 110: Ligne 106:
    [ cert_type ]    [ cert_type ]
    ​nsCertType = server    ​nsCertType = server
 +</​file>​
 Puis procéder à la génération du certificat : Puis procéder à la génération du certificat :
- +<​code>​ 
-   $ openssl req -new -x509 -days 365 -nodes -config ./monit.cnf +   $ openssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out /​var/​certs/​monit.pem -keyout /​var/​certs/​monit.pem
-             -out /​var/​certs/​monit.pem -keyout /​var/​certs/​monit.pem+
    $ openssl gendh 512 >> /​var/​certs/​monit.pem    $ openssl gendh 512 >> /​var/​certs/​monit.pem
    $ openssl x509 -subject -dates -fingerprint -noout -in /​var/​certs/​monit.pem    $ openssl x509 -subject -dates -fingerprint -noout -in /​var/​certs/​monit.pem
    $ chmod 700 /​var/​certs/​monit.pem    $ chmod 700 /​var/​certs/​monit.pem
 +</​code>​
  
- +Dans un environnement de développement,​ la sécurisation par //​SSL// ​peut 
-Dans un environnement de développement,​ la sécurisation par //​SSL// ​n'est +ne pas être nécessaire,​ on peut donc avantageusement remplacer la procédure
-pas nécessaire,​ on peut donc avantageusement remplacer la procédure+
 ci-dessus par les lignes : ci-dessus par les lignes :
 +<​code>​
    set httpd port 2812 and    set httpd port 2812 and
-       allow admin:​monit +   allow admin:​monit 
 +</​code>​
 L'​étape suivante consiste à activer le *daemon* par défaut et définir la L'​étape suivante consiste à activer le *daemon* par défaut et définir la
 fréquence de surveillance (ici : 60 secondes). Pour cela on édite le fréquence de surveillance (ici : 60 secondes). Pour cela on édite le
 fichier ///​etc/​default/​monit//​ : fichier ///​etc/​default/​monit//​ :
 +<​file>​
    ​startup=1    ​startup=1
    ​CHECK_INTERVALS=60    ​CHECK_INTERVALS=60
 +</​file>​
 Il ne reste plus qu'à démarrer //monit// : Il ne reste plus qu'à démarrer //monit// :
 +<​code>​
    $ /​etc/​init.d/​monit start    $ /​etc/​init.d/​monit start
 +</​code>​
 Vérifier que le *daemon* est activé, en se connectant à l'​adresse : :: Vérifier que le *daemon* est activé, en se connectant à l'​adresse : ::
 +<​code>​
 +   ​http://​serveurdev.exemple.fr:​2812/​
 +</​code>​
  
-   ​http://​serveurdev.exemple.fr:​2812/​ 
  
 ===== Utilisation ===== ===== Utilisation =====
Ligne 156: Ligne 153:
 Par exemple, voici comment redémarrer automatiquement le serveur //SSH// Par exemple, voici comment redémarrer automatiquement le serveur //SSH//
 s'il ne répond plus : :: s'il ne répond plus : ::
 +<​file>​
      check process sshd with pidfile /​var/​run/​sshd.pid      check process sshd with pidfile /​var/​run/​sshd.pid
            start program ​ "/​etc/​init.d/​ssh start"            start program ​ "/​etc/​init.d/​ssh start"
Ligne 162: Ligne 159:
            if failed port 22 protocol ssh then restart            if failed port 22 protocol ssh then restart
            if 5 restarts within 5 cycles then timeout            if 5 restarts within 5 cycles then timeout
 +</​file>​
 La dernière ligne permet d'​éviter des boucles infinies, notamment si La dernière ligne permet d'​éviter des boucles infinies, notamment si
 la configuration du serveur //SSH// est erronée. la configuration du serveur //SSH// est erronée.
Ligne 168: Ligne 165:
 Bien sûr il est possible de configurer des traitements d'​erreurs plus Bien sûr il est possible de configurer des traitements d'​erreurs plus
 fins. Voici par exemple, une politique de surveillance d'//​Apache//​ : :: fins. Voici par exemple, une politique de surveillance d'//​Apache//​ : ::
 +<​file>​
       check process apache with pidfile /​var/​run/​apache2.pid group www       check process apache with pidfile /​var/​run/​apache2.pid group www
         start program = "/​etc/​init.d/​apache2 start"         start program = "/​etc/​init.d/​apache2 start"
Ligne 180: Ligne 177:
         if loadavg(5min) greater than 10 for 8 cycles then stop         if loadavg(5min) greater than 10 for 8 cycles then stop
         if 3 restarts within 5 cycles then timeout         if 3 restarts within 5 cycles then timeout
 +</​file>​
 Dans cet exemple, //monit// vérifiera la présence d'un fichier Dans cet exemple, //monit// vérifiera la présence d'un fichier
 //​monit/​token//​ sur le serveur. En cas d'​absence le serveur sera //​monit/​token//​ sur le serveur. En cas d'​absence le serveur sera
Ligne 194: Ligne 191:
  
  
-* Quelques exemples de configurations avancées :: +  ​* Quelques exemples de configurations avancées : https://​mmonit.com/​wiki/​Monit/​ConfigurationExamples 
- +  * Documentation : https://​mmonit.com/​monit/​documentation/​monit.html 
-           ​http://www.tildeslash.com/monit/doc/examples.php+  * Plusieurs tutoriels sur la configuration de Monit : http://www.it-connect.fr/tutoriels/securite/​supervision/​monit/
  
-* Plus de détails sur //m/monit// :: 
  
-       ​http://​www.tildeslash.com/​mmonit/​ 
  
  
  • monit.1177695488.txt.gz
  • Dernière modification: Le 18/04/2011, 14:56
  • (modification externe)