En el post anterior hablamos de la rotación de logs en Linux. También mencionamos que disponemos de una herramienta llamada logrotate para realizarla de manera automática. Para empezar este post, mostraremos cómo utilizar logrotate para asegurarnos de que nuestros logs sean administrados de manera eficaz.
¿Cómo utilizar logrotate?
Es importante aclarar que logrotate no es una solución mágica que realiza la rotación de logs para todos los servicios del sistema. Por otra parte, si bien esta solución se encarga de rotar /var/log/wtmp y /var/log/btmp por defecto, el administrador puede agregar otros servicios mediante bloques de configuración.
Los archivos /var/log/wtmp y /var/log/btmp registran los eventos de inicios de sesión correctos y fallidos, respectivamente. Por defecto, al utilizar logrotate se rotarán los logs que se encuentren dentro de /var/log. Para hacer lo mismo con los archivos dentro de los subdirectorios tendremos que configurar la rotación manualmente.
Tanto el archivo de configuración (/etc/logrotate.conf o aquellos en /etc/logrotate.d) como el man page proveen información sumamente útil. Las siguientes directivas pueden utilizarse de manera global o particular para un servicio dado:
- compress: comprimir el log que se va a rotar.
- compresscmd: especifica la herramienta de compresión. Por defecto se utiliza gzip.
- dateext: en vez de comprimir, renombrar el log antiguo.
- dateformat: indicar el formato de fecha a utilizar junto con la directiva anterior.
- daily, weekly, o monthly: realizar la rotación una vez por mes, por semana, o por mes.
- notifempty: no rotar el log si el archivo está vacío.
- size: no rotar el log hasta que haya alcanzado por lo menos el tamaño indicado (más detalles en el próximo post).
- rotate: el número que le sigue indica cuántos logs deben conservarse luego de haber renombrado o comprimido otros anteriores.
- create: permite especificar los permisos (en forma octal), junto con el dueño y grupo propietario de cada nuevo archivo de log creado por la rotación.
Detalles sobre directivas
Las directivas locales tienen precedencia sobre las globales. Si hubiese un conflicto entre una misma directiva especificada dos veces (por error), la segunda toma precedencia sobre la primera. Por una cuestión de prolijidad, es preferible utilizar /etc/logrotate.d para guardar archivos de configuración de logrotate que sean específicos a un servicio dado. En la Fig. 1 mostramos el contenido de /etc/logrotate.d en un sistema CentOS 7:
Teniendo estos puntos en claro podremos configurar la rotación de logs para un servicio dado en el próximo post. ¡Hasta entonces!