Gdzie są przechowywane dane „Journalctl”?

43

Kiedy wystawiam journalctl, otrzymuję ogromny dziennik wszystkich usług systemowych, ale gdzie są przechowywane wszystkie te informacje?

php_nub_qq
źródło

Odpowiedzi:

37

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

I jak man journalctlmówi:

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

Te dzienniki są zarządzane przez systemd-journaldusługę, więc bardziej odpowiednim terminem byłoby „ journalddzienniki”.

muru
źródło
Dzięki za korektę, ale załóżmy, że Noob też mnie będzie szukał, więc myślę, że lepiej tak zostawić. Kolejne pytanie - czy te dzienniki można bezpiecznie usunąć?
php_nub_qq
5
Cóż, dzienniki można bezpiecznie usunąć, chyba że później będziesz potrzebować z nich informacji.
muru
Zauważ, że domyślnie systemd usuwa starsze dzienniki, gdy zbliżają się do określonego procentu zajętego miejsca na dysku.
mattdm,
17

Należy jednak pamiętać, że Ubuntu domyślnie nie używa trwałego pliku dziennika dziennika. Tylko lotne /run/log/journal/<machine-id>/*.journal[~]jest zachowane do następnego uruchomienia. Wszystko jest tracone przy każdym ponownym uruchomieniu.

Możesz zobaczyć listę bootów zachowanych w logu z:

journalctl --list-boot

Dzienniki są nadal przechowywane w pliku tekstowym, /var/logchyba że aktywowano korzystanie z trwałego dziennika dziennika poprzez utworzenie /var/log/journalkatalogu.

przesilenie dnia z nocą
źródło
5
Jednak dziennik dziennika prawdopodobnie powinien być domyślnie trwały. [błąd # 1618188] ( bugs.launchpad.net/ubuntu/+source/systemd/+bug/1618188 ) został otwarty w celu śledzenia postępu tej zmiany. Sprawdź tam najnowszy status.
Mark Stosberg,
3

Krótka odpowiedź

Zazwyczaj katalog przechowywania to /var/log/journallub /run/log/journal, ale niekoniecznie musi istnieć w twoim systemie.

Jeśli chcesz tylko sprawdzić ilość miejsca zajmowanego przez dziennik na dysku, po prostu wpisz:

$ journalctl --disk-usage

Długa odpowiedź

Katalog pamięci zależy od konfiguracji kroniki.

Pliki konfiguracyjne to:

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

Tam Storage=opcja „ ” kontroluje, czy przechowywać dane dziennika, i gdzie. Możliwe wartości to „ volatile”, „ persistent”, „ auto” i „ none”. Domyślnie „ auto”.

Jeśli „ volatile”, dane dziennika będą przechowywane tylko w pamięci, tj. Poniżej hierarchii / run / log / journal (która jest tworzona w razie potrzeby).

Jeśli „ persistent”, dane będą przechowywane najlepiej na dysku, tj. Poniżej hierarchii / var / log / journal (która jest tworzona w razie potrzeby), z możliwością powrotu do / run / log / journal (która jest tworzona w razie potrzeby), na początku uruchom i jeśli dysku nie można zapisać.

auto” jest podobne do „ persistent”, ale katalog nie/var/log/journal jest tworzony w razie potrzeby, więc jego istnienie kontroluje, dokąd trafiają dane dziennika.

none” wyłącza całą pamięć, wszystkie otrzymane dane dziennika zostaną usunięte.

Demis Palma ツ
źródło
0

Oprócz odpowiedzi Muru na temat miejsca przechowywania danych istnieją inne istotne odpowiedzi.

Jak zwiększyć, journalctlaby znaleźć poprzednie dzienniki rozruchu

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

Jak journalctlzmniejszyć rozmiar pliku

$ 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
źródło