Como visualizar e analisar registros no Linux com o journalctl

As mensagens de log são importantes para auditar e manter um sistema Linux saudável. Cada computador Linux armazena mensagens de log 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 registro do sistema que agrega mensagens de registro em um diário. É uma parte do daemon systemd que é responsável pelo registro de eventos no Linux. O diário é simplesmente um arquivo binário usado para armazenar mensagens de log geradas pelo journald.

As mensagens de registro 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 PC reinicia ou fica sem energia. O Linux aloca uma quantidade fixa de RAM para os logs do journald para evitar entupir a memória do seu sistema.

Como usar o comando journalctl

Você pode usar o 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 mensagens de log do diário.

Nota : 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ê executá-lo como um usuário regular 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 do journald em seu sistema em ordem cronológica. O comando usa menos no fundo, o que lhe dá a mesma capacidade de navegação que você normalmente teria com o comando less. Por exemplo, você pode navegar pelos registros usando as teclas F e B do teclado.

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

 sudo journalctl -r

Ver Kernel journald Logs

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 é inicializado. Para visualizar apenas os logs do kernel, especifique a sinalização -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.

Relacionado: O que é um kernel no Linux e como você verifica sua versão?

Filtrar registros de diário por um programa específico

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

 sudo journalctl -u cron

Ver mensagens de registro em tempo real

Às vezes, você pode querer ver os logs em tempo real à medida que 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 o journalctl para filtrar e analisar os logs usando um carimbo de data / hora. Por exemplo, para exibir os registros de ontem até agora:

 sudo journalctl --since=yesterday

Você pode ser mais específico usando um carimbo de data / hora "desde" e "até" detalhado, 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.

Ver mensagens de registro por UID ou PID

Você também pode filtrar os logs do 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 o UID no comando mencionado por PID ou GID (ID do grupo).

Formatando a saída do journalctl

Para visualizar os logs do journalctl usando um formato de saída específico, você deve usar o comando journalctl -o seguido do 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:

Relacionado: Introdução ao registro do sistema no Linux

Configurando o journald no Linux

Este guia mostrou como visualizar e analisar mensagens de log do journald no Linux usando o comando journalctl. O diretório / var / log / journal armazena todos os logs do journald. Observe que nem todas as distros Linux têm o journald habilitado 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 essenciais se você leva a sério a segurança de seus servidores Linux.