Logging

Introducción

Muchos de los eventos que ocurren durante el funcionamiento de un sistema valen la pena de ser registrados. Para ellos se desarrollaron programas llamados loggers, los cuales gestionan los logs (registros de actividad).

El concepto detrás de un logger es proveer una manera unificada de manejar los archivos de registros de actividad. Este guarda mensajes que suelen tener información sobre la actividad del sistema, junto con cada mensaje se incluye la fecha y la hora del envío.

Syslog, Syslogd, Rsyslog y Klogd

Antes de empezar, vale la pena tomarse el tiempo de aclarar ciertos términos para facilitar la comprensión del resto del texto.

Syslog

El termino Syslog puede resultar un tanto ambiguo, ya que se lo suele usar para referenciar diferentes cosas. Antes que nada, syslog es un estándar, que define una arquitectura para manejar los mensajes que registran actividad dentro de un sistema. También se usa syslog para referirse al demonio syslogd, que definimos a continuación.

Syslogd

Hasta hace poco tiempo fue el programa de syslog mas común dentro de la mayoría de las distribuciones, se instala con un paquete llamado sysklogd.

Rsyslog

Últimamente es mas común ver a rsyslogd instalado como servidor de logging en las distribuciones mas populares. Si bien acepta una configuración tradicional (estilo sysklogd) , muchas de las mejoras que implementa necesitan un archivo de configuración con los métodos nuevos.

Klogd

Tanto syslogd como rsyslog generalmente funcionan en paralelo con el demonio klogd, cuya tarea es guardar un registro de la actividad del kernel.

En lo que respecta a los objetivos de la certificación LPI, solo hay que conocer en detalle el funcionamiento de syslogd. Solo es necesario tener una noción básica acerca de rsyslogd.

Configuración

Syslogd se configura a través de el archivo/etc/syslog.conf . El concepto de este archivo de configuración es muy simple y poderoso al mismo tiempo. El formato básico de las líneas que lo componen es el siguiente.

Línea de ejemplo syslog.conf

facilidad.prioridad acción

Facilidad: es una palabra que codifica el tipo de programa o herramienta que genera el mensaje a ser registrado.

Prioridad: este campo codifica la importancia del mensaje.

Acción: Representa el destino de los mensajes. Puedeser un archivo, una computadora remota u otra locación que acepte el mensaje. La facilidad y la prioridad muchas veces son referidas en conjunto como el selector.

Facilidades

auth: Autenticación.

auth-priv: Autenticación que no son creados por el sistema.

cron: Servicio Cron.

daemon: Servicios de ejecución. Este código es utilizado por los demonios que no tienen asignado un código especifico, como mail o cron.

kern: kernel

lpr: Servicio impresión.

mail: Servicio de Mail

news: Servicio News.

security (auth): Similar a auth.

syslog: syslog.

user: Usuarios.

uucp: Servicios uucp.

local0 a local7: Se pueden usar estas facilidades para programas que creen los usuarios. Es posible que las distribuciones ya estén usando alguna de estas facilidades para programas específicos, así que, es conveniente consultar la documentación de cada distribución antes utilizarlas.

Prioridades

debug: depuración

info: informativo

notice: notificaciones

warning: advertencias

err: errores

crit: críticos

alert: alertas

emerg: emergencia

Las prioridades tienen un orden ascendente de importancia. emerg indica el nivel mas alto de importancia e indica serios problemas. El nivel de debug es el que registra la mayor cantidad de información, se usa para depurar programas que no se comportan de la manera esperada.

Sintaxis

Igual o mayor prioridad

Cuando un programa envía un mensaje al logger, incluye un código de prioridad, el logger registra el mensaje a un archivo si esta configurado para registrar esa prioridad o mayor. Por cual, si se especifica un código de prioridad de alerta, el sistema registrara mensajes de alerta, pero no mensajes crit o de menor prioridad.

Igual prioridad

Si se quiere indicar una prioridad que solo se registre si coincide con esa prioridad, se utiliza el singo (=).

Menor o igual prioridad

El signo de exclamación (!) indica un valor de menor o igual propiedad.

Todas las facilidades

Un asterisco (*) se refiere a todas las facilidades.

Múltiples facilidades

Se pueden especificar varias facilidades en un solo selector separándolas por comas.

Múltiples selectores

Se pueden especificar múltiples selectores para una acción particular separando los selectores con ";"

Registro manual de datos

En la mayoría de los casos, el sistema o algún servidor generan las entradas de registros en el logger, aunque en ocasiones, un puedo llegar a querer generar una entrada manual o un script que se ocupe de ello. La herramienta para este trabajo es llamada logger.

Sintaxis

logger [isd] [-f archivo] [-p pri] [-t tag] [-u socket]

Opciones

Opción Descripción
-i Registra el PID de logger.
-s Manda el output a stderr.
-d Permite usar datagramas en lugar de un stream (flujo).
-f Guarda los contenidos de un archivo.
-p Identifica una prioridad.
-t Identifica el log con una etiqueta.
-i Especifica un socket.

Rotación de logs

Para esto se usa un programa llamado logrotate, el cual es llamado regularmente por cron. Logrotate lee archivos desde /etc/logrotate.conf.

El programa logrotate está diseñado para facilitar la administración de sistemas que generan un gran número de archivos de registro. Permite la rotación automática, la compresión, la eliminación y el envío de registros de por correo.

Cada log puede ser gestionado diariamente, semanalmente, mensualmente o cuando se hace demasiado grande.

Normalmente, la rotación se realiza de manera diaria por medio de un trabajo de Cron.

Ejemplo de un logrotate.conf:

# El intervalo de rotación por defecto es una vez por semana

weekly

# Guardad 4 semanas de logs

rotate 4

# Crear un nuevo archivo de logs vacío, luego de cada rotación

create

Se pueden configurar especificaciones individuales para archivos, las cuales sobrescriben los valores por defecto.

/var/log/wtmp {

missingok

monthly

create 0664 root utmp

rotate 1

}

Revisando archivos de Log

El solo hecho de registrar la actividad del sistema no representa ningún beneficio, de hecho significan un coste al sistema. Para sacarle provecho a estos archivos que registran actividad, hay que saber como revisarlos. Para ello, la mejor herramienta es la experiencia, pero aquí se detallan algunos consejos para poder revisarlos.

Consejos:

  • Recorrer los logs con algún programa que los muestre pagina a pagina, como less.
  • Buscar palabras clave con grep.
  • Mostrar las primeras o las ultimas líneas con head o tail.
  • Monitoreo en tiempo real con tail –f.
  • Herramientas avanzadas de monitoreo de logs, como Logcheck.

results matching ""

    No results matching ""