¿Dónde se almacenan los datos de "journalctl"?

43

Cuando emito journalctl, obtengo un registro masivo de todos los servicios del sistema, pero ¿dónde se almacena toda esta información?

php_nub_qq
fuente

Respuestas:

37

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

Y como man journalctldice:

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

Estos registros son administrados por el systemd-journaldservicio, por lo que un término más apropiado sería " journaldregistros".

muru
fuente
Gracias por la corrección, pero supongamos que un novato como yo también lo buscará, así que supongo que es mejor dejarlo así. Una pregunta de seguimiento: ¿es seguro eliminar estos registros?
php_nub_qq
55
Bueno, los registros son seguros para eliminar a menos que necesite la información de ellos más adelante.
muru
Tenga en cuenta que, de forma predeterminada, systemd eliminará los registros antiguos a medida que se acerquen a un cierto porcentaje de espacio en disco utilizado.
mattdm
17

Sin embargo, tenga en cuenta que Ubuntu no está utilizando un archivo de registro de diario persistente de forma predeterminada. Solo el volátil /run/log/journal/<machine-id>/*.journal[~]se mantiene hasta el próximo arranque. Todo se pierde en cada reinicio.

Puede ver una lista de arranque retenida en el registro con:

journalctl --list-boot

Los registros aún se mantienen en un archivo de texto debajo, a /var/logmenos que haya activado el uso del registro de diario persistente mediante la creación de un /var/log/journaldirectorio.

solsticio
fuente
55
Sin embargo, el registro de journald podría decirse que debe ser persistente por defecto. [bug # 1618188] ( bugs.launchpad.net/ubuntu/+source/systemd/+bug/1618188 ) se ha abierto para seguir el progreso de este cambio. Verifique allí el último estado.
Mark Stosberg
3

Respuesta corta

Por lo general, el directorio de almacenamiento es /var/log/journalo /run/log/journal, pero no necesariamente tiene que existir en su sistema.

Si solo desea verificar la cantidad de espacio que el diario está ocupando actualmente en su disco, simplemente escriba:

$ journalctl --disk-usage

Respuesta larga

El directorio de almacenamiento depende de la configuración de journald.

Los archivos de configuración son:

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

Allí, la Storage=opción " " controla si se almacenan los datos del diario o no, y dónde. Los valores posibles son " volatile", " persistent", " auto" y " none". El valor predeterminado es " auto".

Si " volatile", los datos de registro de diario se almacenarán solo en la memoria, es decir, debajo de la jerarquía / run / log / journal (que se crea si es necesario).

Si " persistent", los datos se almacenarán preferiblemente en el disco, es decir, debajo de la jerarquía / var / log / journal (que se crea si es necesario), con un respaldo a / run / log / journal (que se crea si es necesario) arranque y si el disco no es grabable.

" auto" Es similar a " persistent" pero el directorio /var/log/journales no creado, si es necesario, de manera que sus controles de existencia en que los datos de registro se va.

" none" apaga todo el almacenamiento, se eliminarán todos los datos de registro recibidos.

Demis Palma ツ
fuente
0

Además de la respuesta de Muru sobre dónde se almacenan los datos, hay otras respuestas relevantes.

Cómo aumentar journalctlpara encontrar registros de arranque anteriores

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

Cómo mantener bajo journalctlel tamaño del archivo

$ 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
fuente