Tutoriales

Cómo administrar archivos de registro usando Logrotate en Linux

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.

¿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:

LEER  Los 5 mejores navegadores de IA para Linux

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba