Logrotate: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 47: | Zeile 47: | ||
*Es gibt zahlreiche weitere Konfigurationsoptionen, die in der Manpage von logrotate gefunden werden können, einschließlich `delaycompress`, die eine Komprimierung bis zum nächsten Rotationszyklus verzögert. | *Es gibt zahlreiche weitere Konfigurationsoptionen, die in der Manpage von logrotate gefunden werden können, einschließlich `delaycompress`, die eine Komprimierung bis zum nächsten Rotationszyklus verzögert. | ||
=Beispiel: Logrotate Konfiguration für nginx= | |||
*Die Konfiguration für nginx könnte wie folgt aussehen: | |||
<pre> | |||
/var/log/nginx/*log { | |||
daily | |||
missingok | |||
rotate 3 | |||
notifempty | |||
dateext | |||
dateformat -%Y-%m-%d | |||
create 640 http log | |||
compress | |||
sharedscripts | |||
postrotate | |||
test ! -r /run/nginx.pid || kill -USR1 `cat /run/nginx.pid` | |||
endscript | |||
} | |||
</pre> | |||
=Erklärung der Optionen= | |||
*/var/log/nginx/*log: Pfad zu den zu rotierenden Logdateien. Jede Datei, die auf "log" endet, wird von logrotate bearbeitet. | |||
*daily: Logdateien werden täglich rotiert. | |||
*missingok: Keine Fehlermeldung, wenn eine Logdatei fehlt. | |||
*rotate 3: Drei rotierte Logdateien werden aufbewahrt. Bei Hinzufügung einer vierten wird die älteste gelöscht. | |||
*notifempty: Leere Logdateien werden nicht rotiert. | |||
*dateext und dateformat -%Y-%m-%d: Fügt ein Datum in das Format JJJJ-MM-TT zur rotierten Datei hinzu. | |||
*create 640 http log: Erstellt eine neue Logdatei mit den angegebenen Berechtigungen nach dem Löschen der alten. | |||
*compress: Komprimiert rotierte Logdateien. | |||
*sharedscripts und postrotate-endscript: Skript, das nach der Rotation ausgeführt wird. Hier wird überprüft, ob die nginx.pid-Datei vorhanden ist, und wenn ja, wird ein USR1-Signal an den Prozess gesendet, um ihn zu informieren, dass die Logdateien rotiert wurden. | |||
=Logrotate Testlauf= | |||
*Um die Konfiguration zu testen, kann Logrotate im Debug-Modus ausgeführt werden: | |||
*/usr/sbin/logrotate /etc/logrotate.conf --debug | |||
*Dies zeigt, was logrotate tun würde, führt aber keine Aktionen aus. | |||
=Logrotate-Ausführung= | =Logrotate-Ausführung= | ||
*Logrotate kann manuell mit dem Befehl `/usr/sbin/logrotate /etc/logrotate.conf --debug` ausgeführt werden. | *Logrotate kann manuell mit dem Befehl `/usr/sbin/logrotate /etc/logrotate.conf --debug` ausgeführt werden. | ||
*Der Parameter `--debug` zeigt detaillierte Informationen an, führt aber nichts endgültig aus. | *Der Parameter `--debug` zeigt detaillierte Informationen an, führt aber nichts endgültig aus. | ||
*Um Logrotate automatisch auszuführen, kann ein systemd-Dienst eingerichtet werden. | *Um Logrotate automatisch auszuführen, kann ein systemd-Dienst eingerichtet werden. | ||
Version vom 15. Juni 2023, 08:26 Uhr
Logrotate: Automatische Verwaltung von Logdateien unter Linux
- Logrotate ist ein Tool zur automatischen Verarbeitung von Logdateien auf Linux-Systemen.
- Es komprimiert wöchentlich Logdateien und erzeugt neue, um zu verhindern, dass die Logdateien zu groß werden.
- Die Installation von logrotate ist mit dem jeweiligen Paketmanager auf allen gängigen Linuxsystemen möglich.
- In Debian ist logrotate in der Regel vorinstalliert.
- Die Konfiguration erfolgt hauptsächlich in der Datei /etc/logroate.conf.
- Zusätzliche Konfigurationsdateien für spezifische Dienste (z. B. nginx, fail2ban) befinden sich im Verzeichnis /etc/logrotate.d.
- Die Konfiguration ermöglicht u.a. die tägliche Verarbeitung von Logs, die Beibehaltung von drei rotierten Dateien, die Komprimierung von rotierten Logs und die Ausführung von Skripten nach der Rotation.
- Ein Testlauf von logrotate kann mit dem Befehl /usr/sbin/logrotate /etc/logrotate.conf --debug ausgeführt werden.
- Logrotate kann automatisch ausgeführt werden und sollte nach der Installation unter Debian-Derivaten bereits konfiguriert sein. Bei anderen Derivaten (z. B. Arch Linux) muss logrotate manuell konfiguriert werden.
Logrotate-Installation
- Logrotate sollte auf den meisten Linux-Systemen verfügbar sein und kann über den jeweiligen Paketmanager installiert werden.
- Beispielsweise kann es auf Debian-basierten Systemen mit dem Befehl `apt-get install logrotate` installiert werden.
Systemd
- Für einen automatisierten Lauf des Logrotate-Dienstes kann ein systemd-Service konfiguriert werden.
- Ein Beispiel für eine solche Konfiguration sieht folgendermaßen aus:
[Unit] Description=Automatic logrotate After=network-online.target [Service] Type=simple ExecStart=/usr/bin/logrotate /etc/logrotate.conf TimeoutStopSec=180 KillMode=process KillSignal=SIGINT [Install] WantedBy=multi-user.target
- Logrotate hilft dabei, den für Logdateien benötigten Speicherplatz zu minimieren, was besonders für Server mit begrenztem Speicherplatz wichtig ist.
- Es ermöglicht auch eine bessere Übersichtlichkeit der Logdateien und erleichtert ihre Analyse.
- Zusätzliche Funktionen und Konfigurationsoptionen von Logrotate können in der Manpage des Tools eingesehen werden.
Logrotate-Konfigurationsoptionen
- Logrotate-Konfigurationsdateien befinden sich in /etc/logrotate.conf und /etc/logrotate.d/.
- Jede Konfigurationsdatei kann mehrere Optionen enthalten:
- `daily`: Logdateien werden täglich rotiert.
- `missingok`: Keine Fehlermeldung, wenn die Logdatei fehlt.
- `rotate 3`: Es werden immer drei rotierte Dateien beibehalten.
- `notifempty`: Leer Logdateien werden nicht rotiert.
- `dateext`: Fügt ein Datum zur rotierten Datei hinzu.
- `create 640 http log`: Erstellt nach dem Löschen eine neue Logdatei mit bestimmten Dateiberechtigungen.
- `compress`: Komprimiert die rotierten Logs mit gzip.
- `sharedscripts`: Stellt sicher, dass das Postrotate-Skript nur einmal ausgeführt wird, unabhängig davon, wie viele Logdateien rotiert werden.
- Es gibt zahlreiche weitere Konfigurationsoptionen, die in der Manpage von logrotate gefunden werden können, einschließlich `delaycompress`, die eine Komprimierung bis zum nächsten Rotationszyklus verzögert.
Beispiel: Logrotate Konfiguration für nginx
- Die Konfiguration für nginx könnte wie folgt aussehen:
/var/log/nginx/*log {
daily
missingok
rotate 3
notifempty
dateext
dateformat -%Y-%m-%d
create 640 http log
compress
sharedscripts
postrotate
test ! -r /run/nginx.pid || kill -USR1 `cat /run/nginx.pid`
endscript
}
Erklärung der Optionen
- /var/log/nginx/*log: Pfad zu den zu rotierenden Logdateien. Jede Datei, die auf "log" endet, wird von logrotate bearbeitet.
- daily: Logdateien werden täglich rotiert.
- missingok: Keine Fehlermeldung, wenn eine Logdatei fehlt.
- rotate 3: Drei rotierte Logdateien werden aufbewahrt. Bei Hinzufügung einer vierten wird die älteste gelöscht.
- notifempty: Leere Logdateien werden nicht rotiert.
- dateext und dateformat -%Y-%m-%d: Fügt ein Datum in das Format JJJJ-MM-TT zur rotierten Datei hinzu.
- create 640 http log: Erstellt eine neue Logdatei mit den angegebenen Berechtigungen nach dem Löschen der alten.
- compress: Komprimiert rotierte Logdateien.
- sharedscripts und postrotate-endscript: Skript, das nach der Rotation ausgeführt wird. Hier wird überprüft, ob die nginx.pid-Datei vorhanden ist, und wenn ja, wird ein USR1-Signal an den Prozess gesendet, um ihn zu informieren, dass die Logdateien rotiert wurden.
Logrotate Testlauf
- Um die Konfiguration zu testen, kann Logrotate im Debug-Modus ausgeführt werden:
- /usr/sbin/logrotate /etc/logrotate.conf --debug
- Dies zeigt, was logrotate tun würde, führt aber keine Aktionen aus.
Logrotate-Ausführung
- Logrotate kann manuell mit dem Befehl `/usr/sbin/logrotate /etc/logrotate.conf --debug` ausgeführt werden.
- Der Parameter `--debug` zeigt detaillierte Informationen an, führt aber nichts endgültig aus.
- Um Logrotate automatisch auszuführen, kann ein systemd-Dienst eingerichtet werden.