Suivant: , Précédent: , Monter: Services   [Table des matières][Index]


12.9.3 Rotation des journaux

Les fichiers journaux comme ceux qui se trouvent dans /var/log ont tendance à grandir sans fin, donc c’est une bonne idée de le faire tourner de temps à autres — c.-à-d. archiver leur contenu dans des fichiers séparés, potentiellement compressés. Le module (gnu services admin) fournit une interface pour GNU Rot[t]log, un outil de rotation de journaux (voir GNU Rot[t]log Manual).

Ce service fait partie de %base-services, et se trouve donc activé par défaut, avec les paramètres par défaut, pour les fichiers journaux les plus fréquemment rencontrés. L’exemple ci-dessous montre comment l’étendre avec une rotation supplémentaire, si vous devez le faire (généralement, les services qui produisent des fichiers journaux s’en chargent déjà) :

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

(define my-log-files
  ;; Journaux que je veux faire tourner.
  '("/var/log/something.log" "/var/log/another.log"))

(operating-system
  ;; …
  (services (cons (simple-service 'rotate-my-stuff
                                  rottlog-service-type
                                  (list (log-rotation
                                         (frequency 'daily)
                                         (files my-log-files))))
                  %base-services)))
Variable Scheme : rottlog-service-type

C’est le type du service Rotlog, dont la valeur est un objet rottlog-configuration.

D’autres services peuvent étendre celui-ci avec de nouveaux objets log-rotation (voir plus bas), en augmentant ainsi l’ensemble des fichiers à faire tourner.

Ce type de service peut définir des tâches (voir Exécution de tâches planifiées) pour lancer le service rottlog.

Type de données : rottlog-configuration

Type de données représentant la configuration de rottlog.

rottlog (par défaut : rottlog)

Le paquet Rottlog à utiliser.

rc-file (par défaut : (file-append rottlog "/etc/rc"))

Le fichier de configuration Rottlog à utiliser (voir Mandatory RC Variables dans GNU Rot[t]log Manual).

rotations (par défaut : %default-rotations)

Une liste d’objets log-rotation définis plus bas.

jobs

C’est une liste de gexps où chaque gexp correspond à une spécification de tâche de mcron (voir Exécution de tâches planifiées).

Type de données : log-rotation

Type de données représentant la rotation d’un groupe de fichiers journaux.

En reprenant un exemple du manuel de Rottlog (voir Period Related File Examples dans GNU Rot[t]log Manual), on peut définir la rotation d’un journal de cette manière :

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

La liste des champs est la suivante :

frequency (par défaut : 'weekly)

La fréquence de rotation, un symbole.

files

La liste des fichiers ou des motifs de noms de fichiers à faire tourner.

options (par défaut : '())

La liste des options de rottlog pour cette rotation (voir Configuration parameters dans GNU Rot[t]lg Manual).

post-rotate (par défaut : #f)

Soit #f, soit une gexp à exécuter une fois la rotation terminée.

Variable Scheme : %default-rotations

Spécifie la rotation hebdomadaire de %rotated-files et de /var/log/guix-daemon.log.

Variable Scheme : %rotated-files

La liste des fichiers contrôlés par syslog à faire tourner. Par défaut il s’agit de : '("/var/log/messages" "/var/log/secure" "/var/log/debug" \ "/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 (voir Invoquer guix-daemon). The log-cleanup service addresses this use case. For example, %base-services (voir Services de 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 (voir Exécution de tâches planifiées).


Suivant: , Précédent: , Monter: Services   [Table des matières][Index]