Sistemas Operativos II
Servicios en Linux
Administración bitácoras
syslog
Roberto Gómez Cárdenas
[email protected]
http://homepage.cem.itesm.mx/rogomez
Lámina 1
Roberto Gómez C.
Las bitácoras: el sistema syslog
• Administración de la información generada por el
kernel y utilidades del sistema.
• Antes cada programa era libre de elegir su política de
logging.
• Comprende
– un demonio, funciones de biblioteca y un comando
– permite registrar errores en archivos definidos anteriormente
• Administra mensajes/anuncios en base a niveles y
entidades
– posible enviarlos a otras máquinas para su procesamiento
Lámina 2
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
1
Sistemas Operativos II
Servicios en Linux
Entidades y su origen
Entidades
auth
authpriv
cron
daemon
kern
lpr
mail
news
security
syslog
user
uucp
local0-7
mark
*
Programa que lo utiliza
Seguridad y comandos de autorización
Mensajes de autorización privados (no del sistema)
mensajes de los daemons at y cron
mensajes del resto de los daemons
mensaje del núcleo
mensajes del subsistema de impresión
mensajes del subsistema de correo electrónico
mensajes del subsistema de noticias
es igual a auth. Se encuentra en desuso
mensajes del propio subsistema de logs
mensajes genéricos de los usuarios
mensajes del subsistema UUCP (el cual ya no se usa)
reservados para uso local
Estampillas de tiempo generadas en tiempos regulares
Todas las facilidades, excepto “mark”
Lámina 3
Roberto Gómez C.
Los niveles de prioridad
(severidad)
Nivel
debug
info
notice
warning
warn
err
error
crit
alert
emerg
panic
Significado aproximado
mensajes de depuración de un programa
mensajes informativos
mensajes de sucesos significativos pero normales
mensajes de advertencia
es igual a warning. Está en desuso
mensajes de error
es igual a err. Está en desuso
mensajes que indican condiciones críticas
mensajes de alerta. Se debe emprender una acción al momento
el sistema se ha vuelto inoperable
es igual a emerg. Está en desuso.
Lámina 4
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
2
Sistemas Operativos II
Servicios en Linux
Las acciones
Acción
nombre-archivo
@hostname
@ipaddress
user1, user2, ...
*
Lámina 5
Significado
Escribir mensaje en un archivo ubicado dentro de la
máquina local
Redireccionar el mensaje al syslogd corriendo en
hostname
Redireccionar el mensaje al host en la dirección IP
ipaddress
Escribir mensaje en la pantalla de los usuarios si están
conectados
Escribir mensaje a todos los usuarios conectados
Roberto Gómez C.
Ejemplo archivo configuración
mail.debug
auth.info;auth.notice
auth.info;auth.notice
*.info,mail.none;auth.none
*.alert
local0.notice;local0.debug
local7.notice;local7.info
/usr/spool/mqueue/syslog
/usr/adm/auth.info
floreal
/usr/adm/syslog
/usr/adm/noticelog
/usr/spool/mqueue/POPlog
/tmp/essai.syslog
Lámina 6
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
3
Sistemas Operativos II
Servicios en Linux
Software que usa syslog
Programa
cron
ftpd
impad
inetd
login
lpd
named
passwd
popper
sendmail
shutdown
su
sudo
syslog
tcpd
vmlinuz
xinetd
Entidad
cron
ftp
mail
daemon
authpriv
lpr
daemon
auth
local0
mail
auth
auth
local2
syslog,mark
local7
kern
configurable info(default)
Nivel
info
debug-crit
info-alert
err,warning
info-err
info-err
info-err
notice,waring
debug,notice
debug-alert
notice
notice
notice,alert
info-err
debug-err
all
Descripción
System task-scheduling daemon
FTP daemon (wu-ftpd)
IMAP mail server
Internet superdeamon
Loging programs
Line printer deamon
Name server (DNS)
Password-setting program
POP3 mail server
Mail transport system
Halts the system
Switches UIDs
Limited su program
Internal errors,time stamps
TCP wrapper for inetd
The kernel
Variant of inetd (Red Hat)
Lámina 7
Roberto Gómez C.
Funciones de biblioteca
• Funciones para comunicarse con demonio
syslog
• Para usarlas en un programa en C se necesita
incluir /usr/include/syslog.h
• Se cuenta con tres funciones:
– openlog(cadena, opcion, entidad)
– syslog(prioridad, cadena, parámetros...)
– setlogmask(mascara)
– closelog( );
Lámina 8
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
4
Sistemas Operativos II
Servicios en Linux
La función openlog( )
• Sintaxis:
– openlog(ident, logopt, entidad)
• Mensajes son almacenados (logged) con las opciones
espificadas por logopt
• Mensajes empiezan por el string de identificación
ident
• Si openlog no es usado, se toman las opciones por
default
– ident: default al nombre de la máquina
– logopt: un string en blanco
– entidad: user
Lámina 9
Roberto Gómez C.
Opciones openlog( )
Opción
LOG_PID
LOG_CONS
LOG_NDELAY
Significado
PID del proceso será desplegado en cada mensaje
si comunicación con syslog es imposible, mensaje es
enviado a la consola del operador
conexión con demonio syslogd es establecida
inmediatamente
LOG_NOWAIT
utilizada con LOG_CONS para escribir en la consola del
operador
Ejemplo:
openlog(“adminscript”, LOG_PID, LOG_MAIL)
Lámina 10
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
5
Sistemas Operativos II
Servicios en Linux
Los valores de las entidades
• En mayúsculas precedidas por LOG_
Valor
LOG_AUTH
LOG _AUTHPRIV
LOG_CRON
LOG_DAEMON
LOG_FTP
LOG_KERN
LOG_LOCALn
LOG_LPR
LOG_MAIL
LOG_NEWS
LOG_SYSLOG
LOG_USER
LOG_UUCP
Entidad asociada
mensajes autorización/seguridad (en desuso)
mensajes autorización/seguridad
demonio cron
demonios sistema
demonio ftp
mensajes al núcleo
reservado para uso local, n 0,1,2,3,4,5,6 o 7
subsistema de impresión
susbsistema de correo
susbsistema de noticias USENET
mensajes generados internamente por syslogd
Mensaje genericos usuraio
Subsistema UUCP
Lámina 11
Roberto Gómez C.
Función syslog
• Sintaxis:
– syslog(nivel, mensaje, ...)
• Usada para transmitir mensajes a syslog, el cual lo
almacena con el nivel especificado
• Opciones:
– la fecha, hora, hostname y string de identificación de la
llamada openlog( ) son añadidos al mensaje en el archivo de
bitácoras
– mensaje puede ser seguido de uno o varios parámetros al
estilo del printf( )
• Ejemplo:
syslog(LOG_INFO,”Envio a ‘%s’ fallo despues %d intentos.”,$user,$Intentos);
Lámina 12
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
6
Sistemas Operativos II
Servicios en Linux
Niveles
• Precedidos por los caracteres LOG_
Nivel
Significado
LOG_EMERG
sistema no se puede usar
LOG_ALERT
una acción se debe tomar de inmediato
LOG_CRIT
condiciones crítica
LOG_ERR
condiciones de error
LOG_WARNING
condiciones de advertencia
LOG_NOTICE
condición normal pero significativa
LOG_INFO
mensaje información
LOG_DEBUG
mensaje nivel depuración
Nota;
función setlogmask puede usarse para restringir logging a ciertos niveles
Lámina 13
Roberto Gómez C.
Función closelog( );
• Cierra el canal de bitácoras
• Debe llamarse esta rutina si se desea reabrir el
canal de bitácoras con opciones diferentes
• Es buena práctica el llamar a closelog( ) cuando
el programa termine, pero no es estrictamente
necesario hacerlo.
Lámina 14
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
7
Sistemas Operativos II
Servicios en Linux
Ejemplo uso funciones syslog
#include <stdio.h>
#include <syslog.h>
int main(int argc, char *argv[ ])
{
if (argc != 3) {
openlog(“adminscript”, “cons.pid”, LOG_LOCAL7);
syslog(LOG_ERR, “Error en parametros en aplicación local 7.”);
closelog();
exit(0);
}
:
:
}
Lámina 15
Roberto Gómez C.
Salida del ejemplo
• Se produce la siguiente entrada, donde 191
es el PID de adminscript
Dec 28 22:56:24 sancerre.bordeaux.vino adminscript[191]: Error en
parametros en aplicación local 7
Lámina 16
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
8
Sistemas Operativos II
Servicios en Linux
El comando logger
• Permite interactuar con syslog a nivel shell
• Sintaxis
logger [-t trace] [-p prioridad] [-f archivo] [-i] [mensaje...]
– t: cadena de caracteres será colocada al principio de cada
mensaje en lugar del nombre del usuario
– p: urgencia indicada por el par entidad.prioridad
– f: contenido archivo mencionado es usado como mensaje
– i: número de procesos (PID) del comando logger
ejecutado es aumentado al mensaje
• Ejemplo
Lámina 17
karmax@utopia:~$ logger -p user.info -t " ls ejecutado correctamente"
root@utopia:~# tail -1 /var/log/messages
Oct 18 06:58:49 utopia ls ejecutado correctamente
Roberto Gómez C.
Rotación bitácoras
• Una forma de mantener información bitácoras por un
periodo fijo se conoce como rotación.
• En rotación se mantiene archivos de respaldo que
datan de un día, de dos días ... etc.
• Cada día un programa renombra archivos para empujar
datos viejos al final de la cadena.
• Ejemplo: archivo logfile
– copias respaldo pueden ser llamadas logfile.1, logfile.2 ... etc
– si se trabaja la semana se llega hasta logfile.7 pero no
logfile.8
– a diario, los datos de logfile.7 se pierden ya que logfile.6 los
sobre-escribe
Lámina 18
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
9
Sistemas Operativos II
Servicios en Linux
Paquete logrotate
• El paquete logrotate contiene una tarea de cron
que hace circular automáticamente los archivos
de log al archivo de configuración
/etc/logrotate.conf y los archivos de
configuración en el directorio /etc/logrotate.d.
• Por defecto, se configura para circular cada
semana y mantener la validez de los archivos
previos de log durante cuatro semanas.
Lámina 19
Roberto Gómez C.
Ejemplo archivo configuración
logrotate
• Rota /var/log/messages
cada semana.
• Mantiene 5 versiones del
archivo
• Notifica syslog cada vez
que el archivo es re-
inicializado.
• Archivos bitácoras Samba
son rotados cada semana
– no son movidos y
restablecidos, sino copiados
y truncados
#Example log rotation policy
error
[email protected]
rotate 5
weekly
/var/log/messages{
postrotate
/bin/kill – HUP `cat/var/run/syslogd.pid`
endscript.
}
/var/log/samba/*.log{
notifempty
copytruncate
sharedscripts
postrotate
/bin/kill – HUP `cat /var/lock/samba/*.p
Comentarios de: Syslog (0)
No hay comentarios