Website-Suche

Eine Anleitung zum Bereinigungsprozess des Systemd-Journals [mit Beispielen]


Systemd verfügt über viele integrierte Funktionen zur Verwaltung der Systemprotokolle. In diesem Leitfaden erklären wir, wie Sie Systemjournale und Protokolle verwalten und Maßnahmen ergreifen können, z. B. Protokolle rotieren, archivieren und löschen. Wir erklären außerdem die manuelle Bereinigungsmethode für Systemjournale und die Verwendung von Konfigurationsdateiänderungen .

Wenn Ihre Linux-Distribution systemd unterstützt, sammelt sie jede Sekunde Protokolle von allen Prozessen und Anwendungen des Systems, beginnend mit dem Booten. Alle diese Protokollierungsereignisse werden vom journald-Daemon von systemd verwaltet. Der Journald sammelt alle Protokolle (Informationen, Warnungen, Fehler usw.) und speichert sie als Binärdaten in den Festplattendateien.

Da die Protokolle auf der Festplatte verbleiben und jede Sekunde erfasst werden, beanspruchen sie enormen Speicherplatz. insbesondere für ältere Systeme, Server. In einem meiner Testsysteme, das etwa ein Jahr lang läuft, wird die Größe der Protokolldatei beispielsweise in GB angegeben.

Wenn Sie mehrere Systeme und Server verwalten, wird für einen effizienten Betrieb immer empfohlen, Journal-Protokolle ordnungsgemäß zu verwalten. Schauen wir uns an, wie Sie die Protokolldateien verwalten können.

Das Systemd-Journal Maintenance

Mit dem Dienstprogramm „journalctl“ von systemd können Sie diese Protokolle abfragen und verschiedene Vorgänge daran ausführen. Sehen Sie sich beispielsweise die Protokolldateien verschiedener Startvorgänge an und prüfen Sie, ob letzte Warnungen oder Fehler von einem bestimmten Prozess oder einer bestimmten Anwendung vorliegen. Wenn Sie sich dessen nicht bewusst sind, würde ich Ihnen empfehlen, dieses Tutorial schnell durchzugehen – „Verwenden Sie Journalctl zum Anzeigen und Analysieren von Systemd-Protokollen [mit Beispielen]“, bevor Sie dieser Anleitung folgen.

Wo sind die Protokolldateien des physischen Journals?

Der Journald-Daemon des Systemd sammelt Protokolle von jedem Start. Das bedeutet, dass die Protokolldateien nach dem Start klassifiziert werden.

Die Protokolle werden binär im Pfad /var/log/journal mit einem Ordner als Maschinen-ID gespeichert.

Zum Beispiel:

Screenshot der physischen Journaldatei -1

Screenshot der physischen Journaldateien -2

Denken Sie außerdem daran, dass Laufzeitjournaldateien je nach Systemkonfiguration unter /run/log/journal/ gespeichert werden. Und diese werden bei jedem Start entfernt.

Kann ich die Protokolldateien manuell löschen?

Sie können es, aber tun Sie es nicht. Befolgen Sie stattdessen die nachstehenden Anweisungen, um die Protokolldateien mithilfe der Dienstprogramme „journalctl“ zu löschen und Speicherplatz freizugeben.

Wie viel Speicherplatz wird von Systemd-Protokolldateien belegt?

Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus.

journalctl --disk-usage

Dies sollte Ihnen Aufschluss darüber geben, wie viel tatsächlich von den Protokolldateien in Ihrem System verwendet wird.

Befehl „journalctl-Datenträgernutzung“.

Wenn Sie über eine grafische Desktop-Umgebung verfügen, können Sie den Dateimanager öffnen, den Pfad /var/log/journal durchsuchen und die Eigenschaften überprüfen.

Bereinigungsprozess des Systemd-Journals

Die effektive Möglichkeit zum Löschen der Protokolldateien sollte über journald.conf und Konfigurationsdateien erfolgen. Idealerweise sollten Sie die Protokolldateien nicht manuell löschen, selbst wenn das Dienstprogramm „journalctl“ das entsprechende Dienstprogramm bereitstellt.

Schauen wir uns an, wie Sie es manuell löschen können. Anschließend erkläre ich die Konfigurationsänderungen in journald.conf, damit Sie die Dateien nicht von Zeit zu Zeit manuell löschen müssen. Stattdessen kümmert sich systemd automatisch darum, basierend auf Ihrer Konfiguration.

Manuelles Löschen

Zuerst müssen Sie die Protokolldateien leeren und rotieren. Rotieren ist eine Möglichkeit, die aktuell aktiven Protokolldateien als Archiv zu markieren und ab diesem Zeitpunkt eine neue Protokolldatei zu erstellen. Der Flush-Schalter fordert den Journal-Daemon auf, alle in /run/log/journal/ gespeicherten Protokolldaten nach /var/log/journal/ zu leeren, wenn die dauerhafte Speicherung aktiviert ist.

Dann, nach dem Spülen und Rotieren, müssen Sie journalistctl mit den Schaltern vacuum-size, vacuum-time und vacuum-files ausführen, um systemd zu erzwingen um die Protokolle zu löschen.

Beispiel 1:

sudo journalctl --flush --rotate
sudo journalctl --vacuum-time=1s

Der obige Befehlssatz entfernt alle archivierten Journalprotokolldateien bis zur letzten Sekunde. Dadurch wird effektiv alles gelöscht. Seien Sie also vorsichtig, während Sie den Befehl ausführen.

Journal aufräumen – Beispiel

Nach dem Aufräumen:

Nach der Bereinigung – Journal-Speicherplatznutzung

Sie können je nach Bedarf auch die folgenden Suffixe nach der Nummer angeben.

  • s: Sekunden
  • m: Minuten
  • h: Stunden
  • Tage
  • Monate
  • Wochen
  • Jahre

Beispiel 2:

sudo journalctl --flush --rotate
sudo journalctl --vacuum-size=400M

Dadurch werden alle archivierten Journalprotokolldateien gelöscht und die letzten 400 MB großen Dateien bleiben erhalten. Beachten Sie, dass dieser Schalter nur für archivierte Protokolldateien gilt, nicht für aktive Journaldateien. Sie können auch die folgenden Suffixe verwenden.

  • K: KB
  • M: MB
  • G: GB

Beispiel 3:

sudo journalctl --flush --rotate
sudo journalctl --vacuum-files=2

Der Vakuumdateien-Schalter löscht alle Journaldateien unterhalb der angegebenen Anzahl. Im obigen Beispiel werden also nur die letzten beiden Journaldateien beibehalten und alles andere wird entfernt. Auch dies funktioniert nur für die archivierten Dateien.

Sie können die Schalter kombinieren, wenn Sie möchten, ich würde jedoch davon abraten. Stellen Sie jedoch sicher, dass Sie zuerst den Schalter --rotate verwenden.

Automatisches Löschen mithilfe von Konfigurationsdateien

Obwohl die oben genannten Methoden gut und einfach zu verwenden sind, wird empfohlen, dass Sie den Bereinigungsprozess der Journalprotokolldatei mithilfe der Journald-Konfigurationsdateien steuern, die unter /etc/systemd/journald.conf verfügbar sind.

Der Systemd stellt viele Parameter zur Verfügung, mit denen Sie die Protokolldateien effektiv verwalten können. Durch die Kombination dieser Parameter können Sie den von den Journaldateien verwendeten Speicherplatz effektiv begrenzen. Lass uns einen Blick darauf werfen.

journald.conf parameterDescriptionExample
SystemMaxUseSpecifies the maximum disk space that can be used by the journal in persistent storageSystemMaxUse=500M
SystemKeepFreeSpecifies the amount of space that the journal should leave free when adding journal entries to persistent storage.SystemKeepFree=100M
SystemMaxFileSizeControls how large individual journal files can grow to in persistent storage before being rotated.SystemMaxFileSize=100M
RuntimeMaxUseSpecifies the maximum disk space that can be used in volatile storage (within the /run filesystem).RuntimeMaxUse=100M
RuntimeKeepFreeSpecifies the amount of space to be set aside for other uses when writing data to volatile storage (within the /run filesystem).RuntimeMaxUse=100M
RuntimeMaxFileSizeSpecifies the amount of space that an individual journal file can take up in volatile storage (within the /run filesystem) before being rotated.RuntimeMaxFileSize=200M

Wenn Sie diese Werte in einem laufenden System in der Datei /etc/systemd/journald.conf hinzufügen, müssen Sie den Journald nach der Aktualisierung der Datei neu starten. Verwenden Sie zum Neustart den folgenden Befehl.

sudo systemctl restart systemd-journald

Überprüfung der Protokolldateien

Es ist sinnvoller, die Integrität der Protokolldateien zu überprüfen, nachdem Sie die Dateien bereinigt haben. Führen Sie dazu den folgenden Befehl aus. Der Befehl zeigt das PASS, FAIL der Journaldatei an.

journalctl --verify

Überprüfen Sie die Protokolldateien

Schlussbemerkungen

Ich hoffe, dieser Leitfaden hilft Ihnen, die Grundlagen des systemd-Journalverwaltungsprozesses zu verstehen. Mit diesen können Sie den von den Protokolldateien in Ihrem System oder Servern verwendeten Speicherplatz verwalten, indem Sie den Speicherplatz begrenzen und alte Protokolldateien löschen. Dies sind nur die Richtbefehle. Sie können diese auf verschiedene Weise kombinieren, um Ihre Systemanforderungen zu erfüllen.

  • Journalctl-Handbuch
  • journald.conf-Handbuch

Verwandte Artikel