Como hemos mencionado anteriormente, la mayoría de los directorios en Linux tienen un propósito específico. Uno de los más interesantes es /var/log. Este directorio alberga por defecto los registros de actividad de los servicios del sistema. Por eso, es en este directorio donde podemos encontrar los datos necesarios para examinar y diagnosticar el comportamiento actual y pasado del sistema. Por otro lado, para evitar que estos archivos crezcan sin límite utilizamos la rotación de logs. La herramienta clásica para realizar esta tarea en Linux es logrotate, la cual se encuentra presente por defecto en la mayoría (si no todas) las distribuciones modernas.
Rotación de logs en Linux
Cuando hablamos de rotación de logs, nos referimos a lo siguiente:
- Determinar el tamaño máximo permitido para un archivo de log.
- Cuando se alcanza dicho tamaño, borrar el archivo (otras opciones consisten en renombrarlo o comprimirlo) y crear uno nuevo.
- Especificar por cuánto tiempo deseamos mantener los registros, ya sea comprimidos o no.
Con esta descripción aproximada de lo que tenemos por delante podemos continuar con nuestra explicación. En la Fig. 1 vemos el contenido de /var/log en un equipo con CentOS 7:
En la imagen de arriba podemos ver:
- Subdirectorios (en azul). Los mismos contienen archivos de logs del servicio que describen. Por ejemplo, mariadb contiene logs del servidor de bases de datos.
- Archivos de logs actuales (por ejemplo, cron, messages, secure, etc) y antiguos (nombre seguido de una fecha en formato aaaammdd). Otras distribuciones por lo general comprimen los archivos antiguos y les colocan un número identificatorio. Por ejemplo, cron.1.gz y cron.2.gz serían dos logs de cron antiguos (siendo la fecha de creación del primero más reciente que la del segundo).
En el próximo post aprenderemos cómo configurar logrotate para que al realizar la rotación de logs renombre el archivo o lo comprima. También explicaremos la manera de indicar el tamaño máximo de un log y cada cuánto tiempo rotarlo.
¡Nos leemos en breve!