Nächste: Netzwerkeinrichtung, Vorige: Geplante Auftragsausführung, Nach oben: Dienste [Inhalt][Index]
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)))
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, 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, 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: %default-log-rotation-options
)Die Liste der Rottlog-Optionen für diese Rotation (siehe Configuration parameters in Handbuch von GNU Rot[t]log).
post-rotate
(Vorgabe: #f
)Entweder #f
oder ein G-Ausdruck, der nach Abschluss der Rotation
einmal ausgeführt wird.
Gibt wöchentliche Rotationen der %rotated-files
und von
/var/log/guix-daemon.log an.
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 von 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.
Der Diensttyp des Dienstes, um alte Protokolldateien zu löschen. Sein Wert
muss ein log-cleanup-configuration
-Verbundsobjekt sein, wie im
Folgenden beschrieben.
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 ist ein Datenschutz-Filter, der IP-Adressen aus den Protokollen von Web-Servern entfernt. Mit diesem Dienst wird eine FIFO erzeugt und jede Zeile, die in diese hinein geschrieben wird, wird mit anonip gefiltert und das gefilterte Protokoll in eine Zieldatei übertragen.
Folgendes Beispiel zeigt, wie die FIFO /var/run/anonip/https.access.log eingerichtet wird und die gefilterte Protokolldatei /var/log/anonip/https.access.log geschrieben wird.
(service anonip-service-type
(anonip-configuration
(input "/var/run/anonip/https.access.log")
(output "/var/log/anonip/https.access.log")))
Richten Sie Ihren Web-Server so ein, dass er seine Protokolle in die FIFO unter /var/run/anonip/https.access.log schreibt, und Sie finden die anonymisierte Protokolldatei in /var/web-logs/https.access.log vor.
Dieser Datentyp repräsentiert die Konfiguration von anonip. Zu ihm gehören folgende Parameter:
anonip
(Vorgabe: anonip
)Das anonip-Paket, das benutzt werden soll.
input
Der Dateiname der zu verarbeitenden Eingabeprotokolldatei. Durch den Dienst wird eine FIFO erzeugt, die diesen Namen trägt. Der Web-Server sollte seine Protokolle in diese FIFO hinein schreiben.
output
Der Dateiname der verarbeiteten Protokolldatei.
Die folgenden optionalen Einstellungen können Sie angeben:
skip-private?
Wenn das auf #true
gesetzt ist, werden Adressen in privaten
Adressbereichen nicht verborgen.
column
Eine bei 1 beginnende Spaltennummer. Es werden IP-Adressen in der angegebenen Spalte verarbeitet (die Vorgabe ist Spalte 1).
replacement
Durch welche Zeichenkette ersetzt wird, wenn die IP-Adresse nicht
erkannt wird; zum Beispiel "0.0.0.0"
.
ipv4mask
Anzahl der Bits, die in IPv4-Adressen verborgen werden.
ipv6mask
Anzahl der Bits, die in IPv6-Adressen verborgen werden.
increment
Die IP-Adresse wird um diese Zahl erhöht. Vorgegeben ist null.
delimiter
Welche Zeichenkette der Trenner im Protokoll ist.
regex
Ein regulärer Ausdruck zur Erkennung von IP-Adressen. Er kann statt
column
benutzt werden.
Nächste: Netzwerkeinrichtung, Vorige: Geplante Auftragsausführung, Nach oben: Dienste [Inhalt][Index]