Principais Parâmetros do Journalctl

Principais Parâmetros do Journalctl

Veja logs com mais facilidade no seu Linux

Introdução

Não sei você, eu uso Linux diariamente no trabalho e mesmo assim não consigo memorizar todos os parâmetros dos comandos que preciso no terminal. Então, a tarefa de ir pesquisar na internet é relativamente comum. E não tem nada de errado com isso, nosso cérebro não consegue fixar todos os detalhes de tudo. Quando preciso pesquisar uma lista rápida com as principais utilizações de um determinado comando, sempre adiciono o seguinte termo na busca: “cheat sheet + o nome do comando”. Esse termo poderia ser traduzido como folha de dicas, e normalmente me traz um resumo com vários exemplos de aplicação daquele determinado comando. Recentemente, resolvi escrever as minhas próprias listas e mantê-las em um controle local usando o Obsidian (aplicação para organizar notas, textos e afins). Esse ato de pesquisa e escrita, reforça muito mais o aprendizado e facilita a minha busca quando eu necessitar. Nesse artigo publicarei minhas notas acerca do comando journalctl.

Descrição

Ferramenta para visualizar os registros do sistema gerados pelo systemd. O arquivo de configuração para esse utilitário está localizado em /etc/systemd/journald.conf. As configurações encontradas nesse arquivo são os valores padrões, mesmo estando comentadas.

Exemplos de utilização

Ao rodar o comando journactl sem parâmetros, é possível navegar pelos registros usando o padrão do less. Caso se queira remover esse comportamento, basta usar o parâmetro --no-pager.

Ordem reversa

journalctl -r

Mais recentes n linhas

journalctl -n 25

Tempo real

journalctl -f

Padrão UTC

Por padrão, os logs são exibidos no horário da máquina. Para exibir em UTC, use o seguinte parâmentro:

journalctl --utc

Logs do kernel

journalctl -k

Logs de um boot específico

Para listar as sessões de boot:

journalctl --list-boots

Exemplo de saída:

  -5 513008ead8464c23aab732a2feed5277 Sun 2020-07-12 20:43:38 IST—Sun 2020-07-12 22:40:02 IST
  -4 caff16e3f46a4479b5287fb9e294f610 Mon 2020-07-13 07:36:04 IST—Mon 2020-07-13 19:13:44 IST
  -3 5665f41cc50a4dec9955efacc2596d68 Mon 2020-07-13 20:30:55 IST—Mon 2020-07-13 22:20:34 IST
  -2 c7d17407b0bd476a930af503f64b6006 Tue 2020-07-14 07:58:41 IST—Tue 2020-07-14 18:50:04 IST
  -1 7ab5e04518ec455abe0e2c86fdaa46fa Tue 2020-07-14 21:19:27 IST—Tue 2020-07-14 22:42:11 IST
   0 91856e86d4ee4e828717913deb288568 Wed 2020-07-15 08:11:51 IST—Wed 2020-07-15 17:14:10 IST

Para visualizar a sessão -2:

journalctl -b -2

Logs de uma unidade de serviço

journalctl -u service_name

Log de um intervalo de tempo

journalctl --since=yesterday --until=now
journalctl --since "2020-07-10"
journalctl --since "2020-07-10 15:10:00" --until "2020-07-12"
journalctl --since "-1h30min" (logs desse último intervalo)
journalctl --since "1 hour ago"

Logs baseado em UID, GID e PID

journalctl _PID=1234

Logs de apenas erros

journalctl -p 3 -xb

-p 3: filtra logs de prioridade 3, correspondente aos erros -x: evidencia informações adicionais quando disponíveis b: referente ao último boot

Ao invés do número, pode ser usada a string referente à prioridade do logs:

"emerg" (0), "alert" (1), "crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7)

journalctl -p warning -b0

Checar uso de disco pelos logs

journalctl --disk-usage

Limpar logs

Arquivar os logs correntes e começar um novo:

journalctl --rotate

Deletar logs mais antigos:

journalctl --vacuum-time=2d

Restringir tamanho do log

journalctl --vacuum-size=100M

Restringir número de arquivos de log

journalctl --vacuum-files=5

Configuração para controle de espaço

Para não precisar intervir manualmente a todo momento que o log ocupar muito espaço, aqui vão alguns campos para alterar no arquivo /etc/systemd/journald.conf:

ConfiguraçãoDescrição
SystemMaxUsemáximo espaço ocupado em disco
SystemMaxFileSizemáximo tamanho individual por arquivo de log
SystemMaxFilesnúmero máximo de arquivos de log

Para surtir efeito as novas configurações, reinicie o serviço:

systemctl restart systemd-journald