Logrotate es una utilidad diseñada para los administradores que manejan servidores que producen un alto volumen de archivos de registro para ayudarles a ahorrar algo de espacio en el disco, así como para evitar el riesgo potencial de que un sistema no responda debido a la falta de espacio en el disco. Normalmente, una solución para evitar este tipo de problemas es configurar una partición o volumen lógico separado para un punto de montaje /var. Sin embargo, logrotate también puede ser una solución viable a este problema, especialmente si es demasiado tarde para mover todos los registros en una partición diferente. En este artículo vamos a hablar sobre el uso y la configuración de logrotate en RedHat / CentOS Linux server.
Qué es Logrotate
Logrotate proporciona una capacidad para un administrador del sistema para rotar sistemáticamente y archivar los archivos de registro producidos por el sistema y así reducir el requisito de espacio en disco de un sistema operativo. Por defecto logrotate se invoca una vez al día utilizando un programador cron desde la ubicación /etc/cron.daily/
# ls /etc/cron.daily/
cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron rhsmd tmpwatch
Configuración de Logrotate
La configuración de Logrotate se realiza editando dos archivos de configuración separados:
- /etc/logrotate.conf
- ficheros de configuración específicos del servicio almacenados en /etc/logrotate.d/.
El fichero principal logrotate.conf contiene una configuración genérica. Aquí hay un archivo de configuración logrotate.conf por defecto:
1 weekly 2 rotate 4 3 create 4 dateext 5 include /etc/logrotate.d 6 /var/log/wtmp { 7 monthly 8 create 0664 root utmp 9 minsize 1M 10 rotate 1 11 }
- Línea 1 – la opción de configuración semanal asegura una rotación semanal de todos los archivos de registro definidos en el archivo de configuración principal y en el directorio /etc/logrotate.d/.
- Línea 2 – rotar 4 asegura que logrotate mantiene una copia de seguridad de 4 semanas de todos los archivos de registro
- Línea 3 – crear opción instruye logrotate para crear nuevos archivos de registro vacíos después de cada rotación
- Línea 4 – dateext añade una extensión a todos los archivos de registro rotados en forma de fecha cuando cada archivo de registro particular fue procesado por logrotate
- Línea 5 – incluir toda la otra configuración del directorio /etc/logrotate.d
- Línea 6 – 11 contiene un servicio específico de configuración de rotación de registros
- missingok – no emitir error si falta el archivo de registro
- notifempty – no rotar el archivo de registro si está vacío
- compress – Las versiones antiguas de los archivos de registro se comprimen con gzip(1) por defecto
- size -. El archivo de registro se rota sólo si crece más de 20k
- diario – asegura la rotación diaria
- crear – crea un nuevo archivo de registro con permisos 600 donde el propietario y el grupo es el usuario root
- copiar – Hacer una copia del archivo de registro, pero no cambiar el original en absoluto.
- mail <email@address> – Cuando un registro se rota fuera de la existencia, se envía a la dirección.
- olddir <directorio> – Los registros se mueven al <directorio> para su rotación.
- postrotate/endscript – Las líneas entre postrotate y endscript se ejecutan después de rotar el archivo de registro.
A diferencia de logrotate.conf un directorio /etc/logrotate.d/ contiene un servicio específico de archivos de configuración utilizados por logrotate. En la siguiente sección crearemos un esqueleto de configuración de logrotate de ejemplo.
Suscríbete a RSS y NEWSLETTER y recibe las últimas noticias de Linux, trabajos, consejos profesionales y tutoriales.
Incluir nuevos registros de servicio a logrotate
En esta sección añadiremos un nuevo archivo de registro en una configuración de logrotate. Digamos que tenemos un archivo de registro llamado:
/var/log/linuxcareer.log
situado en nuestro directorio /var/log que necesita ser rotado diariamente. Primero necesitamos crear un nuevo archivo de configuración de logrotate para acomodar nuestro nuevo archivo de registro:
$ vi /etc/logrotate.d/linuxcareer
Inserta el siguiente texto en /etc/logrotate.d/linuxcareer:
/var/log/linuxcareer.log {
missingok
notifempty
compress
size 20k
daily
create 0600 root root
}
Aquí hay una explicación línea por línea del archivo de configuración de logrotate anterior:
TIP: Si desea incluir varios archivos de registro en un solo archivo de configuración utilice comodines. Por ejemplo /var/log/mylogs/*.log indicará a logrotate que rote todos los archivos de registro ubicados en /var/log/mylogs/ con extensión .log.
La utilidad logrotate como bastante versátil, ya que proporciona muchas más opciones de configuración. A continuación, voy a enumerar algunas otras opciones de configuración para rotar el registro. Para obtener una lista completa, consulte la página del manual de logrotate:
$ man logrotate
Una vez creado un nuevo archivo de configuración de logrotate dentro de /etc/logrotate.d:
crear algún archivo de registro de muestra ( si no existe!):
# echo "rotate my log file" > /var/log/linuxcareer.log
Una vez que su archivo de registro está en su lugar forzar logrotate para rotar todos los registros con la opción -f.
# logrotate -f /etc/logrotate.conf
Atención: El comando anterior rotará todos sus registros definidos en el directorio /etc/logrotate.d.
Ahora visite de nuevo su directorio /var/log/dirección y confirme que su archivo de registro fue rotado y se creó un nuevo archivo de registro:
Como puede ver el nuevo archivo de registro vacío linuxcareer.log fue creado y el viejo archivo linuxcareer.log fue comprimido con gzip y renombrado con la extensión de la fecha.
TIP: Para ver el contenido de su archivo de registro comprimido no necesita descomprimirlo primero. Utilice los comandos zcat o zless que descomprimirán su archivo de registro sobre la marcha.
Conclusión
Como ya se mencionó anteriormente, la mejor manera de evitar que su sistema se obstruya con archivos de registro es crear una partición/volumen lógico separado para su directorio /var/ o incluso mejor /var/log. Sin embargo, incluso entonces logrotate puede ayudarte a ahorrar algo de espacio en el disco comprimiendo tus archivos de registro. Logrotate también puede ayudarte a archivar tus archivos de registro para una futura referencia creando una copia extra o enviándote por correo electrónico cualquier archivo de registro recién rotado. Para más información vea la página del manual de logrotate:
$ man logrotate