Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]


12.9.3 Log-Rotation

Protokolldateien wie die in /var/log neigen dazu, bis ins Unendliche zu wachsen, deshalb ist es eine gute Idee, sie von Zeit zu Zeit zu rotieren — d.h. ihren Inhalt in separaten Dateien zu archivieren, welche optional auch komprimiert werden. Das Modul (gnu services admin) stellt eine Schnittstelle zu GNU Rot[t]log bereit, einem Werkzeug, um Protokolldateien („Log“-Dateien) zu rotieren (siehe GNU Rot[t]log Manual).

Dieser Dienst ist Teil der %base-services und daher standardmäßig mit seinen Vorgabeeinstellungen für übliche Log-Dateien aktiv. Das Beispiel unten zeigt, wie Sie ihn um eine weitere rotation erweitern können, wenn dies nötig wird (normalerweise kümmern sich darum schon die Dienste, die die Log-Dateien erzeugen):

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

(define my-log-files
  ;; Log-Dateien, die ich rotieren lassen will.
  '("/var/log/irgendein.log" "/var/log/noch-ein.log"))

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

Dies ist der Typ des Rottlog-Dienstes, dessen Wert ein rottlog-configuration-Objekt ist.

Andere Dienste können diesen Dienst um neue log-rotation-Objekte erweitern (siehe unten), wodurch die Auswahl an zu rotierenden Dateien ausgeweitet wird.

Dieser Diensttyp kann mcron-Aufträge definieren (siehe Geplante Auftragsausführung), die den rottlog-Dienst ausführen.

Datentyp: rottlog-configuration

Datentyp, der die Konfiguration von rottlog repräsentiert.

rottlog (Vorgabe: rottlog)

Das Rottlog-Paket, das verwendet werden soll.

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

Die zu benutzende Rottlog-Konfigurationsdatei (siehe Mandatory RC Variables in GNU Rot[t]log Manual).

rotations (Vorgabe: %default-rotations)

Eine Liste von log-rotation-Objekten, wie wir sie weiter unten definieren.

jobs

Dies ist eine Liste von G-Ausdrücken. Jeder G-Ausdruck darin entspricht einer mcron-Auftragsspezifikation (siehe Geplante Auftragsausführung).

Datentyp: log-rotation

Datentyp, der die Rotation einer Gruppe von Protokolldateien repräsentiert.

Um ein Beispiel aus dem Rottlog-Handbuch (siehe Period Related File Examples in GNU Rot[t]log Manual) aufzugreifen: Eine Log-Rotation kann auf folgende Art definiert werden:

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

Die Liste der Felder ist folgendermaßen aufgebaut:

frequency (Vorgabe: 'weekly)

Die Häufigkeit der Log-Rotation, dargestellt als englischsprachiges Symbol.

files

Die Liste der Dateien oder Glob-Muster für Dateien, die rotiert werden sollen.

options (Vorgabe: '())

Die Liste der Rottlog-Optionen für diese Rotation (siehe Configuration parameters in GNU Rot[t]lg Manual).

post-rotate (Vorgabe: #f)

Entweder #f oder ein G-Ausdruck, der nach Abschluss der Rotation einmal ausgeführt wird.

Scheme-Variable: %default-rotations

Gibt wöchentliche Rotationen der %rotated-files und von /var/log/guix-daemon.log an.

Scheme-Variable: %rotated-files

Die Liste der von Syslog verwalteten Dateien, die rotiert werden sollen. Vorgegeben ist '("/var/log/messages" "/var/log/secure" "/var/log/debug" "/var/log/maillog").

Manche Protokolldateien müssen einfach nur regelmäßig gelöscht werden, wenn sie alt geworden sind, ohne Sonderfälle und ohne Archivierung. Das trifft auf Erstellungsprotokolle zu, die guix-daemon unter /var/log/guix/drvs vorhält (siehe Aufruf des guix-daemon). Der Dienst log-cleanup kann diesen Anwendungsfall übernehmen. Zum Beispiel ist Folgendes Teil der %base-services (siehe Basisdienste):

;; Regelmäßig alte Erstellungsprotokolle löschen.
(service log-cleanup-service-type
         (log-cleanup-configuration
          (directory "/var/log/guix/drvs")))

Dadurch sammeln sich Erstellungsprotokolle nicht bis in alle Ewigkeit an.

Scheme-Variable: log-cleanup-service-type

Der Diensttyp des Dienstes, um alte Protokolldateien zu löschen. Sein Wert muss ein log-cleanup-configuration-Verbundsobjekt sein, wie im Folgenden beschrieben.

Datentyp: log-cleanup-configuration

Der Datentyp repräsentiert die Konfiguration, um Protokolldateien zu löschen.

directory

Der Name des Verzeichnisses mit den Protokolldateien.

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

Nach wie vielen Sekunden eine Datei für die Löschung vorgesehen ist (sechs Monate nach Vorgabe).

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

Eine Zeichenkette oder ein G-Ausdruck mit dem Zeitplan für mcron-Aufträge (siehe Geplante Auftragsausführung).

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.


Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]