Next: , Previous: , Up: Servicios   [Contents][Index]


12.9.3 Rotación del registro de mensajes

Los archivos de registro como los encontrados en /var/log tienden a crecer indefinidamente, de modo que es buena idea llevar a cabo una rotación de vez en cuando—es decir, archivar su contenido en archivos distintos, posiblemente comprimidos. El módulo (gnu services admin) proporciona una interfaz con GNU Rot[t]log, una herramienta de rotación de registros (see GNU Rot[t]log Manual).

Este servicio es parte de %base-services, y por lo tanto se activa de manera predeterminada, con la configuración predeterminada, para archivos de registro que se pueden encontrar habitualmente. El siguiente ejemplo muestra como extenderlo con una rotación adicional, en caso de que deba hacerlo (habitualmente los servicios que producen archivos de registro ya lo hacen ellos mismos):

(use-modules (guix) (gnu))
(use-service-modules admin)

(define mis-archivos-de-registro
  ;; Archivos que deseo rotar.
  '("/var/log/un-archivo.log" "/var/log/otro.log"))

(operating-system
  ;; …
  (services (cons (simple-service 'rota-mis-cosas
                                  rottlog-service-type
                                  (list (log-rotation
                                         (frequency 'daily)
                                         (files mis-archivos-de-registro))))
                  %base-services)))
Variable Scheme: rottlog-service-type

Este es el tipo del servicio Rottlog, cuyo valor es un objeto rottlog-configuration.

Otros servicios pueden extenderlo con nuevos objetos log-rotation (véase a continuación), aumentando de dicho modo el conjunto de archivos a rotar.

Este servicio puede definir trabajos de mcron (see Ejecución de tareas programadas) para ejecutar el servicio rottlog.

Tipo de datos: rottlog-configuration

Tipo de datos que representa la configuración de rottlog.

rottlog (predeterminado: rottlog)

El paquete Rottlog usado.

rc-file (predeterminado: (file-append rottlog "/etc/rc"))

El archivo de configuración de Rottlog usado (see Mandatory RC Variables in GNU Rot[t]log Manual).

rotations (predeterminadas: %default-rotations)

Una lista de objetos log-rotation como se define a continuación.

jobs

Esta es una lista de expresiones-G donde cada expresión-G corresponde a una especificación de trabajo de mcron (see Ejecución de tareas programadas).

Tipo de datos: log-rotation

Tipo de datos que representa la rotación de un grupo de archivos de log.

Tomando el ejemplo del manual de Rottlog (see Period Related File Examples in GNU Rot[t]log Manual), una rotación de registros se podría definir de esta manera:

(log-rotation
  (frequency 'daily)
  (files '("/var/log/apache/*"))
  (options '("storedir apache-archives"
             "rotate 6"
             "notifempty"
             "nocompress")))

La lista de campos es como sigue:

frequency (predeterminada: 'weekly)

La frecuencia de rotación de logs, un símbolo.

files

La lista de archivos o patrones extendidos de archivo a rotar.

options (predeterminadas: '())

La lista de opciones de rottlog para esta rotación (see Configuration parameters in GNU Rot[t]log Manual).

post-rotate (predeterminado: #f)

O bien #f, o bien una expresión-G que se ejecutará una vez la rotación se haya completado.

Variable Scheme: %default-rotations

Especifica la rotación semanal de %rotated-files y de /var/log/guix-daemon.log.

Variable Scheme: %rotated-files

La lista de archivos controlados por syslog que deben ser rotados. De manera predeterminada es '("/var/log/messages" "/var/log/secure" "/var/log/maillog").

Some log files just need to be deleted periodically once they are old, without any other criterion and without any archival step. This is the case of build logs stored by guix-daemon under /var/log/guix/drvs (see Invocación de guix-daemon). The log-cleanup service addresses this use case. For example, %base-services (see Servicios base) includes the following:

;; Periodically delete old build logs.
(service log-cleanup-service-type
         (log-cleanup-configuration
          (directory "/var/log/guix/drvs")))

That ensures build logs do not accumulate endlessly.

Scheme Variable: log-cleanup-service-type

This is the type of the service to delete old logs. Its value must be a log-cleanup-configuration record as described below.

Data Type: log-cleanup-configuration

Data type representing the log cleanup configuration

directory

Name of the directory containing log files.

expiry (default: (* 6 30 24 3600))

Age in seconds after which a file is subject to deletion (six months by default).

schedule (default: "30 12 01,08,15,22 * *")

String or gexp denoting the corresponding mcron job schedule (see Ejecución de tareas programadas).

Anonip Service

Anonip is a privacy filter that removes IP address from web server logs. This service creates a FIFO and filters any written lines with anonip before writing the filtered log to a target file.

The following example sets up the FIFO /var/run/anonip/https.access.log and writes the filtered log file /var/log/anonip/https.access.log.

(service anonip-service-type
         (anonip-configuration
           (input  "/var/run/anonip/https.access.log")
           (output "/var/log/anonip/https.access.log")))

Configure your web server to write its logs to the FIFO at /var/run/anonip/https.access.log and collect the anonymized log file at /var/web-logs/https.access.log.

Data Type: anonip-configuration

This data type represents the configuration of anonip. It has the following parameters:

anonip (default: anonip)

The anonip package to use.

input

The file name of the input log file to process. The service creates a FIFO of this name. The web server should write its logs to this FIFO.

output

The file name of the processed log file.

The following optional settings may be provided:

skip-private?

When #true do not mask addresses in private ranges.

column

A 1-based indexed column number. Assume IP address is in the specified column (default is 1).

replacement

Replacement string in case address parsing fails, e.g. "0.0.0.0".

ipv4mask

Number of bits to mask in IPv4 addresses.

ipv6mask

Number of bits to mask in IPv6 addresses.

increment

Increment the IP address by the given number. By default this is zero.

delimiter

Log delimiter string.

regex

Regular expression for detecting IP addresses. Use this instead of column.


Next: , Previous: , Up: Servicios   [Contents][Index]