IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

El gran avantatge de monit es que es pot utilitzar per tornar a engegar un servei que s'ha aturat.

Instal·lació

$ sudo apt-get install monit


$ dpkg -L monit | grep bin
/usr/sbin
/usr/sbin/monit


$ dpkg -L monit | grep etc
/etc
/etc/default
/etc/default/monit
/etc/monit
/etc/monit/monitrc
/etc/init.d
/etc/init.d/monit

Control del servei

Monit és un dimoni que controla serveis, i monitoritza el seu correcte funcionament.

$ sudo /etc/init.d/monit 
Usage: /etc/init.d/monit {start|stop|restart|force-reload|syntax}


Monit és un servei de monitorització. Utilitza el port 2812:

$ sudo nmap localhost -p 2812

Starting Nmap 4.20 ( http://insecure.org ) at 2008-05-15 15:10 CEST
Interesting ports on localhost (127.0.0.1):
PORT     STATE SERVICE
2812/tcp open  unknown

Configuració

Configuració de com s'inicia el servei:

$ cat /etc/default/monit
# Defaults for monit initscript
# sourced by /etc/init.d/monit
# installed at /etc/default/monit by maintainer scripts
# Fredrik Steen <stone@debian.org> 

# You must set this variable to for monit to start
startup=1 

# To change the intervals which monit should run uncomment
# and change this variable. 
CHECK_INTERVALS=120

Fitxer /etc/monit/monitrc

Aquí es configura que monitoritza i que fa monit en el cas de trobar un servei aturat:

Veiem la porció d'Apache:


check process apache with pidfile /var/run/apache2.pid
  group www
  start program = "/etc/init.d/apache2 start"
  stop program  = "/etc/init.d/apache2 stop"
  if failed host www.iescopernic.com port 80 protocol http
     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

MYSQL

check process mysql with pidfile /var/run/mysqld/mysqld.pid
  group database
  start program = "/etc/init.d/mysql start"
  stop program = "/etc/init.d/mysql stop"  
  if failed host 127.0.0.1 port 3306 then restart
  if 5 restarts within 5 cycles then timeout

Recursos