Cargando



Cómo administrar Logs de archivos Linux con lograte

En este tutorial te damos los pasos y todas las configuraciones para saber cómo administrar Logs de archivos Linux con lograte


nov 20 2017 19:15
Profesional
Total de Apartados : 5
nov 24 2017 10:53

Las distribuciones de Linux son ideales para cualquier tipo de entorno corporativo gracias a su capacidad de adaptación a nuevas funciones y nuevos roles y, lo mejor de todo, de forma gratuita gracias al código libre.

 

Contamos con miles de aplicaciones o utilidades diseñadas para un control centralizado sobre todos los aspectos del sistema y de este modo, como administradores o personal IT, saber con certeza cuando se produce una falla y saber cómo solucionarla.

 

Dentro de este amplio abanico de posibilidades encontramos Logrotate la cual es una utilidad propia de la distribución y su función es la rotación y compresión de los archivos de registro.

 

Esta tarea es importante ya que, al no tomar acción alguna sobre estos archivos, el espacio en el disco duro puede verse afectado conduciendo a otro tipo de errores generales.

 

Para este caso usaremos Ubuntu 17.10 y Logrotate viene instalada por defecto y ya está configurada para administrar las tareas de rotación de registros de todos los paquetes instalados, incluido rsyslog, el procesador de registro del sistema predeterminado.

 

A continuación, veremos cómo instalar y usar esta valiosa utilidad.

 

 


1. Identificar la versión de Logrotate instalada Linux


El primer paso a dar consiste en conocer en detalle cual es la versión que tenemos de Logrotate en, este caso, Ubuntu 17.10. Para ello ejecutamos el siguiente comando:
logrotate –version
El resultado será el siguiente:

 

 

 

Si Logrotate no está instalado, obtendremos un error. Podemos instalar la herramienta haciendo uso del administrador de paquetes de la distribución Linux usada.

 

Si Logrotate está instalado pero el número de versión es significativamente diferente, es posible que tengamos problemas con algunas de las configuraciones de la utilidad. Podemos consultar la documentación de la versión específica de Logrotate directamente en su página man:

man logrotate
Podremos ver la estructura de configuración predeterminada de Logrotate en la distro de Linux:

 

 

 

 


2. Configuración de Logrotate Linux


La información de configuración de Logrotate generalmente se puede encontrar en dos lugares en el caso de Ubuntu:

 

etc/logrotate.conf
Este archivo contiene algunas configuraciones predeterminadas y configura la rotación para algunos registros que no son propiedad de ningún paquete del sistema. También hace uso de una declaración de inclusión para obtener configuración desde cualquier archivo en el directorio /etc/logrotate.d.

 

/etc/logrotate.d/
En este directorio es donde cualquier paquete que instalemos y necesite ayuda con la rotación de registros colocará su configuración Logrotate. En una instalación estándar, ya deben existir archivos aquí para las herramientas básicas del sistema, como apt, dpkg, rsyslog, etc.

 

Por defecto, logrotate.conf configurará rotaciones de registros semanales (weekly), con archivos de registro propiedad del usuario raíz y el grupo syslog (su root syslog), con cuatro archivos de registro que se conservan (rotate 4) y se crean nuevos archivos de registro vacíos. creado después de que el actual se gira (create).

 

Podremos acceder al archivo de configuración de Logrotate de un paquete en /etc/logrotate.d usando la utilidad cat:

cat /etc/logrotate.d/apt

 

Este archivo contiene bloques de configuración para dos archivos de registro diferentes en el directorio /var/log/apt/: term.log e history.log. Ambos cuentan con las mismas opciones.

 

Cualquier opción que no esté configurada en estos bloques de configuración heredará los valores predeterminados o aquellos establecidos en /etc/logrotate.conf. Las opciones configuradas para los registros de apt son:

 

rotate 12
Conserva doce archivos de registro antiguos.

 

Monthly
Rota una vez al mes.

 

Compress
Se encarga de comprimir los archivos girados. Esto hace uso de gzip por defecto y da como resultado archivos que terminan en la extensión .gz. El comando de compresión se puede cambiar utilizando la opción compresscmd.

 

missingok
No escribe un mensaje de error si falta el archivo de registro.

 

notifempty
No rota el archivo de registro si está vacío.

 

Hay muchas más opciones de configuración disponibles.

 

 


3. Configuración de un servicio Logrotate Linux y agregar configuración a /etc/logrotate.d/


A continuación, configuraremos un archivo de configuración para manejar los registros de un servicio que crearemos.

 

Para administrar los archivos de registro para aplicaciones fuera de los servicios del sistema preempaquetados y preconfigurados, contamos con dos opciones:

  • Crear un nuevo archivo de configuración Logrotate y ubicarlo en la ruta /etc/logrotate.d/. Este se ejecutará diariamente como el usuario root junto con todos los demás trabajos estándar de Logrotate.
  • Crear un nuevo archivo de configuración y ejecutarlo fuera de la configuración de Logrotate predeterminada de Ubuntu. Esto solo es necesario si debemos ejecutar Logrotate como usuario no root, o si desea rotar registros con más frecuencia que a diario (una configuración por hora en /etc/logrotate.d/ no sería efectiva, porque la configuración de Logrotate del sistema solo se ejecuta una vez al día).

 

En este caso deseamos configurar la rotación de registros para un servidor web que pone un access.log y error.log en la ruta /var/log/solvetic-app/. Se ejecutará como el usuario y grupo de www-data.

 

Para agregar alguna configuración a /etc/logrotate.d/, primero debemos abrir un nuevo archivo de la siguiente forma:

sudo nano /etc/logrotate.d/solvetic-app
allí agregaremos las siguientes líneas:
/var/log/solvetic-app/*.log { daily missingok rotate 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate systemctl reload solvetic-app endscript}

 

Podemos guardar los cambios usando la combinación de teclas Ctrl + O y salimos del editor usando Ctrl + X.

 

Algunas de las nuevas directivas de configuración en este archivo son:

 

create 0640 www-data www-data
Este parámetro crea un nuevo archivo de registro vacío después de la rotación, con los permisos especificados (0640), el propietario (www-data) y el grupo (también www-data).

 

sharedscripts
Este indicador indica que los scripts agregados a la configuración se ejecutan solo una vez por ejecución, en lugar de para cada archivo girado.

 

postrotate a endscript
Este bloque contiene una secuencia de comandos para ejecutar después de que se gira el archivo de registro. En este caso, podemos recargar nuestro archivo solvetic-app. Esto a veces es necesario para que la aplicación cambie al archivo de registro recién creado.

 

Debemos tener en cuenta las ejecuciones postrotate antes de que se comprueben los registros. La compresión podría llevar mucho tiempo y el software debería cambiar al nuevo archivo de registro de inmediato. Para las tareas que deben ejecutarse después de comprimir los registros, use el bloque lastaction en su lugar.

 

Después de personalizar la configuración que más se ajuste a nuestras necesidades y hayan sido guardadas en /etc/logrotate.d, podemos comprobarla haciendo ejecutando la siguiente línea.

sudo logrotate /etc/logrotate.conf –debug
Esto llama a logrotate, señala al archivo de configuración estándar y activa el modo de depuración:

 

 

 

Se imprimirá información sobre qué archivos de registro estamos manejando Logrotate y qué está ejecutando sobre ellos. Si todo se ve bien, hemos terminado. El trabajo estándar de Logrotate se ejecutará una vez al día e incluirá su nueva configuración.

 


4. Cómo crear una configuración de registro independiente Lograte Linux


Primero, crearemos un archivo de configuración en nuestro directorio de inicio. Podemos abrirlo con un editor de texto:
sudo nano /home/solvetic/logrotate.conf
En el nuevo archivo pegaremos lo siguiente:
/home/solvetic/logs/*.log { hourly missingok rotate 24 compress create}

 

Podemos guardar los cambios y salir del archivo.

 

Esta configuración rotará los archivos cada hora, comprimiendo y conservando veinticuatro registros antiguos y creando un nuevo archivo de registro para reemplazar el archivo rotado. Para probar que funciona de la forma correcta, podemos crear un archivo de registro ejecutando las siguientes líneas:

cd ~sudo mkdir logssudo touch logs/access.log

 

Ahora que tenemos un archivo de registro en blanco en el lugar correcto, ejecutaremos el comando logrotate.
Ejecutaremos lo siguiente:

logrotate /home/solvetic/logrotate.conf --state /home/solvetic/logrotate-state –verbose

 

El parámetro --verbose imprimirá información detallada sobre lo que estamos ejecutando con Logrotate. En este caso, veremos que no rotó nada. Esta es la primera vez que Logrotate ve este archivo de registro, y como sabemos, el archivo tiene cero horas y no debe girarse.

 

Si vemos el archivo de estado, veremos que Logrotate registró cierta información sobre la ejecución que efectuamos:

cat /home/solvetic/logrotate-state
Veremos lo siguiente:

 

 

Logrotate anotó los registros que analizo y cuándo los consideró por última vez para la rotación. Si ejecutamos este mismo comando una hora más tarde, el registro se rotará como es el objetivo. Si desea forzar que Logrotate gire el archivo de registro cuando de otro modo no debería hacerlo, podemos usar el indicador --force:

sudo logrotate /home/solvetic/logrotate.conf --state /home/solvetic/logrotate-state --verbose –force

5. Creación de una tarea programada Lograte Linux


Finalmente, debemos configurar un trabajo cron para ejecutar Logrotate cada hora. Para ello abrimos el crontab de nuestro usuario ejecutando lo siguiente:
crontab -e
En el archivo abierto añadiremos la siguiente línea:
14 * * * * /usr/sbin/logrotate /home/solvetic/logrotate.conf --state /home/solvetic/logrotate-state

 

Esta tarea se ejecutará en el minuto 14 de cada hora, todos los días. Funciona básicamente con el mismo comando logrotate que ejecutamos anteriormente, aunque expandimos logrotate a la ruta completa de /usr/sbin/logrotate. Podemos guardar el archivo usando la combinación de teclas Ctrl + O y salir del mismo usando Ctrl + X.

 

Así hemos visto como Logrotate es una utilidad simple pero eficaz a la hora de la gestión y control de registros en cualquier distribución de Linux.

 

Te explicamos todos los pasos para saber cómo administrar Logs eventos de Systemd con Journalctl Linux


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

Hola! Si no encuentras algún tutorial en el buscador de Solvetic, Solicítalo Aquí

X