Logrotate

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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.

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.