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.