Wo werden "journalctl" -Daten gespeichert?


43

Wenn ich ausstelle, journalctlerhalte ich ein umfangreiches Protokoll aller Systemdienste, aber wo werden all diese Informationen gespeichert?

Antworten:


37

Von man systemd-journald:

FILES
       /etc/systemd/journald.conf
           Configure systemd-journald behavior. See journald.conf(5).

       /run/log/journal/machine-id/*.journal,
       /run/log/journal/machine-id/*.journal~,
       /var/log/journal/machine-id/*.journal,
       /var/log/journal/machine-id/*.journal~
           systemd-journald writes entries to files in
           /run/log/journal/machine-id/ or /var/log/journal/machine-id/ with
           the ".journal" suffix. If the daemon is stopped uncleanly, or if
           the files are found to be corrupted, they are renamed using the
           ".journal~" suffix, and systemd-journald starts writing to a new
           file.  /run is used when /var/log/journal is not available, or when
           Storage=volatile is set in the journald.conf(5) configuration file.

Und wie man journalctlgesagt:

journalctl may be used to query the contents of the systemd(1) journal
as written by systemd-journald.service(8).

Diese Protokolle werden vom systemd-journaldDienst verwaltet. Ein geeigneterer Begriff wäre " journaldProtokolle".


Danke für die Korrektur, aber angenommen, ein Noob wie ich wird auch danach suchen, also denke ich, dass es besser ist, auf diese Weise zu bleiben. Eine weitere Frage: Können diese Protokolle sicher gelöscht werden?
— php_nub_qq

5
Nun, Protokolle können sicher gelöscht werden, es sei denn, Sie benötigen die Informationen später.
— Muru

Beachten Sie, dass systemd standardmäßig ältere Protokolle löscht, wenn sie sich einem bestimmten Prozentsatz des verwendeten Speicherplatzes nähern.
— Mattdm

17

Beachten Sie jedoch, dass Ubuntu standardmäßig keine permanente Journald-Protokolldatei verwendet. Nur die flüchtigen /run/log/journal/<machine-id>/*.journal[~]Daten bleiben bis zum nächsten Start erhalten. Bei jedem Neustart geht alles verloren.

Möglicherweise wird im Protokoll eine Liste der beibehaltenen Startvorgänge angezeigt:

journalctl --list-boot

Die Protokolle werden weiterhin in einer Textdatei unter gespeichert, es /var/logsei denn, Sie haben die Verwendung des beständigen Journald-Protokolls durch Erstellen eines /var/log/journalVerzeichnisses aktiviert .


5
Das Journalprotokoll sollte jedoch standardmäßig persistent sein. [Fehler # 1618188] ( bugs.launchpad.net/ubuntu/+source/systemd/+bug/1618188 ) wurde geöffnet, um den Fortschritt dieser Änderung zu verfolgen. Überprüfen Sie dort den aktuellen Status.
— Mark Stosberg

3

Kurze Antwort

Normalerweise ist das Speicherverzeichnis /var/log/journaloder /run/log/journal, es muss jedoch nicht unbedingt in Ihrem System vorhanden sein.

Wenn Sie nur den Speicherplatz überprüfen möchten, den das Journal derzeit auf Ihrer Festplatte belegt, geben Sie einfach Folgendes ein:

$ journalctl --disk-usage

Lange Antwort

Das Speicherverzeichnis hängt von der Journald-Konfiguration ab.

Konfigurationsdateien sind:

/etc/systemd/journald.conf
/etc/systemd/journald.conf.d/*.conf
/run/systemd/journald.conf.d/*.conf
/usr/lib/systemd/journald.conf.d/*.conf

Dort Storage=steuert die Option " ", ob und wo Journaldaten gespeichert werden sollen. Mögliche Werte sind " volatile", " persistent", " auto" und " none". Standardmäßig " auto".

Wenn " volatile", werden Journalprotokolldaten nur im Speicher gespeichert, dh unter der Hierarchie / run / log / journal (die bei Bedarf erstellt wird).

Wenn " persistent", werden die Daten vorzugsweise auf der Festplatte gespeichert, dh unter der Hierarchie / var / log / journal (die bei Bedarf erstellt wird), wobei zu einem frühen Zeitpunkt auf / run / log / journal (die bei Bedarf erstellt wird) zurückgegriffen wird booten und wenn die Festplatte nicht beschreibbar ist.

" auto" ähnelt " persistent", aber das Verzeichnis /var/log/journalwird bei Bedarf nicht erstellt, so dass seine Existenz steuert, wohin die Protokolldaten gehen.

" none" schaltet den gesamten Speicher aus, alle empfangenen Protokolldaten werden gelöscht.


0

Neben Murus Antwort, wo Daten gespeichert sind, gibt es noch andere relevante Antworten.

So erhöhen Sie journalctl, um frühere Startprotokolle zu finden

$ sudo mkdir -p /var/log/journal
$ sudo systemd-tmpfiles --create --prefix /var/log/journal

So halten Sie die journalctlDateigröße niedrig

$ journalctl --vacuum-size=200M
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/system@00056515dbdd9a4e-a6fe2ec77e516045.journal~ (56.0M).
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-65534@00056515dbfe731d-b7bab56cb4efcbf6.journal~ (8.0M).
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-1000@1bbb77599cf14c65a18af51646751696-000000000000064f-00056444d58433e1.journal (112.0M).
Vacuuming done, freed 176.0M of archived journals on disk.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.