Antes que nada, lanzo la pregunta, que es un log??? muchos deben saberlo, pero nunca esta de más una pequenha "definición". Un log es un registro de eventos producidos durante un periodo de tiempo concreto. El servidor web apache almacena en distintos logs (ficheros de registros) la actividad de nuestra aplicación (accesos y errores) de los distintos sitios web que tengamos configurados.... Entonces,para evitar que el tamaño de los logs crezca de forma incontrolada se opta por rotarlos, en caso de no hacerlo podremos quedarnos rápidamente sin espacio en disco.(Algo muy común en los servers que reviso). Como recomendación, la información recopilada en los ficheros log se debe conservar al menos durante 1 año por eventuales necesidades legales, de este modo, además de rotarlos se opta habitualmente por comprimir logs.(para que no ocupen espacio en disco). A continuación detallaré como rotar logs para algunos servicios como: apache, lighty, samba, squid, etc. configurando logrotate pare desempeñar esta función. 1.- Nos dirigimos a /etc/logrotate.d/, aquí encontramos ciertos ficheros para ciertos servicios en producción, a su vez podemos agregar nuevos ficheros para generar "rotación de logs específicos". 2.- Tomemos como ejm. http: /var/log/httpd/*log { weekly #período de rotación del log: puede ser diaria,semanal,mensual,anual rotate 30 #mantener las rotaciones 30 días missingok #Si da error en fichero pasa al siguiente que no de error notifempty #No hace ninguna rotación si el archivo esta vacío sharedscripts #Ejecuta cualquier prerotate o postrotate en secuencia de comandos para cada archivo de registro individual. delaycompress #No comprimir archivos del día anterior compress # Comprimir los logs a formato GZ (automatico) copytruncate #copia el archivo original de log y lo pone a 0 size=+150M #Tamanho max. del log postrotate #Sirve para ejecutar algún tipo de servicio /sbin/service httpd reload > /dev/null 2>/dev/null || true endscript } 3.- De esta manera podemos jugar con los parámetros para ligthy, squid, samba, etc. 4.- Para ejecutar logrotate, escribimos en consola: logrotate /etc/logrotate.conf -f 5.- Como recomendación podemos crear en crontab una tarea para que lo ejecute: 0 24 * * * /usr/sbin/logrotate /etc/logrotate.conf > /dev/null 2>&1 Espero que puedan sacarle provecho a sus logs y claro al espacio en su disco tambien, jejeje, saludos
4 comentarios:
muy buen aporte
hola, he estado visitando tu pagina y tienes contenido muy interesante, sigue posteando asi, me encantará volver, saludos!
excelente dato
el sharedscripts hace todo lo contrario, evita que el pre y post rotate se ejecuten luego de rotar cada log.
Publicar un comentario