Volver al índice


monit

Monitorizador de procesos en ejecución, servicios, demonios, espacios de disco, PIDs, checksums, archivos....

# monit status (Acceder a los informes)

# monit -t (Comprobar errores de configuración [Control file syntax OK])

# monit -h (Listado de comandos disponibles)

# monit quit (Salir)

# monit start all (Arrancar todos los monitoreos)

# monit sotp ssh (Parar un monitoreo de un servicio)

# monit restart all (Reiniciar todos los monitoreos)

# monit summary (Mostrar resumen)

Configuración:

# nano /etc/monitrc

Las entradas globales empiezan por “set” y los servicios concretos por “check”

Tiempo de actualización de datos, por defecto:

set daemon  60

Especificar el archivo de eventos (logs)

set logfile /var/log/monit.log

Configurar para el envio de notificaciones:

set mailserver localhost

set alert usuario@localhost.localdomain

set mail-format {

from: monit@$HOST

subject: $SERVICE $EVENT

message: $ACTION $SERVICE at $DATE on $HOST: $DESCRIPTION.

}

set mailserver mail@mail.com (servidor smtp que envia los correos [localhost para notificación local]).

set alert user@hots.com  (cuenta donde enviar los mensajes de alerta). Ejemplo para enviar notificaciones a correo gmail (en negrita los datos a modificar):

set mailserver smtp.gmail.com port 587

username usuario@gmail.com password Tfer7¿-6j

using tlsv1

with timeout 30 seconds

set alert usuario@gmail.com

Cambiar usuario y contraseña (por defecto: admin/monit)

allow usuario:contraseña

Especificar desde donde accederemos. Sólo acceso local [localhost:2812]:

set httpd port 2812 and use address localhost

allow localhost

o si queremos acceso remoto [http://ip_o_host:2812] modificar por:

set httpd port 2812

     allow localhost

Tambien podemos especificar: ips, rangos, hosts concretos o usuarios para solo lectura:

allow 192.168.1.14

allow 192.168.1.1/24

allow host.com

allow usuario:contraseña read-only

Modificar el nombre del equipo [tiene que estar en /etc/hosts] y adaptar los porcentajes de consumo de carga del sistema [loadvg] y cpu para que al superar ciertos índices o porcentajes, envie una alerta:

check system tux

if loadavg (1min) > 4 then alert

if memory usage > 75% then alert

if swap usage > 85% then alert

if cpu usage (user) > 70% then alert

if cpu usage (system) > 70% then alert

if cpu usage (wait) > 70% then alert

Configurar el monitoreo de apache (Las rutas a los ficheros pertenecen a una distro arch):

check process apache with pidfile /run/httpd/httpd.pid

start program = "/etc/rc.d/httpd start" with timeout 60 seconds

stop program  = "/etc/rc.d/httpd stop"

if cpu > 80% for 5 cycles then restart

if totalmem > 1500.0 MB for 5 cycles then restart

if children > 250 then restart

if cpu usage > 95% for 3 cycles then restart

if failed port 80 protocol http then restart

Configurar monitoreo de ssh

check process ssh with pidfile /run/sshd.pid

start program = "/etc/rc.d/sshd start" with timeout 60 seconds

stop program  = "/etc/rc.d/sshd stop"

if cpu > 80% for 5 cycles then restart

if totalmem > 1500.0 MB for 5 cycles then restart

if children > 250 then restart

if cpu usage > 95% for 3 cycles then restart

if failed port 22 protocol ssh then restart

Chequear determinados puertos:

check host localhost with address localhost

  if failed icmp type echo count 10 with timeout 15 seconds

     then alert

  if failed port 22 proto ssh then alert

  if failed port 25 proto smtp then alert

  if failed port 80 proto http then alert

Monitorear ciertos archivos de configuración [de apache y ssh] para que alerte si modifica el checksum:

check file httpd.conf with path /etc/httpd/conf/httpd.conf

if changed checksum then alert

check file ssh_config with path /etc/ssh/ssh_config

if changed checksum then alert

Monitorizar directorios para que envie una alerta en caso de modificación:

        check directory sbin with path /sbin

    if changed timestamp then alert

Monitorizar dispositivos /dev/ [discos duros, usb...] para que avise en caso de sobrepasar determinado espacio en disco o lo desmonte al llegar a cierto porcentaje:

check device sda5 with path /dev/sda5

start = “/bin/mount /dev/sda5”

stop = “/bin/umount /dev/sda5”

if space usage > 90% then alert

if space usage > 98% then stop

Si, al pasar algún evento queremos lanzar un script algunos ejemplos para hacerlo son:

1.- Cuando la carga del sistema sobrepasa el indice 5 alertará y si supera el 20 ejecutará el script:

check system dominio.com

if loadavg (1min) > 5 then alert

if loadavg (1min) > 20 then exec "/bin/bash /root/script.sh"

2.- Si falla el servidor ftp [puerto 21], al pasar 20 segundos alertará y ejecutará el script

if failed port 21 protocol ftp with 20 seconds then alert and exec “/ftp/script.sh”


Volver al índice