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 : %default-log-rotation-options)

La liste des options de rottlog pour cette rotation (voir Configuration parameters dans GNU Rot[t]log 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").

Certains fichiers journaux doivent simplement être supprimés périodiquement quand ils deviennent trop vieux, sans autre critère et sans étape d’archivage. C’est le cas des journaux de construction stockés par guix-daemon dans /var/log/guix/drvs (voir Invoquer guix-daemon). Le service log-cleanup gère ce cas. Par exemple, %base-services (voir Services de base) inclus ce qui suit :

;; Supprime régulièrement les anciens journaux de construction.
(service log-cleanup-service-type
         (log-cleanup-configuration
          (directory "/var/log/guix/drvs")))

Cela s’assure que les journaux de construction ne s’accumulent pas sans fin.

Variable Scheme :log-cleanup-service-type

C’est le type du service pour supprimer les anciens journaux. Sa valeur doit être un enregistrement log-cleanup-configuration, décrit ci-dessous.

Type de données :log-cleanup-configuration

Type de données représentant la configuration de nettoyage des journaux

directory

Nom du répertoire contenant les fichiers journaux.

expiry (par défaut : (* 6 30 24 3600))

Âge en secondes après lequel un fichier peut être supprimé (six moins par défaut).

schedule (par défaut : "30 12 01,08,15,22 * *")

Chaine ou gexp dénotant la date de la tâche mcron correspondant (voir Exécution de tâches planifiées).

Service Anonip

Anonip est un filtre pour la vie privée qui supprime les adresses IP des journaux des serveurs web. Ce service crée une FIFO et filtre toutes les lignes écrite avec anonip avant d’écrire les journaux filtrés dans un fichier cible.

L’exemple suivant configure la FIFO /var/run/anonip/https.access.log et écrit le fichier journal filtré dans /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")))

Configurez votre serveur web pour écrire ses journaux dans la FIFO /var/run/anonip/https.access.log et récupérez les fichiers journaux anonymisés dans /var/web-logs/https.access.log.

Type de données :anonip-configuration

Ce type de données représente la configuration d’anonip. Il a les paramètres suivants :

anonip (par défaut : anonip)

Le paquet anonip à utiliser.

input

Le nom de fichier du fichier journal d’entrée à traiter. Le service crée une FIFO de ce nom. Le serveur web doit écrire ses journaux dans cette FIFO.

output

Le nom du fichier journal traité.

Les réglages facultatifs suivants peuvent être fournis :

skip-private?

Lorsque la valeur est #true, ne masque pas les adresses dans les plages privées.

column

Un numéro de colonne commençant par 1 pour la première colonne. Suppose que l’adresse IP est dans la colonne donnée (1 par défaut).

replacement

Chaine de remplacement au cas où l’analyse de l’adresse échoue, p. ex. "0.0.0.0".

ipv4mask

Nombre de bits à masquer dans les adresses IPv4.

ipv6mask

Nombre de bits à masquer dans les adresses IPv6.

increment

Incrémente l’adresse IP par le nombre donné. La valeur par défaut est zéro.

delimiter

Chaine de délimitation des journaux.

regex

Expression régulière pour détecter l’adresse IP. À utiliser à la place de column.


Suivant: Configuration du réseau, Précédent: Exécution de tâches planifiées, Monter: Services   [Table des matières][Index]