Como Usar Journalctl para Ler Logs do Sistema Linux

Por muitos anos, os logs do sistema e do kernel eram gerenciados por um utilitário chamado syslogd. A maioria dos sistemas operacionais baseados em Linux migraram para o systemd, que vem com um daemon de log diferente, o journald. Para interagir com esses logs, você usa o utilitário journalctl.
Dar Permissão ao Usuário para Ler os Logs do Sistema
Somente usuários pertencentes aos grupos “adm” ou “systemd-journal” podem ler os logs do systemd. Distribuições como Ubuntu já adicionam você como um usuário ao grupo adm.
Abra um emulador de terminal e digite o seguinte comando:
groups
Se você ver “adm” ou “systemd-journal” na saída, pode pular o restante dos passos desta seção. Caso contrário, adicione-se ao grupo “adm”.
sudo adduser $USER admVocê terá que reiniciar sua sessão de login para que essa alteração tenha efeito (sair e entrar novamente). Se você não puder fazer isso por vários motivos, use este comando para entrar no novo grupo sem reiniciar a sessão gráfica.
newgrp admNão feche a janela do terminal. Você agora faz parte do grupo adm – na sessão do terminal, mas não na sua sessão gráfica. Se você abrir um novo terminal neste momento, seu usuário não estará mais logado no grupo adm.
Verificar se o Journal É Persistente
Os logs do systemd podem ser persistentes ou voláteis. No Ubuntu e em outras distros, eles são persistentes por padrão. No Debian 9, eles são voláteis, significando que são mantidos apenas na memória (não no disco) e desaparecem ao desligar ou reiniciar. Insira o seguinte comando.
journalctl --list-boots
Se houver várias entradas aqui, não há mais nada que você precise fazer. Isso significa que os journals são mantidos no disco (persistentes). Se você obtiver apenas uma entrada, então o journal é volátil. Mude-o para persistente.
sudosed-i'/Storage/ c\Storage=persistent'/etc/systemd/journald.confSelecionar Qual Entrada de Boot o Journal Visualizar
Normalmente, você vai querer ver o log do boot atual. Em raras ocasiões, você vai querer ver o boot anterior, quando algo deu errado, por exemplo, após uma falha do sistema.
Para visualizar o log do boot atual:
journalctl -b0
Para o boot anterior, use “-1” em vez de “0”, e para dois boots atrás, “-2” e assim por diante.
journalctl -b-1Navegar e Pesquisar pelo Journal do Sistema
Depois de abrir o log com journalctl, você pode navegar pelo texto com as teclas de seta e as teclas PAGE UP ou PAGE DOWN. Outras teclas úteis são:
para ir ao final da saída.
- < para ir ao começo da saída.
- / para pesquisar uma string de texto. Depois de pressionar a tecla de barra, insira a string que você deseja encontrar, seguida de Enter. A pesquisa é sensível a maiúsculas e minúsculas, então “network” não encontrará strings “Network”. A pesquisa começa a partir da sua posição de visualização atual, para baixo. Para pesquisar para cima, use ?.
- n encontra a próxima correspondência em uma pesquisa atual. N encontra a anterior.
- q sai do utilitário journalctl.

Filtrar Entradas de Log por Prioridade
Às vezes, você só quer buscar por erros, ignorando avisos e mensagens de status. Cada entrada em um log tem uma prioridade: emergência, alerta, crítica, erro, aviso, notificação, informação. Essas são listadas em ordem de importância, sendo emergência reservada para os piores cenários (sistema inutilizável). Mensagens de informação são apenas texto informativo, relatando o status de programas que funcionam normalmente.
Para exibir apenas mensagens de erro do boot atual, insira:
journalctl -b0-p err
Se você quiser ver erros de todos os boots, basta remover o parâmetro “-b”:
journalctl -p errEstes são os códigos que você pode passar para o parâmetro “-p”:
- alert
- crit
- debug
- emerg
- err
- info
- notice
- warning
Filtrar Entradas de Log pelo Caminho para o Arquivo Executável do Processo ou Unidade do Systemd
Alguns processos são iniciados e gerenciados por chamadas unidades do systemd. Para ver todos os logs relacionados à unidade de serviço cron, insira:
journalctl -u cron.serviceVocê pode ver quais unidades você tem disponíveis com:
systemctl list-dependencies
Você pode navegar pela lista com as teclas de seta para cima e para baixo. Pressione q para sair.
Se você preferir usar o caminho para o arquivo executável do programa (binário), simplesmente passe seu caminho completo como um argumento.
journalctl /usr/sbin/cronNão esqueça, você também pode filtrar pela entrada do boot atual para se livrar de mensagens desnecessárias.
journalctl -b0/usr/sbin/cronConclusão
O journalctl visa facilitar a busca pelo que você está procurando. Se você quiser aprender sobre parâmetros mais avançados que pode usar, consulte a página do manual do comando journalctl.