Recolección con rsyslog

Se van a “alamcenar” los logs de mickey, minnie y donald en el equipo jarvis, con ip 10.0.0.11.

RSYSLOG

Rsyslog es un sistema de procesamiento de los logs del sistema. Es sencillo de implementar y los cambios en la configuración se ven inmediatamente.

Los clientes envían sus mensajes al log del servidor ya que con syslog es muy sencillo escribir en un log remoto: solo es necesario que tenga el puerto correspondiente abierto y cualquiera que sepa la dirección puede escribir mensajes, con lo peligroso a nivel de seguridad que puede ser esto.

También nos permite filtrar los mensajes que se muestran según su prioridad y enviar alertas al correo electrónico que queramos.

CONFIGURACIÓN DEL SERVIDOR

En /etc/rsyslog.conf descomentamos

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

Para aplicar los cambios se reinicia el servicio

systemctl restart rsyslog

CONFIGURACIÓN DE LOS CLIENTES

MICKEY

En el fichero de configuración /etc/rsyslog.conf añadimos en las reglas la siguiente línea

*.*        @10.0.0.11:514

Siendo la 10.0.0.11 la ip interna del servidor.

Para aplicar el cambio se reinicia el servicio

systemctl restart rsyslog

MINNIE

En el fichero /etc/rsyslog.d/50-default.conf  añadimos la misma línea que en mickey y reinicamos el servicio.

DONALD

En el fichero /etc/rsyslog.conf  añadimos la misma línea que en mickey y reinicamos el servicio.

NOTIFICACIONES POR CORREO

Para que nos envíe las alertas por correo tenemos que cargar el módulo ommail.. Para ello en /etc/rsyslog.conf añadimos:

module(load="ommail")

Para que nos avise cuando se abra una nueva sesión en alguno de los equipos, en /etc/rsyslog.conf añaidos:

 $ActionMailSMTPServer localhost
 $ActionMailFrom rsyslog@maria.gonzalonazareno.org
 $ActionMailTo m.romeroangulo@gmail.com
 $template mailSubject,"Alerta en %hostname%"
 $template mailBody,"RSYSLOG en la maquina %hostname% Alert='%msg%'"
 $ActionMailSubject mailSubject
 if $msg contains 'New session' then :ommail:;mailBody
 $ActionExecOnlyOnceEveryInterval 0

De forma que al abrir una sesión en jarvis recibimos el siguiente correo:

1

Para que nos avise cuando algún servicio se pare:

$ActionMailSMTPServer localhost
 $ActionMailFrom rsyslog@maria.gonzalonazareno.org
 $ActionMailTo m.romeroangulo@gmail.com
 $template mailSubject,"Alerta en %hostname%"
 $template mailBody,"RSYSLOG de la maquina %hostname% Alerta='%msg%'"
 $ActionMailSubject mailSubject
if $msg contains 'Stopping' then :ommail:;mailBody
 $ActionExecOnlyOnceEveryInterval 0

Paramos slapd en minnie

root@minnie:/home/ubuntu# systemctl stop slapd

y nos llega el aviso

2

Para que nos avise de errores en los equipos añadimos

$ActionMailSMTPServer localhost
 $ActionMailFrom rsyslog@maria.gonzalonazareno.org
 $ActionMailTo m.romeroangulo@gmail.com
 $template mailSubject,"Alerta en %hostname%"
 $template mailBody,"RSYSLOG de la maquina %hostname% Alerta='%msg%'"
 $ActionMailSubject mailSubject
if $msg contains 'fatal' then :ommail:;mailBody
 $ActionExecOnlyOnceEveryInterval 0

FILTRADO

Rsyslog nos permite filtrar los mensajes que nos aparecen según su nivel de prioridad. Los niveles existentes son:

  • emerg: el sistema puede estar inutilizable.
  • alerta: hay un error que puede colgar el sistema.
  • crit: puede haber una alerta en cualquier momento.
  • err: hay algún error.
  • warn: error potencial.
  • notice: el sistema funciona, pero hay que tener cuidado.
  • info: mensaje de información.
  • debug: mensaje de depuración.

Hay varias formas de indicar qué queremos que se muestre. Por ejemplo:

  • *.emerg: muestra todos los mensajes con nivel de prioridad emerg.
  • *err: muestra todos los mensajes con nivel de prioridad error y superior.
  • mail.err: muestra los mensajes de error y superior del sistema de correo.
  • mail.*: muestra todos los mensajes del sistema de correo.

Para nuestra configuración quedaría:

auth,authpriv.* /var/log/auth.log
 *.emerg;*.alert;*.crit;*.err;*.warn;*.notice;auth,authpriv.* -/var/log/syslog
 #cron.*            /var/log/cron.log
 daemon.err        -/var/log/daemon.log
 kern.err          -/var/log/kern.log
 lpr.err           -/var/log/lpr.log
 mail.err          -/var/log/mail.log
 user.err          -/var/log/user.log

#
 # Logging for the mail system. Split it up so that
 # it is easy to write scripts to parse these files.
 #
 mail.warn -/var/log/mail.warn
 mail.err /var/log/mail.err

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *