Cómo instalar y utilizar logrotate para gestionar los archivos de registro en Ubuntu 18.04 LTS

Los archivos de registro son muy importantes para la seguridad del sistema Linux. La herramienta logrotate está especialmente diseñada para simplificar la administración de los archivos de registro en un sistema Linux, y permite la rotación, compresión, eliminación y envío automático de los archivos de registro. Puedes configurar fácilmente logrotate para que gestione un archivo de registro de forma diaria, semanal o mensual. El programa logrotate sirve para rotar los archivos de registro eliminando los más antiguos de tu sistema y creando nuevos archivos de registro.

En este tutorial, explicaré cómo utilizar logrotate para gestionar los registros en el servidor Ubuntu 18.04.

Requisitos

  • Un servidor con Ubuntu 18.04 server.
  • Un usuario no root con privilegios sudo.

Instalar Logrotate

Por defecto, logrotate está disponible en el servidor de Ubuntu 18.04 LTS. Si no es así, puedes instalarlo ejecutando el siguiente comando:

sudo apt-get install logrotate -y

Una vez instalado logrotate, puedes comprobar la versión de logrotate con el siguiente comando:

sudo logrotate

Salida:

logrotate 3.11.0 - Copyright (C) 1995-2001 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License

Usage: logrotate [-dfv?] [-d|--debug] [-f|--force] [-m|--mail=command]
        [-s|--state=statefile] [-v|--verbose] [-l|--log=STRING] [--version]
        [-?|--help] [--usage] [OPTION...] 

Configurar Logrotate

Por defecto, el archivo de configuración principal de logrotate, logrotate.conf, se encuentra en /etc/logrotate.conf. Hay otros archivos de configuración en /etc/logrotate.d. Puedes listarlos con el siguiente comando:

ls /etc/logrotate.d

Salida:

alternatives  apport  dpkg  mysql-server  rsyslog  unattended-upgrades
apache2       apt     lxd   openproject   ufw

Las principales opciones de logrotate se enumeran a continuación:

missingok: No genera un error si falta el registro

semanal: rota los archivos de registro una vez a la semana

crear: El archivo antiguo se guarda con un nuevo nombre y se crea un nuevo archivo

comprimir: logrotate comprime los archivos de registro utilizando gzip para ahorrar espacio

rotar 4: logrotate rota un registro determinado cuatro veces antes de borrarlo, por lo que mantiene cuatro semanas de registros en línea

Notificar-Vacío: No rotar el archivo de registro cuando está vacío

Por defecto, logrotate se ejecuta diariamente mediante el script /etc/cron.daily/logrotate. Vamos a probar el logrotation de apache ejecutando el siguiente comando:

sudo logrotate -d /etc/logrotate.d/apache2

Salida:

reading config file /etc/logrotate.d/apache2
Reading state from file: /var/lib/logrotate/status
Allocating hash table for state file, size 64 entries

Handling 1 logs

rotating pattern: /var/log/apache2/*.log  after 1 days (14 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/apache2/access.log
Creating new state
  Now: 2018-10-11 16:04
  Last rotated at 2018-10-11 16:00
  log does not need rotating (log has been already rotated)
considering log /var/log/apache2/error.log
Creating new state
  Now: 2018-10-11 16:04
  Last rotated at 2018-10-11 16:00
  log does not need rotating (log has been already rotated)
considering log /var/log/apache2/other_vhosts_access.log
Creating new state
  Now: 2018-10-11 16:04
  Last rotated at 2018-10-11 16:00
  log does not need rotating (log has been already rotated)
not running prerotate script, since no logs will be rotated
not running postrotate script, since no logs were rotated

Por defecto, logrotate se ejecuta como una tarea cron diaria. Puedes consultar /etc/cron.daily/logrotate para obtener más información sobre el trabajo cron. También puedes configurar la tarea cron para que logrotate se ejecute cada hora, cada semana y cada año.

También te podría gustar...