Logrotate: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(11 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 10: Zeile 10:
 
*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 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-Installation=
*Logrotate sollte auf den meisten Linux-Systemen verfügbar sein und kann über den jeweiligen Paketmanager installiert werden.
+
;Debian
*Beispielsweise kann es auf Debian-basierten Systemen mit dem Befehl `apt-get install logrotate` installiert werden.
+
*apt install -y logrotate
=Systemd=
+
;Rocky
*Für einen automatisierten Lauf des Logrotate-Dienstes kann ein systemd-Service konfiguriert werden.
+
*dnf install -y logrotate
*Ein Beispiel für eine solche Konfiguration sieht folgendermaßen aus:
 
<pre>
 
[Unit]
 
Description=Automatic logrotate
 
After=network-online.target
 
  
[Service]
+
=Speicherorte der Logrotate-Konfigurationsdateien=
Type=simple
+
*/etc/logrotate.conf – Hauptkonfigurationsdatei
ExecStart=/usr/bin/logrotate /etc/logrotate.conf
+
*/etc/logrotate.d/ – Verzeichnis für paketbezogene Einzelkonfigurationen
TimeoutStopSec=180
+
*/usr/share/logrotate/ – Mögliche Vorlagen oder Beispieldateien (je nach Distribution)
KillMode=process
+
*/var/lib/logrotate/status – Statusdatei mit den Zeitstempeln der letzten Rotationen
KillSignal=SIGINT
 
  
[Install]
 
WantedBy=multi-user.target
 
</pre>
 
 
*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-Konfigurationsoptionen=
 
*Logrotate-Konfigurationsdateien befinden sich in /etc/logrotate.conf und /etc/logrotate.d/.
 
*Logrotate-Konfigurationsdateien befinden sich in /etc/logrotate.conf und /etc/logrotate.d/.
Zeile 47: Zeile 34:
 
*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=
+
=Logrotate Konfigurationsbeispiele=
*Die Konfiguration für nginx könnte wie folgt aussehen:
+
*[[Logrotate Beispiel nginx]]
<pre>
+
*[[Logrotate Beispiel squid]]
/var/log/nginx/*log {
+
*[[Logrotate Beispiel apache2]]
daily
+
;Hier muss rsyslog installiert sein: '''apt install rsyslog'''
missingok
+
*[[Logrotate Beispiel mail]]
rotate 3
+
*[[Logrotate Beispiel auth_sylog]]
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=
 
=Logrotate Testlauf=
Zeile 84: Zeile 49:
 
*Dies zeigt, was logrotate tun würde, führt aber keine Aktionen aus.
 
*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.
  
 
= Journald rotieren =
 
= Journald rotieren =
 
+
*[[Journald rotieren]]
* Der Systemd eigene Logger hat unter ''/etc/systemd/journald.conf'' Konfigurationsoptionen zum rotieren der Logs auch ohne '''logrotate'''
 
* Dazu sollte man die Optionen ''SystemMaxUse'' (größenbasiert) bzw. ''MaxFileSec'' (zeitbasiert) anpassen
 
  
 
=Aufgaben=
 
=Aufgaben=

Aktuelle Version vom 28. März 2025, 06:29 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

Debian
  • apt install -y logrotate
Rocky
  • dnf install -y logrotate

Speicherorte der Logrotate-Konfigurationsdateien

  • /etc/logrotate.conf – Hauptkonfigurationsdatei
  • /etc/logrotate.d/ – Verzeichnis für paketbezogene Einzelkonfigurationen
  • /usr/share/logrotate/ – Mögliche Vorlagen oder Beispieldateien (je nach Distribution)
  • /var/lib/logrotate/status – Statusdatei mit den Zeitstempeln der letzten Rotationen

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 Konfigurationsbeispiele

Hier muss rsyslog installiert sein
apt install rsyslog

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.

Journald rotieren

Aufgaben

Quellen