Logrotate es una utilidad diseñada para administradores que gestionan servidores que producen un gran volumen de archivos de registro. Les ayuda a ahorrar algo de espacio en disco, así como a evitar un riesgo potencial de que un sistema deje de responder debido a la falta de espacio en disco.
Normalmente, una solución para evitar este tipo de problema es configurar una partición separada o un volumen lógico para un /var
punto de montaje. Sin embargo, logrotate también puede ser una solución viable a este problema, especialmente si es demasiado tarde para mover todos los registros a una partición diferente.
En este tutorial, le mostraremos cómo configurar el servicio logrotate en Red Hat Enterprise Linux, para que pueda recuperar los archivos de registro bajo su control.
En este tutorial aprenderás:
- Cómo usar la utilidad logrotate en RHEL
- Dónde se almacenan los archivos de configuración de logrotate
- Cómo establecer una configuración personalizada de logrotate
- Cómo probar una implementación logrotate
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | Red Hat Enterprise Linux |
Software | logrotate |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
¿Qué es logrotate?
Logrotate le brinda al administrador del sistema la capacidad de rotar y archivar sistemáticamente cualquier archivo de registro producido por el sistema y, por lo tanto, reducir el requisito de espacio en disco del sistema operativo. De forma predeterminada, logrotate se invoca una vez al día mediante 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
- archivos de configuración específicos del servicio almacenados en /etc/logrotate.d/
El principal logrotate.conf
El archivo contiene una configuración genérica. Aquí hay un archivo de configuración de logrotate predeterminado logrotate.conf
:
weekly
rotate 4
create
dateext
include /etc/logrotate.d
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
- Línea 1:semanal La opción de configuración garantiza 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 garantiza que logrotate mantenga 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:texto de fecha agrega una extensión a todos los archivos de registro rotados en forma de fecha en que logrotate procesó cada archivo de registro en particular
- Línea 5:incluir todas las demás configuraciones del directorio /etc/logrotate.d
- Las líneas 6 a 11 contienen una configuración de rotación de registro de servicio específica
A diferencia de logrotate.conf
, un directorio /etc/logrotate.d/
contiene archivos de configuración de servicio específicos utilizados por logrotate. En la siguiente sección, crearemos una configuración de logrotate de esqueleto de muestra.
Incluyendo nuevos registros de servicio para logrotate
En esta sección agregaremos un nuevo archivo de registro en una configuración de logrotate. Digamos que tenemos un archivo de registro llamado /var/log/linuxserver.log
, sentado en nuestro /var/log
directorio que debe rotarse diariamente.
Primero necesitamos crear un nuevo archivo de configuración logrotate para acomodar nuestro nuevo archivo de registro:
# vi /etc/logrotate.d/linuxserver
Inserte el siguiente texto en /etc/logrotate.d/linuxserver:
/var/log/linuxserver.log {
rotate 7
daily
compress
delaycompress
missingok
notifempty
create 660 linuxuser linuxuser }
Este archivo de configuración se ejecutará a diario, creará un máximo de 7 archivos propiedad de linuxuser y linuxuser group con 660 permisos, comprimirá todos los registros y excluirá solo los registros de ayer y los archivos de registro vacíos. Estas son algunas palabras clave de configuración de logrotate seleccionadas. Para obtener un tutorial completo, consulte la página de manual de logrotate.
diariamente | Los archivos de registro se rotan todos los días. |
semanal | Los archivos de registro se rotan si el día de la semana actual es menor que el día de la semana de la última rotación o si ha pasado más de una semana desde la última rotación. Normalmente, esto es lo mismo que rotar registros el primer día de la semana, pero si logrotate no se ejecuta todas las noches, se realizará una rotación de registros en la primera oportunidad válida. |
mensual | Los archivos de registro se rotan la primera vez que se ejecuta logrotate en un mes (normalmente el primer día del mes). |
notifempty | No rote el registro si está vacío (esto anula la opción ifempty). |
sin comprimir | Las versiones anteriores de los archivos de registro no están comprimidas. |
compresión de retraso | Posponga la compresión del archivo de registro anterior al siguiente ciclo de rotación. Esto solo tiene efecto cuando se usa en combinación con la compresa. Se puede usar cuando no se puede indicar a algún programa que cierre su archivo de registro y, por lo tanto, podría continuar escribiendo en el archivo de registro anterior durante algún tiempo. |
comprimir | Las versiones antiguas de los archivos de registro se comprimen con gzip de forma predeterminada. |
dirección de correo | Cuando un registro deja de existir, se envía por correo a la dirección. Si un registro en particular no debe generar correo, se puede usar la directiva nomail. |
faltaok | Si falta el archivo de registro, continúe con el siguiente sin emitir un mensaje de error. |
Una vez que su archivo de configuración esté listo, simplemente cópielo en el directorio logrotate y cambie el propietario y los permisos:
# cp linuxserver /etc/logrotate.d/
# chmod 644 /etc/logrotate.d/linuxserver
# chown root.root /etc/logrotate.d/linuxserver
Probando una nueva configuración de Logrotate
Ahora que se implementó la configuración de logrotate, siga los pasos a continuación para probarla.
- Cree un archivo de registro de muestra, si aún no existe:
# echo "rotate my log file" > /var/log/linuxserver.log
- Una vez que su archivo de registro esté en su lugar, obligue a logrotate a rotar todos los registros con
-f
opción.# logrotate -f /etc/logrotate.conf
Advertencia:el comando anterior rotará todos sus registros definidos en /etc/logrotate.d
directorio.
- Ahora visite de nuevo su directorio /var/log/y confirme que su archivo de registro fue rotado y que se creó un nuevo archivo de registro.
Pensamientos finales
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 /var/
o incluso mejor /var/log
directorio. Sin embargo, incluso entonces logrotate puede ayudarlo a ahorrar algo de espacio en disco al comprimir sus archivos de registro. Logrotate también puede ayudarlo a archivar sus archivos de registro para futuras referencias creando una copia adicional o enviándole por correo electrónico cualquier archivo de registro recién rotado.