Onde os dados do "journalctl" são armazenados?

43

Quando emito journalctl, recebo um registro massivo de todos os serviços do sistema, mas onde todas essas informações são armazenadas?

php_nub_qq
fonte

Respostas:

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.

E como man journalctldiz:

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

Esses logs são gerenciados pelo systemd-journaldserviço, portanto, um termo mais apropriado seria " journaldlogs".

muru
fonte
Obrigado pela correção, mas suponha que um noob como eu procure por isso também, então acho que é melhor deixar assim. Uma pergunta de acompanhamento - é seguro excluir esses logs?
Php_nub_qq
5
Bem, é seguro excluir os logs, a menos que você precise das informações posteriormente.
muru 26/12/16
Observe que, por padrão, o systemd excluirá os logs mais antigos à medida que eles se aproximam de uma certa porcentagem do espaço em disco usado.
mattdm
17

Observe, no entanto, que o Ubuntu não está usando um arquivo de log journald persistente por padrão. Somente o volátil /run/log/journal/<machine-id>/*.journal[~]é mantido até a próxima inicialização. Tudo está perdido a cada reinicialização.

Você pode ver uma lista de inicialização mantida no log com:

journalctl --list-boot

Os logs ainda são mantidos em um arquivo de texto, a menos /var/logque você tenha ativado o uso do log journald persistente criando o /var/log/journaldiretório.

solstício
fonte
5
No entanto, o log do diário deve ser persistente por padrão. [bug # 1618188] ( bugs.launchpad.net/ubuntu/+source/systemd/+bug/1618188 ) foi aberto para acompanhar o progresso dessa alteração. Verifique lá o status mais recente.
Mark Stosberg
3

Resposta curta

Normalmente, o diretório de armazenamento é /var/log/journalor /run/log/journal, mas não precisa necessariamente existir em seu sistema.

Se você quiser apenas verificar a quantidade de espaço que o diário atualmente ocupa no seu disco, basta digitar:

$ journalctl --disk-usage

Resposta longa

O diretório de armazenamento depende da configuração do diário.

Os arquivos de configuração são:

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

A Storage=opção " " controla se os dados do diário devem ser armazenados ou não e onde. Os valores possíveis são " volatile", " persistent", " auto" e " none". O padrão é " auto".

Se " volatile", os dados do log do diário serão armazenados apenas na memória, ou seja, abaixo da hierarquia / run / log / journal (criada se necessário).

Se " persistent", os dados serão armazenados preferencialmente no disco, ou seja, abaixo da hierarquia / var / log / journal (criada se necessário), com um fallback para / run / log / journal (criado se necessário), durante o início inicialize e se o disco não for gravável.

" auto" é semelhante a " persistent" mas o diretório não/var/log/journal é criado, se necessário, de modo que sua existência controla onde os dados do log vão.

" none" desativa todo o armazenamento, todos os dados de log recebidos serão descartados.

Demis Palma ツ
fonte
0

Além da resposta de Muru sobre onde os dados são armazenados, há outras respostas relevantes.

Como aumentar journalctlpara encontrar logs de inicialização anteriores

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

Como manter journalctlo tamanho do arquivo baixo

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