Registros del sistema (logs) ● Nos permiten saber qué pasó ● Nos permiten saber qué pasa ●...

Post on 25-Jan-2016

232 views 0 download

Transcript of Registros del sistema (logs) ● Nos permiten saber qué pasó ● Nos permiten saber qué pasa ●...

Registros del sistema (logs)

● Nos permiten saber qué pasó● Nos permiten saber qué pasa

● Nos permiten saber qué pasará

Servicio syslogd

● Centraliza los logs del sistema

● Modelo cliente/servidor

● Evita problemas de bloqueos de archivo

Protocolo Syslog

● Estándar de facto

● Mensajes no mayores a 1024 bytes

● Por defecto, puerto UDP 514

● http://es.wikipedia.org/wiki/Syslog

Estructura de los mensajes

------------------------------------| Prioridad | Cabecera | Texto |

------------------------------------

Prioridad de los mensajes

Número de 8 bits

Recurso (5 bits)

Severidad (3 bits)

Prioridad = Recurso * 8 + Severidad

Recursos habituales

● auth

● authpriv

● cron

● daemon

● kern

● mail

● user

● local0 - local7

Severidades

0 Emergencia: el sistema está inutilizable 1 Alerta: se debe actuar inmediatamente 2 Crítico: condiciones críticas 3 Error: condiciones de error 4 Peligro: condiciones de peligro 5 Aviso: normal, pero condiciones notables 6 Información: mensajes informativos 7 Depuración: mensajes de bajo nivel

Cabecera de los mensajes

● Codificación ASCII (7 bits)

● Formato: mes dia hh:mm:ss hostname Oct 13 20:31:02 server01

Texto de los mensajes

● Dividido en información del proceso y mensaje

● Separados por el primer espacio en blanco

wpa[1236]: Group rekeying ok

-----------------------------

| Proceso | Mensaje |

-----------------------------

Servidores de Syslog

● sysklogd

● rsyslog

● syslog-ng

Configuración syslogd,rsyslog

/etc/rsyslog.conf

/etc/rsyslog.d

/etc/syslog.conf

Configuración rsyslog

Recurso.Severidad Acción

Escribir en el log

El comando:

logger -p local5.info "Mensaje de prueba"

Genera:

Jul 15 19:14:26 debian fabian: Mensaje de prueba

Escribir en el log

El comando:

logger -t Critico " se fue el sistema"

Genera:

Dec 17 03:37:05 CentOS-5 Critico: se fue el sistema

Categorías configuración rsyslog

Módulos:Módulos: Indica los módulos que se pueden cargar o descargar (es modular)

Directivas Globales:Directivas Globales: Especifica todas las directivas que podemos expresar de forma global (empiezan con $)

Reglas:Reglas: Especifica las reglas que aplican con su acción determinada.

Selección:Selección: Indica a qué categoría y tipo de prioridad (mail.debug)

Acción:Acción: Indica qué hacer con el mensaje luego de pasar por la selección.

Creacion de Reglas

mail.info muestra mensajes de mail, con prioridad info o superior

mail.=warn muestra mensajes de mail, con prioridad warn unicamente

mail.!warn muestra mensajes de mail, con prioridad menor a warn

mail.!=warn muestra mensajes de mail, con cualquier nivel de prioridad excepto warn

Creacion de Reglas

; --> especifica que distintos mensajes apunten a un mismo lugar:

auth.*;cron.warn /var/log/varios.log

, --> especifica distintos tipos de mensajes con los mismos niveles de prioridad:

auth,authpriv.* /var/log/auth.log

Logs Remotos Syslogd

Editar: /etc/sysconfig/syslog

SYSLOGD_OPTIONS="-m 0"

Cambiar por: SYSLOGD_OPTIONS=”-m 0 -r”

Logs Remotos Rsyslog

Editar: /etc/rsyslog.conf

# Provides UDP syslog reception #$ModLoad imudp.so #$UDPServerRun 514

Cambiar por: # Provides UDP syslog reception $ModLoad imudp.so $UDPServerRun 514

Envío de logs remotos

Recurso.Severidad @servidor

Mail.* @192.168.0.1

Envío de logs remotos

Recurso.Severidad @servidor

Mail.* @192.168.0.1

Rotación de logs

● Según Apache: 1Mb cada 10.000 líneas de log

● Los archivos grandes son lentos para trabajar

● Se puede llenar el sistema de archivos

¿Cómo rotar los archivos de log?

● A mano (complicado y olvidadizo)

● Con un script (vamos mejorando)

● Con 'logrotate' (la opción más potente)

Configuración de logrotate

/etc/logrotate.conf

/etc/logrotate.d

Opciones comunes de logrotate

Compress Comprimir los logs Daily Rotar todos los días Weekly Rotar cada semana Monthly Rotar cada mes mail m Enviar por mail a la dirección 'm' Prerotate Ejecutar script antes de rotar Postrotate Ejecutar script después de rotar rotate n Guarda 'n' logs antes de borrar size s Rota si el tamaño es mayor a 's' Sharedscripts Ejecuta scripts una sóla vez

Ejemplo configuración logrotate

/var/log/apache2/*.log { weekly rotate 5 compress sharedscripts postrotate /etc/init.d/apache2 reload > /dev/null endscript }

Logrotate

Rotacion en modo debug sin impacto: logrotate -d /etc/logrotate.conf

Rotacion real con verbose Logrotate -v /etc/logrotate.conf

Monitoreo de UsuariosUso de Lastlog:

lastlog -u root lastlog -b 10 Lastlog -t

Uso de Faillog: faillog -u root falilog -a faillog -s sec faillog -r faillog -m Faillog -l sec

Bibliografía

Fabian Portantier www.portantier.com

Rino Rondan www.itrestauracion.com.ar

Federico Nan www.rootlinux.com.ar

Bajo Licencia CC BY-SA 3.0