Pcrednet

reparación ordenadores Madrid

Home BLOG Servidores Monitorizando servidores Ubuntu con Monit
A+ R A-
06 Sep

Monitorizando servidores Ubuntu con Monit

Cuando trabajas con un servidor Ubuntu ( linux ), algo muy importante es la monitorización de los procesos, y sobre todo estar informado siempre del estado de cada proceso. En este pequeño manual os voy a explicar como monitorizar procesos en un servidor Ubuntu 10.04 usando Monit

monit

Para este ejemplo vamos usar la siguiente configuración:

  • Servidor Ubuntu 10.04 x32 ( VPS)

  • Correo para enviar notificaciones: cuenta de Gmail. Si usamos una cuenta local del servidor y por cualquier circunstacia fallase el servicio de correo no nos enviaría la notificación
  • Correo para recibir notificaciones: cuenta de Gmail. Valdría cualquiera y al igual que en el apartado anterior convendría que fuese una cuenta de un servidor distinto al que monitorizamos
  • Servicios a monitorizar: apache y mysql, son sólo ejemplos.

Para instalar Monit en nuestro equipo:

sudo apt-get install monit

Si cuando termina de instalarlo nos sale algo como:

Configurando monit (1:5.2.1-1) ...
Starting daemon monitor: monit won't be started/stopped
unless it it's configured
please configure monit and then edit /etc/default/monit
and set the "startup" variable to 1 in order to allow
monit to start

Tal y como nos indica debemos asignar el valor 1 a la variable "startup" en el archivo /etc/default/monit; por tanto:

sudo nano /etc/default/monit

y cambiamos:

startup=0

por

startup=1

lo guardamos e iniciamos monit:

sudo /etc/init.d/monit start

La instalación como véis es muy sencilla, lo realmente interesante está en el archivo de configuración que ahora veremos como configurarlo.

Para editar el archivo de configuración podemos usar el editor que más nos guste; en mi caso:

sudo nano /etc/monit/monitrc

Una vez abierto, vemos que por defecto trae una serie datos para que configuremos nuestro servicio de monitorización. La información que contiene son ejemplos de como configurarlo para monitorizar los distintos servicios.

A continuación os pongo el archivo monitrc del ejemplo y os explico:

#Cabecera
set daemon  60
set logfile syslog facility log_daemon
set mailserver smtp.gmail.com port 587 username " Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla " password "password_de_gmail" using tlsv1 with timeout 30 seconds
set mail-format {
   from: Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
   subject: $SERVICE el $DATE
   message:
 
           Monit: $ACTION $SERVICE
    Fecha: $DATE
    Descripción: $DESCRIPTION.
            SERVIDOR 
           Powered by: monit
}
set alert Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla only on { action
                      checksum
                      content
                      data
                      exec
                      gid
                      icmp
                      invalid
                      fsflags
                      nonexist
                      permission
                      size
                      timeout
                      timestamp }
set httpd port 8080 and
     allow admin:password
#cuerpo
check process mysql with pidfile /var/lib/mysql/mysql.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 protocol mysql then restart
   if 5 restarts within 5 cycles then timeout
# Apache2
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 port 80 protocol http then restart
   if cpu is greater than 60% for 2 cycles then alert
   if cpu > 80% for 5 cycles then restart
   if totalmem > 1500 MB for 5 cycles then restart
   if children > 512 then restart
   if loadavg(5min) greater than 10 for 8 cycles then stop
   if 3 restarts within 5 cycles then timeout

Lo vamos a dividir en 2 partes; la cabecera y el cuerpo. La cabecera nos permite configurar el modo de monitorización y el cuerpo nos permite decirle que y como lo vamos a monitorizar.

En la cabecera defino los datos de envío de correo y el cuerpo del mensaje de alerta así como porqué quiero recibir alertas. En la última parte de la cabecera le indico el puerto de escucha para poder acceder vía navegador y el usuario para poder acceder.

En el cuerpo se definen los procesos que queremos monitorizar. En este apartado no voy a meterme mucho porque cada configuración es distinta, aunque os diré como está estructurado este apartado.

En el caso de mysql:

check process mysql with pidfile /var/lib/mysql/mysql.pid --> chequeo si exite el PID
   group database --> grupo de procesos ( a elegir )
   start program = "/etc/init.d/mysql start" --> orden para iniciar el servicio; lo equivalente a escribirlo en consola
   stop program = "/etc/init.d/mysql stop" --> orden para  dentener el servicio; lo equivalente a escribirlo en consola
   if failed host 127.0.0.1 port 3306 protocol mysql then restart --> si falla, entonces reiniciar
   if 5 restarts within 5 cycles then timeout --> si falla el reinicio 5 veces dejo de monitorizar e informo al Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla

Si os fijáis en las lineas de Apache2, tiene más opciones: tiene en cuenta el uso de memoria, de cpu, la carga; etc.

Monit Ubuntu 10.04

Tenéis muchos más ejemplos y ayudas en su wiki --> Wiki Monit

Monit tiene infinidad de utilidades; y las que están aquí expuestas son las más basicas.

Si tenéis alguna duda; preguntad en los comentarios

Ultima modificacion el Martes, 06 de Septiembre de 2011 18:05
Luismi

Luismi

Peleandome con el interneee!!!

Temas relacionados (por etiqueta)

Blog Login

Actividad Twitter

Muevete por la web