Hace unos días, publicamos una guía que describía cómo configurar un servidor Rsyslog centralizado en el sistema CentOS. Hoy, en esta guía, vamos a ver cómo administrar archivos de registro usando Logrotate en Linux. Esta utilidad simplifica la administración de archivos de registro, especialmente útil para sistemas que producen un gran volumen de archivos de registro todos los días. Como su nombre lo indica, LogRotate gira los registros completamente fuera de su sistema en intervalos de tiempo regulares. También permite la rotación automática, la compresión, la eliminación y el envío por correo de archivos de registro. Cada archivo de registro se puede manejar diariamente, semanalmente, mensualmente o cuando crece demasiado.
Gestionar archivos de registro mediante Logrotate
Instalar Logrotate
Logrotate está disponible en los repositorios predeterminados de la mayoría de las distribuciones de Linux.
En Arch Linux y sus derivados, debe ejecutar el siguiente comando para instalarlo.
$ sudo pacman -S logrotate
En sistemas basados en RPM, como RHEL, CentOS, Scientific Linux, puede instalarlo usando el comando:
$ sudo yum install logrotate
En Debian, Ubuntu:
$ sudo apt-get install logrotate
En SUSE, abra SUSE:
$ sudo znf install logrotateDescargar - Guía electrónica gratuita:"22 ajustes útiles para que Ubuntu se sienta como en casa"
Configurar Logrotar
El archivo de configuración principal de LogRotate es /etc/logrotate.conf .
Aquí está el contenido predeterminado de este archivo en mi sistema Arch. La salida de este archivo puede verse un poco diferente en otras distribuciones de Linux.
$ cat /etc/logrotate.conf
Salida de muestra:
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # restrict maximum size of log files #size 20M # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # Logs are moved into directory for rotation # olddir /var/log/archive # Ignore pacman saved files tabooext + .pacorig .pacnew .pacsave # Arch packages drop log rotation information into this directory include /etc/logrotate.d /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 } /var/log/btmp { missingok monthly create 0600 root utmp rotate 1 }
Veamos qué hace cada opción en el archivo de configuración anterior.
- semanalmente - Rota los registros cada semana.
- rotar 4 - De forma predeterminada, LogRotate conserva los archivos de registro de cuatro semanas (un mes, obviamente). Dado que rota todos los archivos de registro después de un período de tiempo determinado, es posible que deba mantener una copia de seguridad de los archivos de registro importantes si no desea perderlos.
- talla 20M - Gira los archivos de registro si alcanzaron el tamaño de 20 MB. Por defecto, esta opción está deshabilitada. Para habilitarlo, simplemente descoméntelo.
- crear - Crea nuevos archivos de registro una vez después de rotar los archivos de registro antiguos. Esta opción está habilitada de manera predeterminada.
- comprimir - Comprime los archivos de registro. Además, no comprime registros de forma predeterminada. Si desea comprimir los registros, descomente esta línea.
- /etc/logrotate.d/ - Este directorio contiene archivos de reglas de registro específicos de la aplicación.
- falta ok - Si falta el archivo de registro, Logrotate pasará al siguiente sin emitir un mensaje de error.
Logrotate segmenta los archivos de registro y los comprime según las reglas que se especifican en /etc/logrotate.d/ directorio.
Echemos un vistazo a los contenidos de este directorio.
$ ls /etc/logrotate.d/
La salida de muestra sería:
lirc samba
Como puede ver en el resultado anterior, contiene varios archivos de reglas para todos los registros administrados por LogRotate. Para ver una regla de registro de aplicación específica, por ejemplo, samba, ejecute:
$ cat /etc/logrotate.d/samba
Salida de muestra:
/var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log { notifempty missingok sharedscripts copytruncate postrotate /bin/kill -HUP `cat /var/run/samba/*.pid 2>/dev/null` 2>/dev/null || true endscript }
Aquí,
- notifempty - Indica que los archivos de registro no se rotarán si está vacío.
- copiar y truncar - Trunca el archivo de registro original en su lugar después de crear una copia.
- postrotar/endscript - Las líneas entre postrotate y endscript se ejecutan después de rotar el archivo de registro.
- secuencia de comandos compartida - Los scripts solo se ejecutan una vez, sin importar cuántos registros coincidan con el patrón con comodines.
También puede crear sus propios archivos de reglas de registro en el directorio /etc/logrotate.d/ y definir sus propias reglas.
Cron ejecuta la utilidad logroate diariamente en busca de archivos de registro para rotar. Puede especificar reglas de rotación automática de registros en /etc/cron.daily/logrotate archivo para evitar la intervención manual del usuario. Realizará la rotación de registros todos los días a una hora específica.
Para verificar si los archivos de registro rotan o no, ejecute:
$ cat /var/lib/logrotate.status
Salida de muestra:
logrotate state -- version 2 "/var/log/samba/log.smbd" 2016-5-12-11:0:0 "/var/log/lircd" 2016-6-15-10:0:0 "/var/log/httpd/*log" 2016-5-12-11:0:0 "/var/log/wtmp" 2016-5-6-10:0:0 "/var/log/samba/*.log" 2016-5-12-11:0:0 "/var/log/btmp" 2017-4-1-11:36:53 "/var/log/samba/log.nmbd" 2016-5-12-11:0:0
Para obtener más detalles, ejecute logrotate ingresando el siguiente comando:
$ logrotate --help
O,
$ man logrotate
Eso es todo amigos. Logrotate es una herramienta de rotación de registros simple pero útil que simplifica la administración de registros. No necesita luchar con pasos complejos de configuración e instalación. Todo se explica por sí mismo. Si administra un sistema que produce una gran cantidad de archivos de registro, puede rotarlos periódicamente con Logrotate.
¡Salud!