Sistema de logs (syslog)
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
- 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