Pesquisa de site

Como visualizar e analisar logs no Linux com journalctl


Quer ficar de olho nas ações e tarefas do usuário que acontecem em sua máquina Linux? Veja como usar o utilitário journalctl.

As mensagens de log são importantes para auditar e manter um sistema Linux saudável. Todo computador Linux armazena mensagens de registro para diferentes serviços ou trabalhos. Este guia explorará como ler e analisar mensagens de log usando journalctl, uma ferramenta de linha de comando para ler mensagens de log escritas por journald.

O que é journald?

Journald é um serviço de log do sistema que agrega mensagens de log em um diário. É uma parte do daemon systemd que é responsável pelo log de eventos no Linux. O diário é simplesmente um arquivo binário usado para armazenar mensagens de log geradas pelo journald.

As mensagens de log do diário não são persistentes porque são armazenadas na RAM, que é uma forma volátil de armazenamento. Por padrão, os logs do journald são perdidos ou apagados sempre que o seu PC reinicia ou fica sem energia. O Linux aloca uma quantidade fixa de RAM para logs journald para evitar o entupimento da memória do sistema.

Como usar o comando journalctl

Você pode usar journalctl para consultar o diário do systemd ou os logs do journald. O sistema indexa todos os logs do journald para melhorar a eficiência ao ler as mensagens de log do journald.

Observação: este guia usa sudo para executar comandos usando privilégios elevados porque o comando journalctl não listará todas as mensagens de log quando você o executar como um usuário normal do Linux.

Ver todas as mensagens de registro

Para visualizar todos os logs do journald, basta executar o comando journalctl sem nenhum argumento:

sudo journalctl

O comando journalctl listará todos os logs journald em seu sistema em ordem cronológica. O comando usa less em segundo plano, o que oferece a mesma capacidade de navegação que você normalmente teria com o comando less. Por exemplo, você pode navegar pelos logs usando as teclas F e B do teclado.

Se você quiser alterar a ordem na qual o sistema gera os logs, ou seja, mostrar o mais recente primeiro, você pode usar o sinalizador -r com o comando. O sinalizador -r significa Reverse.

sudo journalctl -r

Exibir logs diários do Kernel

Os logs do kernel são muito importantes no Linux porque contêm informações relacionadas ao seu sistema desde o momento em que ele inicializa. Para visualizar apenas os logs do kernel, especifique o sinalizador -k com o comando journalctl:

sudo journalctl -k

A saída também listará algumas informações do kernel, como a versão do kernel e seu nome.

Filtrar logs journald por um programa específico

Você também pode visualizar logs relacionados a um programa ou serviço específico usando journalctl. Por exemplo, para visualizar os logs associados ao serviço cron, execute o comando abaixo:

sudo journalctl -u cron

Exibir mensagens de registro em tempo real

Às vezes, talvez você queira visualizar os registros em tempo real enquanto eles são registrados. Para isso, emita o seguinte comando:

sudo journalctl -f

Use o atalho de teclado Ctrl + C para sair da visualização em tempo real.

Obter mensagens de registro por data

Você pode usar journalctl para filtrar e analisar os logs usando um timestamp. Por exemplo, para exibir os logs de ontem até agora:

sudo journalctl --since=yesterday

Você pode ser mais específico usando um carimbo de data/hora detalhado "desde" e "até", como segue:

sudo journalctl --since="2021-07-17 12:00:00" --until="2021-07-17 15:00:00"

Journalctl exibirá apenas as mensagens de log para o período especificado.

Exibir mensagens de log por UID ou PID

Você também pode filtrar logs journald usando o ID do usuário (UID) ou o ID do processo (PID). A sintaxe básica é:

sudo journalctl _UID=0

...onde 0 é o UID da conta root. Você também pode substituir UID no comando mencionado anteriormente por PID ou GID (ID de grupo).

Formatando a saída journalctl

Para visualizar logs journalctl usando um formato de saída específico, você deve usar o comando journalctl -o seguido pelo seu formato preferido. Por exemplo, para exibir os logs em um formato JSON bonito, execute o comando abaixo:

sudo journalctl -o json-pretty

Saída :

Configurando o journald no Linux

Este guia mostrou como visualizar e analisar mensagens de log journald no Linux usando o comando journalctl. O diretório /var/log/journal armazena todos os logs journald. Observe que nem todas as distribuições do Linux têm o journald ativado por padrão.

Você pode usar o arquivo /etc/systemd/journald.conf para configurar ou fazer alterações na configuração do journald em seu PC. Além de um serviço de registro eficaz, existem várias outras ferramentas que são obrigatórias se você levar a sério a segurança de seus servidores Linux.

Artigos relacionados: