« Monit » : différence entre les versions

Aller à la navigation Aller à la recherche
1 776 octets ajoutés ,  il y a 13 ans
m
aucun résumé des modifications
m (Page créée avec « '''Monit''' est utilisé pour surveiller les processus "daemon" - démons en français, programme qui tournent en arrière plan - ou des programmes similaires sur votre serve... »)
 
mAucun résumé des modifications
Ligne 44 : Ligne 44 :
== Explication des règles ==
== Explication des règles ==


*Surveillance d'un processus;
D'une façon générale, les règles de surveillance s'articulent comme ceci:
*Règles pour arrêter et démarrer les processus surveillés;
*Règles pour surveiller éventuellement les interfaces et ports ou ces processus doivent écouter (par défaut localhost si vous ne précisez rien);
*Règles pour surveiller la charge du CPU par service;
*Règles pour surveiller des fichiers (s'ils existent, leur checksum...).


Pensez à surveiller les services sur les bonnes interfaces...
*Surveillance d'un processus (le fichier PID du service);
*Les commandes pour arrêter et démarrer les processus surveillés;
*L'utilisateur système du service,
*La condition de test à effectuer:
#Interfaces et ports ou ces processus doivent écouter (par défaut localhost si vous ne précisez rien);
#Charge du CPU par service;
#Fichiers (s'ils existent, leur checksum...).
#...
*La commande a effectuer en cas d'échec
 
'''Pensez à surveiller les services sur les bonnes interfaces...'''
Inutile par exemple de surveiller ssh sur localhost alors que vous en avez besoin sur eth0...
Inutile par exemple de surveiller ssh sur localhost alors que vous en avez besoin sur eth0...


Ligne 81 : Ligne 87 :


  # cat /etc/monit/conf.d/apache2
  # cat /etc/monit/conf.d/apache2
  check process Apache2 with pidfile /var/run/apache2.pid
  check process apache with pidfile /var/run/apache2.pid group www
        start program = "/etc/init.d/apache2 start" with timeout 60 seconds
        start program = "/etc/init.d/apache2 start"
        stop program = "/etc/init.d/apache2 stop"
        stop program = "/etc/init.d/apache2 stop"
        if failed port 80 then restart
        if failed host vanille.zehome.org port 80 protocol http
        if failed port 443 with timeout 15 seconds then restart
            and request "/monit/token" then restart
        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
 
Sans oublier de créer le fichier 'token' sur votre serveur...
 
root@vanille:~# su www-data
$ cd
$ mkdir monit
$ cd monit
$ touch token
$ exit
 
Du coup votre "access.log" va se remplir avec ceci:
 
127.0.1.1 - - [24/Aug/2011:07:31:19 +0300] "GET /monit/token HTTP/1.1" 200 250 "-" "monit/5.1.1"
127.0.1.1 - - [24/Aug/2011:07:32:25 +0300] "GET /monit/token HTTP/1.1" 200 250 "-" "monit/5.1.1"
127.0.1.1 - - [24/Aug/2011:07:33:31 +0300] "GET /monit/token HTTP/1.1" 200 250 "-" "monit/5.1.1"
127.0.1.1 - - [24/Aug/2011:07:34:37 +0300] "GET /monit/token HTTP/1.1" 200 250 "-" "monit/5.1.1"
127.0.1.1 - - [24/Aug/2011:07:35:43 +0300] "GET /monit/token HTTP/1.1" 200 250 "-" "monit/5.1.1"
127.0.1.1 - - [24/Aug/2011:07:36:49 +0300] "GET /monit/token HTTP/1.1" 200 250 "-" "monit/5.1.1"
127.0.1.1 - - [24/Aug/2011:07:37:55 +0300] "GET /monit/token HTTP/1.1" 200 250 "-" "monit/5.1.1"
 
Pour éviter cela, ajoutez ceci:
 
SetEnvIf        Request_URI "^\/monit\/token$" dontlog
CustomLog      /var/log/apache2/access.log common env=!dontlog
 
A la fin du fichier /etc/apache2/apache2.conf


=== bind9 ===
=== bind9 ===
Ligne 159 : Ligne 197 :
         start program = "/etc/init.d/imapproxy start" with timeout 60 seconds
         start program = "/etc/init.d/imapproxy start" with timeout 60 seconds
         stop program  = "/etc/init.d/imapproxy stop"
         stop program  = "/etc/init.d/imapproxy stop"
         if failed port 1143 then restart
         if failed host 10.9.8.3 port 1143 then restart


=== mysql ===
=== mysql ===


  # cat /etc/monit/conf.d/mysql  
  # cat /etc/monit/conf.d/mysql  
# MYSQL
  check process MySql with pidfile /var/run/mysqld/mysqld.pid
  check process MySql with pidfile /var/run/mysqld/mysqld.pid
     group mysql
     group mysql
Ligne 192 : Ligne 228 :


  # cat /etc/monit/conf.d/postfix
  # cat /etc/monit/conf.d/postfix
# Postfix
  check process Postfix with pidfile /var/spool/postfix/pid/master.pid
  check process Postfix with pidfile /var/spool/postfix/pid/master.pid
     group mail
     group mail
Ligne 211 : Ligne 246 :


  # cat /etc/monit/conf.d/rsyslogd  
  # cat /etc/monit/conf.d/rsyslogd  
# Syslogd
  check process Rsyslogd with pidfile /var/run/rsyslogd.pid
  check process Rsyslogd with pidfile /var/run/rsyslogd.pid
     start program = "/etc/init.d/rsyslog start"
     start program = "/etc/init.d/rsyslog start"
Ligne 247 : Ligne 281 :
=== sshd ===
=== sshd ===


  cat /etc/monit/conf.d/sshd
  # cat /etc/monit/conf.d/sshd
  check process SSH with pidfile /var/run/sshd.pid
  check process SSH with pidfile /var/run/sshd.pid
         start program = "/etc/init.d/ssh start" with timeout 60 seconds
         start program = "/etc/init.d/ssh start" with timeout 60 seconds
Ligne 388 : Ligne 422 :


== Ecran final ==
== Ecran final ==
En guise de conclusion: Testez chaque service avant de vous fier aux résultats...
'''Surveillez les logs de monit, stoppez service par service et vérifiez la réaction de monit!'''
L'alerte doit être envoyée, le service redémarré.


Rendez-vous sur
Rendez-vous sur
Administrators, autoreview, Vérificateurs d’utilisateurs, checkuser-log, editor, reviewer, usersnoop
3 321

modifications

Menu de navigation