Hemos publicado una guía que describe cómo configurarlo. Servidor Rsyslog centralizado En un sistema CentOS.Hoy en esta guía discutiremos Que es Logrotatecómo Instalar Logrotate y cómo Administrar archivos de registro con Logrotate en Linux.
Tabla de Contenidos
¿Qué es Logrotate?
Como el nombre sugiere, rotación logarítmica Mueva periódicamente los registros completamente fuera del sistema. También permite la rotación automática, compresión, eliminación y envío de archivos de registro.
La utilidad logrotate procesa cada archivo de registro cada hora, diariamente, semanalmente, mensualmente o cuando se vuelve demasiado grande o el archivo de registro alcanza cierto tamaño.
La utilidad logrotate simplifica la administración de archivos de registro y es especialmente útil para los sistemas que generan una gran cantidad de archivos de registro cada día.
Instalar Logrotate en Linux
Logrotate está disponible en los repositorios predeterminados de la mayoría de las distribuciones de Linux.
Para instalar logrotate en Alpine Linux, ejecute:
$ sudo apk add logrotate
Para instalar logrotate en Arch Linux y sus variantes como EndeavourOS y Manjaro Linux, ejecute el siguiente comando:
$ sudo pacman -S logrotate
Para instalar logrotate en sistemas basados en RPM como Fedora, RHEL, CentOS, CentOS Stream, AlmaLinux y Rocky Linux, ejecute:
$ sudo dnf install logrotate
En RHEL más antiguos, sistemas CentOS, use yum
reemplazar dnf
Instalar logrotate.
$ sudo yum install logrotate
Para instalar logrotate en Debian, Ubuntu y derivados de Ubuntu como Elementary OS, Linux Mint y Pop!_OS, ejecute el siguiente comando:
$ sudo apt install logrotate
logrotate se puede instalar en los sistemas SUSE y openSUSE con el siguiente comando:
$ sudo zypper install logrotate
Compilar e instalar Logrotate desde la fuente
Asegúrese de tener las herramientas de desarrollo instaladas en su sistema Linux. Consulte los enlaces a continuación para obtener información sobre cómo instalar herramientas de desarrollo en varias distribuciones de Linux.
Cómo instalar herramientas de desarrollo en Linux
Descargue el tarball logrotate más reciente de publicar páginaAl momento de escribir esta guía, la última versión es 3.21.0.Vamos a descargarlo usando wget Programas en el directorio actual:
$ wget https://github.com/logrotate/logrotate/releases/download/3.21.0/logrotate-3.21.0.tar.gz
Extraigamos el tarball descargado:
$ tar xvzf logrotate-3.21.0.tar.gz
Esto extraerá el contenido del tarball a un archivo llamado logrotate-3.21.0
.Ingrese al directorio:
$ cd logrotate-3.21.0
A continuación, ejecute el siguiente comando:
$ ./configure
Si encuentra el siguiente error:
configure: error: libpopt required but not found
Instalar libpopt-dev En sistemas basados en Debian:
$ sudo apt install libpopt-dev
En sistemas basados en RPM, instale desarrollo popular embalar.
$ sudo dnf install popt-devel
Luego, vuelve a ejecutar ./configure
Orden.
$ ./configure
Finalmente, instale logrotate con el comando:
$ make
$ sudo make install
Administrar archivos de registro con Logrotate
El archivo de configuración principal para LogRotate es /etc/logrotate.conf.
A continuación se muestra el contenido predeterminado de este archivo en mi sistema Fedora Linux.
# see "man logrotate" for details # global options do not affect preceding include directives # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file dateext # uncomment this if you want your log files compressed #compress # packages drop log rotation information into this directory include /etc/logrotate.d # system-specific logs may also be configured here.
La salida puede verse un poco diferente en otras distribuciones de Linux.Por ejemplo, mi vieja caja de Arch Linux logrotate.conf
Los archivos tienen diferentes contenidos.
$ cat /etc/logrotate.conf # 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.
- girar 4 – De forma predeterminada, LogRotate guarda cuatro semanas (aparentemente un mes) de archivos de registro. Debido a que rota todos los archivos de registro después de un cierto período de tiempo, es posible que desee hacer una copia de seguridad de los archivos de registro importantes si no desea perderlos.
- Tamaño 20M – Gire los archivos de registro si alcanzan los 20 MB de tamaño. Por defecto, esta opción está deshabilitada. Para habilitarlo, simplemente descoméntalo.
- crear – Cree nuevos archivos de registro después de rotar los archivos de registro antiguos. Esta opción está activada de forma predeterminada.
- compresión – Comprimir archivos de registro. Además, no comprime registros de forma predeterminada. Descomente esta línea si desea comprimir los registros.
- /etc/logrotate.d/ – Este directorio contiene archivos de reglas de registro específicos de la aplicación.
- falta bien – Si falta un archivo de registro, Logrotate continuará con el siguiente archivo sin un mensaje de error.
Logrotate segmenta los archivos de registro y los comprime de acuerdo con las reglas que se especifican a continuación /etc/logrotate.d/ Tabla de contenido.
Echemos un vistazo al contenido de este directorio.
$ ls /etc/logrotate.d/
Salida de ejemplo:
bootlog chrony firewalld httpd libvirtd numad psacct sssd wtmp btmp dnf glusterfs iscsiuiolog libvirtd.qemu ppp samba wpa_supplicant
Como puede ver en el resultado anterior, contiene varios archivos de reglas para todos los registros administrados por Logrotate.
Ver reglas de registro para aplicaciones específicas, como sambacorrer:
$ cat /etc/logrotate.d/samba
Salida de ejemplo:
/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í,
- notificación vacía – indica que el archivo de registro no se rotará si está vacío.
- copiar truncamiento – Trunca el archivo de registro original en su lugar después de crear la copia.
- guion compartido – El script solo se ejecuta una vez, sin importar cuántos registros coincidan con el patrón de comodines.
- post-rotación/secuencia de comandos final – Las líneas entre postrotate y endscript se ejecutan después de la rotación del archivo de registro.
También puede crear su propio archivo de reglas de registro en /etc/logrotate.d/
cataloga y define tus propias reglas.
configuración de temporización
tarea cronometrada Ejecute la utilidad logroate diariamente para buscar 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.
$ cat /etc/cron.daily/logrotate #!/bin/sh # skip in favour of systemd timer if [ -d /run/systemd/system ]; then exit 0 fi # this cronjob persists removals (but not purges) if [ ! -x /usr/sbin/logrotate ]; then exit 0 fi /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit $EXITVALUE
Realizará la rotación de registros a una hora específica del día.
Comprobar el estado de Logrotate
Para verificar que los archivos de registro se rotan, verifique la logrotate.status
documento:
$ sudo cat /var/lib/logrotate/logrotate.status
Salida de ejemplo:
logrotate state -- version 2 "/var/log/glusterfs/snaps/*/*.log" 2022-11-29-14:0:0 "/var/log/firewalld" 2022-11-29-14:0:0 "/var/log/boot.log" 2023-4-7-16:10:29 "/var/log/hawkey.log" 2023-4-7-16:10:29 "/var/log/glusterfs/*.log" 2022-11-29-14:0:0 "/var/log/httpd/*log" 2022-11-29-14:0:0 "/var/log/chrony/*.log" 2022-11-29-14:0:0 "/var/log/wtmp" 2022-11-29-14:0:0 "/var/log/btmp" 2023-4-7-16:10:29 "/var/log/glusterfs/samples/*.samp" 2022-11-29-14:0:0 "/var/log/iscsiuio.log" 2022-11-29-14:0:0 "/var/log/libvirt/libvirtd.log" 2022-11-29-14:0:0 "/var/log/libvirt/qemu/*.log" 2022-11-29-14:0:0 "/var/log/sssd/sssd_kcm.log" 2023-4-7-16:10:29 "/var/log/wpa_supplicant.log" 2022-11-29-14:0:0 "/var/log/glusterfs/bricks/*.log" 2022-11-29-14:0:0 "/var/log/numad.log" 2022-11-29-14:0:0 "/var/log/ppp/connect-errors" 2022-11-29-14:0:0 "/var/log/samba/log.*" 2022-11-29-14:0:0 "/var/account/pacct" 2022-11-29-14:0:0
En algunas distribuciones de Linux anteriores, la ubicación de este archivo puede ser diferente.
$ cat /var/lib/logrotate.status
Salida de ejemplo:
logrotate state -- version 2 "/var/log/samba/log.smbd" 2022-5-12-11:0:0 "/var/log/lircd" 2022-6-15-10:0:0 "/var/log/httpd/*log" 2022-5-12-11:0:0 "/var/log/wtmp" 2022-5-6-10:0:0 "/var/log/samba/*.log" 2022-5-12-11:0:0 "/var/log/btmp" 2023-4-1-11:36:53 "/var/log/samba/log.nmbd" 2023-4-1-11:0:0
consigue ayuda
Para obtener más detalles, ejecute logrotate escribiendo:
$ logrotate --help
Véase también la página del manual:
$ man logrotate
en conclusión
Logrotate es simple, pero útil herramienta de rotación de registros Esto simplifica la gestión de registros. No necesita realizar usted mismo complicados pasos de configuración e instalación. Todo se explica por sí mismo. Si administra sistemas que generan una gran cantidad de archivos de registro, puede usar Logrotate en Linux Server para rotar los registros de forma regular.
recurso: