Outils pour utilisateurs

Outils du site


linux:monit

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux:monit [30/08/2012 16:31] daniellinux:monit [30/08/2012 19:01] (Version actuelle) daniel
Ligne 3: Ligne 3:
  
 Dans squeeze, c'est la 5.1 qui est dispo, mais elle marche pas dans un container openvz (pb de lecture des infos de ram, pas grave mais 2 lignes d'erreur par check), mais c'est assez simple de récupérer la 5.4 (un binaire et une page de man). Dans squeeze, c'est la 5.1 qui est dispo, mais elle marche pas dans un container openvz (pb de lecture des infos de ram, pas grave mais 2 lignes d'erreur par check), mais c'est assez simple de récupérer la 5.4 (un binaire et une page de man).
 +
 +
 +
  
  
Ligne 12: Ligne 15:
   * ''check serviceASurveiller''   * ''check serviceASurveiller''
  
-Pour un process faut un pidfile, pour un fichier le chemin.+Pour un process vaut mieux un pidfile, mais on peut préciser une regex, pour un fichier le chemin.
  
 Ensuite, faut commencer avec les exemples fournis sur http://mmonit.com/wiki/Monit/ConfigurationExamples Ensuite, faut commencer avec les exemples fournis sur http://mmonit.com/wiki/Monit/ConfigurationExamples
Ligne 20: Ligne 23:
 On peut tester certaines choses gourmandes de temps en temps seulement (ou sauf sur certaines tranches horaires où c'est "normal" de sortir des clous), avec ''every''  On peut tester certaines choses gourmandes de temps en temps seulement (ou sauf sur certaines tranches horaires où c'est "normal" de sortir des clous), avec ''every'' 
  
-   check process nginx with pidfile /var/run/nginx.pid +   check process toto matching /usr/local/bin/toto # prend le 1er process qui satisfait la regex 
-   every 2 cycles+   every 2 cycles ...
  
    check process mysqld with pidfile /var/run/mysqld.pid    check process mysqld with pidfile /var/run/mysqld.pid
    not every "* 0-3 * * 0" # on vérifie pas entre minuit et trois heures du mat le dimanche    not every "* 0-3 * * 0" # on vérifie pas entre minuit et trois heures du mat le dimanche
  
 +Il connait les protocoles : APACHE-STATUS DNS DWP FTP GPS HTTP IMAP CLAMAV LDAP2 LDAP3 LMTP MEMCACHE MYSQL NNTP NTP3 POP POSTFIX-POLICY RADIUS RDATE RSYNC SIP SMTP SSH TNS PGSQL, ce qui permet de faire par ex du
 +
 +Ça permet de faire du
 +
 +  if failed host 192.168.1.100 port 8080 protocol http 
 +     and request '/testing' hostheader 'example.com' 
 +     with timeout 20 seconds for 2 cycles 
 +  then alert
 +
 + if failed port 80 protocol http 
 +    and request "/page.html"
 +        with checksum 8f7f419955cefa0b33a2ba316cba3659 
 + then alert
 +
 +  if failed unixsocket /var/run/php5-fpm/mypool.socket ...
 +
 +  if failed (url http://myhost.tld/check and content == 'OK') then alert
 +
 +En théorie on peut faire du
 +
 +  if failed host sqlhost port 3306 protocol mysql send "string de connexion + select" expect "résultat attendu" then alert
 +
 +mais la chaîne de connexion est un peu compliquée à élaborer, autant avoir un script externe qui utilise le binaire mysql et filtre avec awk pour répondre OK (par exemple).
 +
 +  check program toto with path "/root/toto.sh" 
 +    if status != 0 then alert
  
 +et dans toto.sh on met par ex (stderr sera dans le mail d'alerte)
 +  # ... params
 +  # la requete doit renvoyer 1
 +  nb=$(mysql $MYSQL_OPTS -e "$QUERY")
 +  if [ "$nb" != "1"
 +  then
 +    echo "Avec mysql $MYSQL_OPTS -e '$QUERY' >&2
 +    echo "On a pas récupéré '1' mais $nb" >&2
 +    exit 1
 +  fi
 +  exit 0
linux/monit.txt · Dernière modification : 30/08/2012 19:01 de daniel