Logrotate, rotado automático de logs en Linux

Una de las tareas más importantes de un administrador de sistemas es la correcta gestión de los logs que se generan. Almacenar información que nos permita descubrir un error es importante, pero esa información no debe terminar por saturar nuestros sistemas.

Y una de las herramientas que nos van a permitir cumplir ese objetivo es logrotate, esta utilidad en linux nos permite rotar, comprimir y renovar los ficheros de log de forma automatizada. En este post voy a exponer algunos ejemplos que yo utilizo para este cometido, pero desde «man logrotate» tenéis información adicional para adaptar la configuración a vuestras necesidades.

El fichero principal de configuración está accesible por defecto en /etc/logrotate.conf

$ cat /etc/logrotate.conf
weekly
rotate 4
create
include /etc/logrotate.d
/var/log/mail {
    daily
    size 1M
    create 0664 root utmp
    rotate 1
}

El directorio /etc/logrotate.d/ contiene ficheros de configuración de otras aplicaciones instaladas en el sistema, como Apache (httpd) por ejemplo. Y allí podéis crear vuestro propio fichero para ejecutar la rotación de logs.

Así la configuración básica, incluye una ruta, seguida de llaves, donde se incluye la configuración que se quiere para el rotado de logs en esa ruta.

A través de las opciones daily, weekly, monthly, yearly se le indica cada cuanto tiempo se debe ejecutar el rotado. Así si elegimos weekly, una vez a la semana se hará el rotado del fichero indicado.

Rotar cuando se alcanza un determinado tamaño de fichero

/var/log/mail.log {
        size 1M
        rotate 4
}

Con la opción size se le indica a partir de que tamaño deber rotar, si el fichero no ha alcanzado el tamaño, en nuestro ejemplo 1 mega, el fichero no será rotado.

Entre las opciones más destacadas encontramos rotate, seguido de un número entero, le indica cuantos ficheros debemos conservar. Una vez alcanzado ese número se borrará el más antiguo.

Otra opción interesante es copytruncate, que realiza una copia del fichero original y luego vacia el fichero para que los procesos que estaban trabajando con ese fichero puedan seguir haciéndolo a pesar de la rotación.

Y la otra opción, que casi diría que es fija para la mayoría de administradores, es poder comprimir los logs una vez realizada la rotación para reducir espacio. Esta opción se indica con compress. Una última opción que puede ser de mucha utilidad es missingok, que evita retornar un error en caso de que se produzca.

Así una configuración básica que rotase todos los logs dentro del directorio /var/log/ cuando alcancen el mega de tamaño, manteniendo 5 rotados y comprimiendo los antiguos, quedaría así:

/var/log/*.log {
        size 1M
        copytruncate
        rotate 5
        compress
        missingok
}

Para ejecutar el comando manualmente haríamos lo siguiente:

logrotate -vf /etc/logrotate.conf

La tecnología y la productividad

Mucho se habla de que es necesario mejorar la productividad en la empresa española, que a pesar de ser donde los trabajadores asumen un mayor horario laboral, su productividad es de las más bajas. Uno de los primeros factores que sería prudente analizar, a la hora de poner fin a esa mala productividad, son los recursos tecnológicos con los que se cuenta. Por experiencia puedo decir que muchas de las empresas que conozco tienen un déficit tecnológico importante, y así es dificil competir.

Y para confirmar lo que ya suponía, un reciente estudio de Dimension Data expone que un usuario promedio de Tecnologías de la Información estaría desperdiciando hasta 2 horas mensuales por los problemas con sus sistemas informáticos. En la práctica suponen unos tres días al año por trabajador en los que la productividad es nula.

En el mismo estudio se informa de que el 30% de los usuarios informan sobre frecuentes caidas de sus sistemas informáticos y lentitud en la ejecución del software con el que trabajan. A esto hay que añadirle la experiencia del usuario y sus conocimientos. Y todo junto puede ser una bomba dentro de la empresa.

En los tiempos que corren, escatimar en recursos, con el fin de ahorrar gastos, parece lo más lógico a priori. Aunque si lo pensamos detenidamente veremos que podemos llegar a otra conclusión. Una buena planificación a la hora de crear el sistema informático de la empresa es lo más importante. Conociendo a la perfección las necesidades reales será mucho más facil definir que se necesita realmente.

En muchas ocasiones me he encontrado empresas cuyo eje central de su negocio estaba la información que manejaban, y aun así mantenían a sus trabajadores con sistemas totalmente obsoletos y configuraciones que no facilitaban el trabajo colaborativo.

Aunque cada caso es un mundo y para cada situación es necesaria una solución específica, en terminos generales hay que tener en cuenta para seguir manteniendo las ventajas que aporta la tecnología:

  • Vida de un ordenador: situaría la vida media de un ordenador en la empresa en unos 4 años, por ello es recomendable cuando se realiza la inversión de adquisición tener en cuenta una ampliación de garantía que nos evitará quebraderos de cabeza futuros.
  • Conectividad: dentro de este apartado debe tenerse en cuenta la conexión a Internet y la red local. Para la conexión a Internet es necesario valorar las necesidades de uso de todo el personal (envío de archivos, descargas, etc). En la red local las necesidades actuales y las previsiones de crecimiento.
  • Configuración de la red: este apartado es de los menos valorados, pero una correcta configuración de la misma, nos permitirá una correcta salvagurada de los datos, la posibilidad de movilidad de puestos de trabajo y el uso de herramientas colaborativas.
  • Uso de software libre: siempre que sea posible deberá optarse por esta vía. Por un lado ayudará a la reducción de costes y por el otro permitirá cualquier adaptación que sea necesaria.

A pesar de que realicemos una previsión importante en sistemas, si nuestro personal desconoce las herramientas con las que trabaja no habremos solucionado nada. Por eso es necesaria una contínua formación en las herramientas con las que desempeñas sus labores diarias.

Por experiencia, puedo asegurar que una buena combinación de ambos factores derivará en un aumento espectacular de la productividad. Ahora bién, a estas medidas hay que sumar un ambiente laboral cómodo, que ayude al trabajador a afrontar con ganas su jornada laboral. Y aunque no soy partidario del teletrabajo, no al menos en su totalidad, si que defiendo que una parte de la jornada sea como teletrabajo para aquellos trabajadores que así lo decidan.