Los archivos de registro son los más importantes para la seguridad del sistema Linux. la herramienta logrotate está especialmente diseñada para simplificar la administración de archivos de registro en un sistema Linux que permite la rotación, compresión, eliminación y envío automáticos de archivos de registro. Puede configurar fácilmente logrotate para manejar un archivo de registro diario, semanal o mensual. El programa logrotate solía rotar los archivos de registro eliminando los más antiguos de su sistema y creando nuevos archivos de registro.
En este tutorial, explicaré cómo usar logrotate para administrar registros en el servidor Ubuntu 18.04.
Requisitos
- Un servidor que ejecuta el servidor Ubuntu 18.04.
- Un usuario no root con privilegios sudo.
Instalar Logrotate
De forma predeterminada, logrotate está disponible en el servidor Ubuntu 18.04 LTS. De lo contrario, puede instalarlo ejecutando el siguiente comando:
sudo apt-get install logrotate -y
Una vez que se haya instalado logrotate, puede verificar la versión de logrotate usando 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
De forma predeterminada, el archivo de configuración principal de logrotate logrotate.conf se encuentra en /etc/logrotate.conf. Otros archivos de configuración están disponibles en /etc/logrotate.d. Puede enumerarlos 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:
faltaok :No generar un error si falta el registro
semanal :rota los archivos de registro una vez por semana
crear :El archivo antiguo se guarda con un nombre nuevo y se crea un archivo nuevo
comprimir :logrotate comprime archivos de registro usando gzip para ahorrar espacio
girar
notificarvacío :No gire el archivo de registro cuando esté vacío
De manera predeterminada, logrotate se ejecuta diariamente al ejecutar el script de shell /etc/cron.daily/logrotate. Probemos la 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
De forma predeterminada, logrotate se ejecuta como un trabajo cron diario. Puede consultar /etc/cron.daily/logrotate para obtener más información sobre el trabajo cron. También puede configurar el trabajo cron para logrotate para que se ejecute cada hora, semana y año.