Sistema de logs (syslog)

De Wikillano
Saltar a: navegación, buscar

Contenido

Categorias y Prioridades de syslog

El fichero de configuración de syslog está en /etc/syslog.conf (man 5 syslog.conf). El formato es facility.level action

Facility

  • auth
  • cron
  • daemon
  • ftp
  • kern
  • lpr
  • mail
  • news
  • syslog
  • user
  • uucp

Priorities

  • emerg
  • alert
  • crit
  • err
  • warning
  • notice
  • info
  • debug

Actions

  • fichero regular /varl/log/fichero
  • console /dev/tty1
  • máquina remota @hostname
  • usuarios user1
  • "*" (todos los usuarios)

Importante: Por defecto, almacena todos los mensajes de la prioridad especificada o de más alta prioridad.

Modificadores

  • "*"

Si se usa el "*" como facility todas las facility serán logeadas, en cambio si se usa en el campo priority todas las priority desde info para arriba son logeadas

  • =

Restringe a la prioridad especificada

  • !

excluye la prioridad


Ejemplos

Loguear todas las facility y todas las prioridades en un fichero regular

*.* /var/log/mi.log

Loguear los mensajes warning o más de la facility user

user.warning /var/log/user.log

Loguear todos los mensajes de la facility user de prioridad info hacia arriba (todas menos debug, debug siempre se excluye cuando usamos *)

user.* /var/log/mi.log

Loguear todos los mensajes de auth y daemon a la consola de root si esta logeado

auth.*;daemon.* root

Logeuar todos los mensajes de cualquier prioridad menos de emerg de la facility auth

auth.!=emerg /var/log/users.log

Loguear todos los mensajes de prioridad hasta crit (alert y emerg NO)

news.!alert

Loguear sólo los mensajes info de mail

mail.=info /var/log/mail.log

Loguear mail.info, news.info a /var/adm/info

mail,news.=info              /var/adm/info

Loguear todo lo que venga con prioridad info y notice menos para la facility mail

*.=info;*.=notice;\
                  mail.none  /var/log/messages

Logs personalizados

Podemos crear nuestros propios logs utilizando syslog con el comando logger para realizar una prueba voy a crear un script tonto que escriba un log según lo que el usuario haya escrito.

#!/bin/bash

if [ $0 = 0 ]; then
logger user.info "el usuario metio un cero"
else
logger user.info "el usuario no puso un cero"
fi

Modificamos el syslog.conf y añadimos lo siguiente para que recoja todos los logs que lleguen a user.info a /var/log/pruebas.log

user.info       /var/log/pruebas.log

al ejecutar el script tal que así

.prueba.sh 1

miramos en /var/log/pruebas.log :

Dec 22 20:36:50 pluton root: user.info el usuario no puso un cero