Wo werden "journalctl" -Daten gespeichert?

43

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

php_nub_qq
quelle

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".

muru
quelle
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 .

Sonnenwende
quelle
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.

Demis Palma ツ
quelle
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/[email protected]~ (56.0M).
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/[email protected]~ (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.
WinEunuuchs2Unix
quelle