Dove sono archiviati i dati "journalctl"?


43

Quando emetto journalctlottengo un enorme registro di tutti i servizi di sistema, ma dove sono archiviate tutte queste informazioni?

Risposte:


37

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

E come man journalctldice:

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

Questi registri sono gestiti dal systemd-journaldservizio, quindi un termine più appropriato sarebbe " journaldregistri".


Grazie per la correzione, ma supponiamo che anche un noob come me lo cercherà, quindi immagino che sia meglio lasciarlo così. Una domanda di follow-up: questi registri sono sicuri da eliminare?
php_nub_qq,

5
Bene, i log sono sicuri da eliminare a meno che tu non abbia bisogno delle informazioni da loro in seguito.
Muru,

Si noti che per impostazione predefinita, systemd eliminerà i registri meno recenti man mano che si avvicinano a una determinata percentuale di spazio su disco utilizzata.
Mattdm,

17

Si noti tuttavia che Ubuntu non utilizza un file di registro journal persistente per impostazione predefinita. Solo il volatile /run/log/journal/<machine-id>/*.journal[~]viene mantenuto fino all'avvio successivo. Tutto viene perso ad ogni riavvio.

È possibile visualizzare un elenco di avvio conservato nel registro con:

journalctl --list-boot

I registri vengono comunque conservati in un file di testo a /var/logmeno che non sia stato attivato l'uso del registro dei journal persistente creando una /var/log/journaldirectory.


5
Tuttavia, il registro di viaggio probabilmente dovrebbe essere persistente per impostazione predefinita. [bug # 1618188] ( bugs.launchpad.net/ubuntu/+source/systemd/+bug/1618188 ) è stato aperto per tenere traccia dell'avanzamento di questa modifica. Controlla lì per l'ultimo stato.
Mark Stosberg,

3

Risposta breve

Di solito la directory di archiviazione è /var/log/journalo /run/log/journal, ma non deve necessariamente esistere nel sistema.

Se vuoi solo controllare la quantità di spazio che il journal occupa attualmente sul tuo disco, digita semplicemente:

$ journalctl --disk-usage

Risposta lunga

La directory di archiviazione dipende dalla configurazione di journald.

I file di configurazione sono:

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

L Storage='opzione " " controlla se memorizzare o meno i dati del diario e dove. I valori possibili sono " volatile", " persistent", " auto" e " none". L'impostazione predefinita è " auto".

Se " volatile", i dati del registro journal verranno archiviati solo in memoria, ovvero sotto la gerarchia / run / log / journal (che viene creata se necessario).

Se " persistent", i dati verranno archiviati preferibilmente su disco, ovvero al di sotto della gerarchia / var / log / journal (che viene creata se necessario), con un fallback a / run / log / journal (che viene creato se necessario), all'inizio avvio e se il disco non è scrivibile.

" auto" è simile a " persistent" ma la directory non/var/log/journal viene creata se necessario, quindi la sua esistenza controlla dove vanno i dati di registro.

" none" disattiva tutta la memoria, tutti i dati di registro ricevuti verranno eliminati.


0

Oltre alla risposta di Muru su dove sono archiviati i dati ci sono altre risposte pertinenti.

Come aumentare journalctlper trovare i log di avvio precedenti

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

Come mantenere journalctlridotte le dimensioni del file

$ 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.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.