GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo administrar archivos de registro usando Logrotate en Linux

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 logrotate
Descargar - 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!


Linux
  1. Cómo hacer una comparación línea por línea de archivos en Linux usando el comando diff

  2. Cómo escribir archivos de registro en RAM usando Log2ram en Linux

  3. archivos de registro de Linux

  4. Cómo usar Logrotate para administrar archivos de registro

  5. Cómo rotar archivos de registro de Apache en Linux

Cómo hacer una copia de seguridad de archivos y directorios usando Rsync en Linux

Cómo sincronizar archivos de dos vías usando Osync Script en Linux

Cómo ver los archivos de registro de Nginx en Linux

Cómo ver los archivos de registro de Apache en Linux

Cómo copiar archivos en Linux usando el comando CP

Cómo configurar y administrar la rotación de registros usando Logrotate en Linux