Cómo configurar y utilizar logrotate para la gestión de archivos de registro en Linux

Los archivos de registro son las herramientas más valiosas disponibles para la seguridad del sistema Linux. El programa logrotate se utiliza para proporcionar al administrador un registro actualizado de los eventos que tienen lugar en el sistema. La utilidad de logrotate también se puede utilizar para hacer copias de seguridad de los archivos de registro, de manera que se puedan establecer patrones de uso del sistema. En este artículo, cubriremos los siguientes temas:

  • La configuración de logrotate
  • Configuración de los valores predeterminados para logrotate
  • El uso de la opción include para leer otros archivos de configuración
  • Establecimiento de parámetros de rotación para archivos específicos
  • Uso de la opción include para anular los valores predeterminados
Índice de Contenido
  1. El programa logrotate
  2. La configuración de logrotate
  3. El archivo /etc/logrotate.conf
  4. Configuración de valores predeterminados para logrotate
  5. Uso de la opción include
  6. Uso de include para anular los valores predeterminados
  7. Establecimiento de parámetros para un archivo específico
  8. Ejecución de logrotate

El programa logrotate

El programa logrotate es un administrador de archivos de registro. Se utiliza para rotar regularmente (o hacer una copia) de los archivos de registro, eliminando los más antiguos del sistema y creando nuevos archivos de registro. Se puede utilizar para rotar según la edad del archivo o el tamaño del archivo, y generalmente se ejecuta automáticamente a través de la utilidad cron. El programa logrotate también se puede utilizar para comprimir archivos de registro y configurar el envío de correos electrónicos a los usuarios cuando se rotan.

La configuración de logrotate

El programa logrotate se configura ingresando opciones en el archivo /etc/logrotate.conf. Este es un archivo de texto, que puede contener cualquiera de las opciones de configuración enumeradas en la tabla a continuación. Las opciones ingresadas en /etc/logrotate.conf se pueden utilizar para establecer parámetros de configuración para cualquier archivo de registro en el sistema. Estas opciones también se pueden utilizar para permitir que logrotate lea parámetros de configuración de otros archivos de registro, utilizando el parámetro include.

OpciónFunción
compressSe utiliza para comprimir el archivo de registro rotado con gzip.
nocompressSe utiliza cuando no se desea comprimir los archivos de registro rotados.
copytruncateSe utiliza cuando los procesos siguen escribiendo información en archivos de registro abiertos. Esta opción copia el archivo de registro activo a una copia de seguridad y trunca el archivo de registro activo.
nocopytruncateEsto copia los archivos de registro a la copia de seguridad, pero el archivo de registro abierto no se trunca.
create mode owner groupEsto rota el archivo de registro y crea un nuevo archivo de registro con los permisos, propietario y grupo especificados. El valor predeterminado es utilizar el mismo modo, propietario y grupo que el archivo original.
nocreateEvita la creación de un nuevo archivo de registro.
delaycompressCuando se utiliza con la opción compress, el archivo de registro rotado no se comprime hasta la siguiente rotación.
nodelaycompressEsto anula delaycompress. El archivo de registro se comprime cuando se rota.
errors addressEsto envía errores de logrotate a una dirección de correo electrónico.
ifemptyCon esto, el archivo de registro se rota incluso si está vacío. Este es el valor predeterminado para logrotate.
notifemptyEsto no rota el archivo de registro si está vacío.
mail addressEsto envía por correo electrónico los archivos de registro que se rotan a una dirección de correo electrónico. Cuando los archivos de registro por correo electrónico se rotan, se eliminan efectivamente del sistema.
nomailCuando se rotan los archivos de registro por correo electrónico, no se envía una copia por correo electrónico.
olddir directoryCon esto, se conservan los archivos de registro rotados en el directorio especificado. Este directorio debe estar en el mismo sistema de archivos que los archivos de registro actuales.
noolddirLos archivos de registro rotados se conservan en el mismo directorio que los archivos de registro actuales.
prerotate/endscriptEstas son declaraciones que contienen comandos que se ejecutarán antes de que se rote un archivo de registro. Las palabras clave prerotate y endscript deben aparecer en una línea por sí mismas.
postrotate/endscriptEstas son declaraciones que contienen comandos que se ejecutarán después de que se haya roto un archivo de registro. Las palabras clave postrotate y endscript deben aparecer en una línea por sí mismas.
dailySe utiliza para rotar los archivos de registro diariamente.
weeklySe utiliza para rotar los archivos de registro semanalmente.
monthlySe utiliza para rotar los archivos de registro mensualmente.
rotate countEspecifica la cantidad de veces que se debe rotar un archivo antes de eliminarlo. Un valor de 0 (cero) significa que no se conservan copias. Un valor de 5 significa que se conservan cinco copias.
tabootext [+] listEsto indica a logrotate que no rote los archivos con la extensión especificada. La lista predeterminada de extensiones es .rpm-orig, .rpmsave, v y ~.
size sizeCon esto, el archivo de registro se rota cuando se alcanza el tamaño especificado. El tamaño se puede especificar en bytes (valor predeterminado), kilobytes (sizek) o megabytes (sizem).

El archivo /etc/logrotate.conf

El archivo /etc/logrotate.conf es el archivo de configuración predeterminado de logrotate. El archivo /etc/logrotate.conf predeterminado instalado con Red Hat Linux se muestra a continuación:
# see “man logrotate” for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# send errors to root
errors root
# create new (empty) log files after rotating old ones
create

Cómo utilizar Isearch para buscar archivos de texto en Linux

# uncomment this if you want your log files compressed
#compress
1
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own lastlog or wtmp –we’ll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}

/var/log/lastlog {
monthly
rotate 1
}

# system-specific logs may be configured here

Configuración de valores predeterminados para logrotate

Los valores de configuración predeterminados generalmente se colocan cerca del comienzo del archivo logrotate.conf. Estos valores generalmente están vigentes en todo el sistema. Los valores predeterminados para logrotate en este sistema se establecen en las primeras 12 líneas del archivo.

La tercera línea
weekly

Guía para entender y gestionar los permisos de archivos y directorios en Linux

especifica que todos los archivos de registro se rotarán semanalmente.

La quinta línea
rotate 4

especifica que se conservarán cuatro copias de los archivos de registro antiguos antes de que se roten. La rotación se refiere a eliminar los archivos de registro más antiguos y reemplazarlos con nuevas copias.

La séptima línea
errors root

envía todos los mensajes de error de logrotate a root.

La novena línea
create

Cómo configurar un servidor Linux como puerta de enlace para una red local

configura logrotate para crear automáticamente nuevos archivos de registro. Los nuevos archivos de registro tendrán los mismos permisos, propietario y grupo que el archivo que se está rotando.

La undécima línea
#compress

evita que logrotate comprima los archivos de registro cuando se rotan. La compresión se habilita al eliminar el comentario (#) de esta línea.

Uso de la opción include

La opción include permite al administrador tomar información de rotación de archivos de registro, que puede estar instalada en varios archivos, y utilizarla en el archivo de configuración principal. Cuando logrotate encuentra la opción include en una línea en logrotate.conf, se lee la información del archivo especificado como si apareciera en /etc/logrotate.conf.

La línea 13 en /etc/logrotate.conf
include /etc/logrotate.d

indica a logrotate que se lean los parámetros de rotación de registros, que se almacenan en los archivos contenidos en el directorio /etc/logrotate.d. La opción include es muy útil cuando se instalan paquetes RPM en un sistema. Los parámetros de rotación de registros de los paquetes RPM se instalarán típicamente en el directorio /etc/logrotate.d.

Windows al alcance de Linux: Accede a recursos con smbmount y smbclient

La opción include es importante. Algunas de las aplicaciones que instalan automáticamente sus parámetros de rotación de registros en /etc/logrotate.d son apache, linuxconf, samba, cron y syslog. La opción include permite que los parámetros de cada uno de estos archivos se lean en logrotate.conf.

El uso de la opción include en /etc/logrotate.conf permite al administrador configurar una política de rotación para estos paquetes a través de un único archivo de configuración.

Uso de include para anular los valores predeterminados

Cuando se lee un archivo por /etc/logrotate.conf, los parámetros de rotación especificados en el include anularán los parámetros especificados en el archivo de logrotate. A continuación, se muestra un ejemplo de cómo se anula /etc/logrotate.conf:
#Parámetros de rotación de registros para Linuxconf
/var/log/htmlaccess.log
{ errors jim
notifempty
nocompress
weekly
prerotate
/usr/bin/chattr -a /var/log/htmlaccess.log
endscript
postrotate
/usr/bin/chattr +a /var/log/htmlaccess.log
endscript
}
/var/log/netconf.log
{ nocompress
monthly
}

En este ejemplo, cuando el archivo /etc/logrotate.d/linuxconf es leído por /etc/logrotate.conf, las siguientes opciones anularán los valores predeterminados especificados en /etc/logrotate.conf:
Notifempty
errors jim

Las opciones nocompress y weekly no anulan ninguna opción contenida en /etc/logrotate.conf.

Establecimiento de parámetros para un archivo específico

A menudo se requieren parámetros de configuración para un archivo específico. Un ejemplo común sería incluir una sección en el archivo /etc/logrotate.conf para rotar el archivo /var/log/wtmp una vez al mes y conservar solo una copia del registro. Cuando se requiere configuración específica para un archivo específico, se utiliza el siguiente formato:
#comentarios
/ruta/completa/al/archivo
{
opción(es)
}

Cómo instalar y configurar ALSA en Linux: Guía paso a paso

La siguiente entrada hará que el archivo /var/log/wtmp se rote una vez al mes, con una copia de seguridad conservada:
#Usar logrotate para rotar wtmp
/var/log/wtmp
{
monthly
rotate 1
}

Aunque la llave de apertura puede aparecer en una línea con otro texto o comandos, la llave de cierre debe estar en una línea aparte.
Uso de las opciones prerotate y postrotate
La sección de código a continuación muestra un script típico en /etc/logrotate.d/syslog. Esta sección se aplica solo a /var/log/messages. En un servidor de producción, /etc/logrotate.d/syslog probablemente contendrá entradas similares.
/var/log/messages
{
prerotate
/usr/bin/chattr -a /var/log/messages
endscript
postrotate
/usr/bin/kill -HUP syslogd
/usr/bin/chattr +a /var/log/messages
endscript
}

El formato para este script utiliza los siguientes métodos:

  • La primera línea, /var/log/messages, declara el archivo para el cual se utilizará este script.
  • Las llaves, { }, se utilizan para encerrar todo el script. Todos los comandos contenidos dentro de estas llaves se ejecutarán en el archivo /var/log/messages.
  • El comando prerotate especifica las acciones que se deben realizar antes de que se rote el archivo por logrotate.
  • El comando /usr/bin/chattr -a se ejecuta para eliminar el atributo "solo agregar" de /var/log/messages.
  • El comando endscript marca el final de la parte de prerotate de este script.
  • La siguiente línea, postrotate, especifica que los siguientes comandos se ejecutarán en /var/log/messages después de que el archivo haya sido rotado por logrotate.
  • El comando /usr/bin/killall -HUPsyslogd se ejecuta para reiniciar el demonio de registro del sistema, syslogd.
  • El siguiente comando, /usr/bin/chattr +a /var/log/messages, vuelve a asignar el atributo "solo agregar" al archivo /var/log/messages. Esto significa que el archivo solo se puede ver en modo de agregar. Esto evita que otros programas o usuarios sobrescriban el archivo.
  • El comando endscript aparece en una línea aparte y marca el final de la parte de postrotate de este script.
  • La última llave, }, marca el final de los comandos que se aplicarán al archivo /var/log/messages.

Ejecución de logrotate

Hay tres pasos involucrados en la ejecución de logrotate:

  1. Identificar los archivos de registro en su sistema.
  2. Crear horarios y parámetros de rotación para los archivos de registro.
  3. Ejecutar logrotate a través del demonio cron.

El código a continuación muestra el cronjob predeterminado enviado con Red Hat Linux para permitir que logrotate se ejecute diariamente:
#/etc/cron.daily/logrotate
#! /bin/sh

/usr/sbin/logrotate   /etc/logrotate.conf

Este cronjob permite que logrotate se ejecute diariamente con los parámetros de rotación especificados en /etc/logrotate.conf.

Consejos rápidos para la navegación de directorios en Linux: cd y pushd

Conclusión

La rotación de registros es el primer paso en la gestión de archivos de registro. La utilidad logrotate proporciona al administrador de Linux la capacidad de mantener una política de rotación de archivos de registro y conservar copias de archivos de registro para ayudar a establecer patrones relacionados con el uso del sistema. En este artículo, analizamos la instalación y configuración de logrotate, utilizamos la opción include para leer archivos de configuración relacionados con paquetes RPM y ejecutamos logrotate como un cronjob. También discutimos los métodos adecuados para reiniciar logrotate después de que se haya completado el procedimiento de rotación de registros.
Los autores y editores han tomado precauciones en la preparación del contenido aquí contenido, pero no otorgan garantía expresa o implícita de ninguna clase y no asumen responsabilidad por errores u omisiones. No se asume ninguna responsabilidad por daños. Siempre tenga una copia de seguridad verificada antes de realizar cualquier cambio.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Código abierto, allí encontraras muchos artículos similares a Cómo configurar y utilizar logrotate para la gestión de archivos de registro en Linux , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.