Unbegrenzte Textprotokolle können ein Dateisystem füllen, während zu aggressives Löschen für Betrieb oder Compliance erforderliche Belege entfernen kann. logrotate wendet konfigurierte Richtlinien zu Größe, Zeit, Komprimierung, Eigentum und Aufbewahrung auf dateibasierte Protokolle an.
Protokollierung · Lektion 6
Protokolldateien verwalten
Lerne, eine sichere Rotation von Textprotokollen mit logrotate zu konfigurieren, zu testen und zu überprüfen.
Rotation verstehen
Bei einer typischen Rotation wird die aktive Datei umbenannt, ein Ersatz erstellt, die Anwendung optional zum erneuten Öffnen aufgefordert, ältere Generationen komprimiert und Dateien außerhalb der Aufbewahrung entfernt. Diese Schritte hängen von der Konfiguration ab. Rotation ist keine Sicherung, weil aufbewahrte Kopien weiterhin gelöscht oder beschädigt werden beziehungsweise mit demselben Host verloren gehen können.
Warum ersetzt Protokollrotation keine Sicherung oder Archivierung?
Konfiguration auffinden
Die Hauptdatei ist gewöhnlich /etc/logrotate.conf; Ausschnitte von Paketen oder Anwendungen liegen unter /etc/logrotate.d/. Eine vereinfachte Richtlinie kann so aussehen:
/var/log/example/app.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 example adm
}
Dies fordert tägliche Prüfung, sieben aufbewahrte Rotationen, um eine Generation verzögerte Komprimierung, Toleranz für ein fehlendes oder leeres Protokoll und eine neu erstellte Datei mit ausdrücklichem Modus und Eigentum an. Die tatsächliche Rotation hängt außerdem vom aufgezeichneten Zustand und davon ab, wie der Scheduler logrotate aufruft.
Was legt rotate 7 fest?
Mit dem schreibenden Prozess koordinieren
Nach dem Umbenennen eines Protokolls kann ein Daemon über seinen weiterhin geöffneten Dateideskriptor weiterschreiben. Ein postrotate-Skript sendet häufig ein dokumentiertes Signal zum Neuladen oder erneuten Öffnen. Validiere das genaue Anwendungsverhalten und halte das Skript eng begrenzt.
copytruncate kopiert eine Datei und kürzt das Original an Ort und Stelle, wenn eine Anwendung Protokolle nicht erneut öffnen kann. Während des Kopier- und Kürzungsfensters können Schreibvorgänge verloren gehen oder dupliziert werden. Es ist daher ein Kompromiss und kein allgemeingültig sicherer Standard.
Warum kann eine Anwendung nach der Rotation ein Signal zum erneuten Öffnen benötigen?
Vor der Aktivierung testen
Untersuche Entscheidungen im Debugmodus, ohne Dateien zu rotieren:
$ sudo logrotate -d /etc/logrotate.conf
Die Debugausgabe beweist nicht, dass Berechtigungen, Skripte, freier Speicherplatz oder das erneute Öffnen der Anwendung bei einem tatsächlichen Lauf erfolgreich sind. Teste eine neue Regel in einer kontrollierten Umgebung und untersuche anschließend aktive Datei, rotierte Generation, Eigentum, Komprimierung, Anwendungsausgabe und logrotate-Zustand. -f erzwingt eine Rotation und verändert den Zustand; verwechsle es nicht mit einem Probelauf.
Was bietet logrotate -d?
Andere Speicher berücksichtigen
Logrotate verwaltet Dateien, die in seinen Richtlinien benannt sind. Das systemd-Journal besitzt eine eigene Größen- und Aufbewahrungskonfiguration, während Datenbanken und entfernte Protokollierungsdienste getrennte Lebenszyklussteuerungen besitzen. Überwache Dateisystemkapazität und Protokollierungszustand, damit ein festhängender schreibender Prozess oder eine fehlgeschlagene Rotation erkannt wird, bevor der Speicherplatz erschöpft ist.
Erzwingt eine logrotate-Regel automatisch die Aufbewahrung des systemd-Journals?
Lektion abgeschlossen
Sie haben Protokolldateien verwalten abgeschlossen
Du kannst nun eine Richtlinie zur Rotation von Dateiprotokollen entwerfen und überprüfen, ohne sie mit Archivierung zu verwechseln.
Bringe Speicherplatz-, Betriebs- und Aufbewahrungsanforderungen ins Gleichgewicht.
Definiere Generationen, Komprimierung, Eigentum und Verhalten bei leeren Dateien.
Koordiniere sicher mit Anwendungen, die Deskriptoren geöffnet halten.
Prüfe die Konfiguration im Debugmodus vor einer kontrollierten tatsächlichen Rotation.
Verwalte die Aufbewahrung von Journal und externen Speichern getrennt.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen