Monit VS La stabilité de Varnish

Toute personne trainant sur ce blog ou un des blogs hébergés par ce serveur a sans doute eu l’occasion de remarquer ses plantages à répétition complétement imprévisibles.
C’est Varnish qui est chaque fois en cause, qui plante pour une raison X ou Y. Alors comment faire pour le tenir un minimum en laisse ?

Monit c’est quoi ça?

You can use Monit to monitor daemon processes or similar programs running on localhost. Monit is particular useful for monitoring daemon processes, such as those started at system boot time from /etc/init.d/. For instance sendmail, sshd, apache and mysql.

In difference to many monitoring systems, Monit can act if an error situation should occur, e.g.; if sendmail is not running, Monit can start sendmail again automatically or if apache is using too much resources (e.g. if a DoS attack is in progress) Monit can stop or restart apache and send you an alert message. Monit can also monitor process characteristics, such as; how much memory or cpu cycles a process is using.

Et donc avec une petite configuration de monit il relance désormais automatiquement Varnish si celui ci s’averait ne plus répondre.

Je veux le même!

  • Installer monit (surement disponible dans votre gestionnaire de paquets)
  • mettre la variable startup à 1 dans le /etc/default/monit
  • Configurer Monit

Configuration

     set daemon 120 #check services at 2-minute intervals
          with start delay 240 #optional: delay the first check by 4-minutes

     set logfile syslog facility log_daemon #par défaut log sous la facilité user, définir la daemon à la place

     check process varnish with pidfile /var/run/varnishd.pid #fichier pour connaitre le PID utilisé
          start program = "/etc/init.d/varnish start" with timeout 60 seconds #commande pour le démarrer en imposant une durée de lancement max
          stop program = "/etc/init.d/varnish stop" #commande pour l’arrêter
          
          if cpu > 60% for 2 cycles then alert #Si l'utilisation CPU de l'app dépasse 60% pendant 2 cycles (2 cycles = 2 * 120 secs) alerter
          if cpu > 80% for 5 cycles then restart #Si c'est 80 pendant 5 cycles relance pure et simple du process

          if totalmem > 200.0 MB for 5 cycles then restart #S'il pompe + de 200Mo en mémoire pendant 5 cycles redémarre ! (pour Varnish cette valeur est peut être un peu basse attention)

          if loadavg(5min) greater than 10 for 8 cycles then stop #histoire de pas cramer se bécane : si il exagère vraiment on le coupe.
          if failed host www.helpcomputer.eu port 80 protocol http #le protocole de verification (se connecter sur ... en http sur le port 80)
               and request "/test_films" #et chercher une page donnée
                    then restart #Si ça foire, tu le relance
          if 3 restarts within 5 cycles then timeout #S'il a redémarrer 3 fois en 5 cycles c'est qu'il ya un prob, passer en timeout

     group server #pour classer les différents éléments dans des groupes (pour le mini webserver de monit ptetre ?)
Posted in Hosting by El Gnap at December 31st, 2011.
Tags: , , , , , ,

2 Responses to “Monit VS La stabilité de Varnish”

  1. […] oui pour relancer un serveur automatiquement pensez à Monit Share this:Share Written on January 7th, 2012 , Hosting Tags: apache, localhost, memcache, nginx, […]

  2. Jerome says:

    bonjour à tous, j’ai besoin d’aide svp !?
    J’ai le stack web suivant : nginx avec varnish. Mon problème est à propos du monitoring du serveur avec monit. Tout fonctionne bien sauf le monitoring du process de varnish > toujours sur le status “Not monitored” le pid (/var/run/varnishd.pid) est pourtant bien renseigné dans mon fichier de config de monit…je sèche là, à ceux qui s’y connaitraient mieux que moi, merci d’avance.