
Logrotate Ubuntu Tutorial

En el mundo de la programación y la administración de sistemas, es importante tener control sobre los registros/logs generados por los distintos programas y servicios. Para lograr esto, una herramienta muy útil es Logrotate, que nos permite automatizar la rotación de logs, comprimirlos y eliminar los que ya no son necesarios. En este tutorial, aprenderás cómo instalar y configurar Logrotate en un servidor Ubuntu.
¿Qué es Logrotate?
Logrotate es una herramienta gratuita que viene preinstalada en la mayoría de las distribuciones Linux, incluyendo Ubuntu. Esta herramienta nos permite automatizar la rotación de logs, comprimirlos y eliminar los que ya no son necesarios. Gracias a su configuración, podemos mantener los registros controlados y optimizar el espacio en nuestro sistema. Además, Logrotate nos permite definir reglas específicas para cada log y así asegurarnos de que se manejen de la forma que deseamos.
Instalación
Para instalar Logrotate en Ubuntu, simplemente debemos utilizar el siguiente comando:
sudo apt-get install logrotate
Una vez instalado, verificamos que el servicio está en ejecución con el siguiente comando:
systemctl status logrotate.service
Configuración
La configuración de Logrotate se realiza a través del archivo /etc/logrotate.conf. En este archivo encontraremos la configuración global de Logrotate, además de una serie de directivas que nos permiten definir la rotación para cada log específico.
Para configurar la rotación de un log específico, debemos crear un archivo en la carpeta /etc/logrotate.d/, con un nombre que indique el nombre del log. Por ejemplo, para configurar la rotación del log de Apache, creamos un archivo llamado apache2 en la carpeta /etc/logrotate.d/.
Dentro de cada archivo de configuración, podemos definir distintas opciones, como la frecuencia de rotación, el número de backups a mantener, la compresión del archivo, entre otros. Para conocer todas las opciones disponibles, podemos revisar el manual de Logrotate con el siguiente comando:
man logrotate
Ejemplos de configuración
A continuación, se presentan dos ejemplos de configuración para los logs de Apache y MySQL:
Apache
En el archivo /etc/logrotate.d/apache2, definimos la siguiente configuración para rotar los logs de Apache:
/var/log/apache2/*.log {
weekly
missingok
rotate 4
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
}
Con esta configuración, se rotarán los logs de Apache cada semana, manteniendo hasta 4 backups comprimidos, y creando un nuevo archivo vacío después de la rotación.
MySQL
Para el log de MySQL, definimos la siguiente configuración en el archivo /etc/logrotate.d/mysql-server:
/var/log/mysql/*.log {
weekly
missingok
rotate 7
compress
delaycompress
notifempty
create 664 mysql adm
sharedscripts
postrotate
test -e /usr/share/mysql/mysql-server.postinst -a ! -e /etc/mysql/debian.cnf || /usr/share/mysql/mysql-server.postinst configure
endscript
}
Con esta configuración, se rotarán los logs de MySQL cada semana, manteniendo hasta 7 backups comprimidos, y creando un nuevo archivo vacío después de la rotación.
Conclusión
Logrotate es una herramienta muy útil para mantener los registros/logs controlados y optimizar el espacio en nuestro sistema. Con una configuración adecuada, podemos automatizar la rotación, compresión y eliminación de los logs que ya no son necesarios. Esperamos que este tutorial te haya sido útil para instalar y configurar Logrotate en Ubuntu.
Preguntas frecuentes
¿Qué es un log en programación?
Un log en programación es un archivo que contiene una lista de eventos o acciones que ha realizado un programa o servicio. Esta información es muy útil para debuggear problemas y para tener una historia de las acciones que se han realizado en un sistema.
¿Por qué es importante rotar los logs?
Rotar los logs es importante para mantener el control sobre el espacio en nuestro sistema y para evitar que el log crezca de forma descontrolada. Además, rotar los logs con cierta frecuencia nos permite tener una historia de actividades reciente.
¿Puedo configurar Logrotate para que envíe notificaciones por correo electrónico después de una rotación?
Sí, puedes configurar Logrotate para que envíe notificaciones por correo electrónico después de una rotación añadiendo la directiva mail
en la configuración de cada archivo de log que quieras enviar notificaciones. Por ejemplo:
/var/log/mysql/*.log {
weekly
missingok
rotate 7
compress
delaycompress
notifempty
create 640 mysql adm
sharedscripts
postrotate
test -x /usr/bin/mysqladmin &&
/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping &&
/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf flush-logs >/dev/null
endscript
mail root
}
¿Cómo elimino un log específico que no está siendo manejado por Logrotate?
Puedes eliminar un log específico que no está siendo manejado directamente por Logrotate utilizando el siguiente comando:
rm /ruta/al/log
Deja una respuesta