Muy tarde he descubierto Monit. Para el que no la conozca se trata de una pequeña utilidad de sistema sin mayores dependencias ni grandes pretensiones pero que realiza tareas de monitorización básica de una manera excelente.

Desde que la descubrí el año pasado es una constante en todos mis servidores.

Instalación

En Debian viene en el paquete monit.

Configuración

Revisar si queda configurado el fail2ban para monit y desactivarlo si es así: borrar el soft link a /etc/monit/conf-enabled.

Revisar /etc/aliases y si se ha añadido una entrada para monit cambiarla por una dirección de correo completa. Ejemplo: monit: webmaster@gestio.ovh. En general esto no suele hacer falta pero lo tengo en mi lista de tareas ya que suelo utilizar msmtp en algunos servidores.

Ficheros de configuración

Configuración base: dos ficheros bajo /etc/monit/conf.d

correu

set alert webmaster@sargue.net

set mail-format {
  from:    Monit <server@mg.sargue.net>
  subject: monit alert --  $EVENT $SERVICE
  message: $EVENT Service $SERVICE
                Date:        $DATE
                Action:      $ACTION
                Host:        $HOST
                Description: $DESCRIPTION

           Your faithful employee,
           Monit
}

set mailserver smtp.mailgun.org port 587
  username postmaster@mg.sargue.net password xxxx
  using SSL with timeout 30 seconds

sistema

check system $HOST
  if loadavg (1min) > 4 then alert
  if loadavg (5min) > 2 then alert
  if cpu usage > 95% for 10 cycles then alert
  if memory usage > 75% then alert
  if swap usage > 25% then alert

check filesystem root path /
  if space usage > 75% for 5 times within 15 cycles then alert
  if inode usage > 50% then alert