JanelasMacSoftwareConfiguraçõesSegurançaProdutividadeLinuxAndroidDesempenhoConfiguraçãoApple Tudo

Como usar journalctl para logs no Debian

Editado 2 dias atrás por ExtremeHow Equipe Editorial

DebianjournalctlRegistrosInterface de Linha de ComandoAdministração de SistemasLinuxMonitoramentoCódigo AbertoSolução de problemasSoftware

Como usar journalctl para logs no Debian

Tradução atualizada 2 dias atrás

O Debian é conhecido por sua estabilidade e vasto repositório de pacotes de software. Um dos principais aspectos de manter um sistema estável e seguro é monitorar regularmente os logs do sistema. Os logs ajudam os administradores de sistemas a entender o que está acontecendo dentro do sistema. Eles podem fornecer informações valiosas para solucionar problemas ou entender o desempenho do sistema.

O método tradicional de gerenciamento de logs em sistemas Linux é usar arquivos de texto localizados no diretório /var/log. Esses logs são gerenciados por vários serviços, como syslog ou, mais especificamente, rsyslog em muitos sistemas Debian. No entanto, com o advento do systemd, um novo sistema de registro chamado journald entrou em uso, e ele oferece algumas melhorias e recursos notáveis em comparação com os métodos de registro tradicionais.

Neste documento, discutiremos em detalhes como você pode usar o comando journalctl para visualizar e gerenciar logs systemd no Debian. Vamos explorar este comando poderoso e aprender como ele pode ajudá-lo a gerenciar seus logs de sistema de forma eficaz.

Introdução ao JournalCTL e SystemD

Antes de discutir o uso do journalctl, é importante ter uma compreensão básica do systemd e do journald. O systemd é um gerenciador de sistema e serviços para o sistema operacional Linux. Ele foi projetado para fornecer melhor gerenciamento de serviços e desempenho de inicialização. O journald é o componente de registro do systemd, responsável por coletar e armazenar logs.

Diferente dos métodos tradicionais de registro que armazenam logs como arquivos de texto simples, o journald armazena logs em formato binário, que pode fornecer vários benefícios, incluindo desempenho melhorado, capacidade de indexação e filtragem.

O comando journalctl é usado para consultar esses dados de log binários, com uma ampla gama de opções de filtragem para torná-lo o mais versátil possível.

Uso básico do journalctl

A maneira mais simples de usar o journalctl é executá-lo sem nenhum argumento ou opção. Isso exibirá todas as entradas de log disponíveis, começando pela mais antiga.

$ journalctl

O log será exibido com um carimbo de data e hora e mensagem para cada entrada. No entanto, dado o potencialmente grande volume de entradas, usar uma opção para visualizar o log diariamente não é geralmente prático, especialmente em sistemas que estão em execução há muito tempo.

Visualizando os logs mais recentes

Frequentemente, você terá interesse em ver apenas os logs mais recentes, em vez de vasculhar entradas mais antigas. Usando o sinalizador -n seguido por um número, você pode especificar quantas linhas recentes deseja ver:

$ journalctl -n 50

Este comando obtém as últimas 50 entradas de log. O comportamento padrão, sem especificar um número, é mostrar as últimas dez linhas:

$ journalctl -n

Acompanhar os logs em tempo real

Outro recurso útil é a capacidade de acompanhar logs em tempo real à medida que são gerados, semelhante ao comando tail -f para logs tradicionais. Isso pode ser alcançado com o sinalizador -f:

$ journalctl -f

Este comando exibirá novas entradas de log à medida que aparecem, o que é especialmente útil para monitorar a saída de logs durante sessões de resolução de problemas.

Filtrando o log

Um dos aspectos poderosos do journalctl é sua capacidade de filtrar logs usando uma variedade de critérios. Isso é importante quando você precisa identificar certos eventos ou tipos de entradas de log.

Filtrar por tempo

Você pode facilmente filtrar os logs por um intervalo de tempo específico usando as opções --since e --until. Ambas as opções aceitam vários formatos de tempo, incluindo tempo relativo:

$ journalctl --since "2023-03-01 00:00:00" --until "2023-03-01 23:59:59"

Você também pode usar tempo relativo:

$ journalctl --since "1 hour ago"

Aqui, os logs da última hora são exibidos.

Filtrando por unidade

Uma vez que o journald está intimamente integrado ao systemd, que gerencia os serviços como "unidades", você pode filtrar os logs para uma unidade de serviço específica. Use o sinalizador -u seguido pelo nome da unidade:

$ journalctl -u apache2.service

Isso mostrará apenas logs relacionados ao serviço do Servidor Web Apache, o que é útil para diagnosticar problemas específicos de serviço.

Filtrar por prioridade

Os logs do systemd têm diferentes prioridades. Se você estiver interessado apenas nas mensagens de log mais sérias, pode filtrar os logs de acordo com essas prioridades:

$ journalctl -p err

Este comando exibirá apenas entradas de log com um nível de prioridade "erro" ou superior, que pode incluir mensagens "críticas", "aviso" e "emergência".

Combinação de filtros

Você pode combinar diferentes filtros para limitar ainda mais os logs. Por exemplo, se você quiser obter mensagens de erro do serviço Apache2 na última hora:

$ journalctl -u apache2.service -p err --since "1 hour ago"

Essa flexibilidade permite que você se concentre rapidamente nos logs de interesse.

Log Persistente

Por padrão, o journald pode não armazenar logs persistentes entre reinicializações em alguns sistemas. Isso pode ser confirmado visualizando os logs após uma reinicialização. Se você deseja habilitar o log persistente, certifique-se de que o diretório /var/log/journal exista. Se não estiver lá, crie-o:

$ sudo mkdir -p /var/log/journal $ sudo systemctl restart systemd-journald

Isso configurará o journald para armazenar logs de forma persistente entre reinicializações no formato binário de journal.

Limpando e Gerenciando Logs do Journal

Com o tempo, os logs do journal podem se acumular e ocupar um espaço significativo no disco. Você pode gerenciar o uso de espaço em disco com o comando journalctl:

Verificar o uso de disco do log do journal

Você pode ver quanto espaço os logs do journal ocupam usando a opção --disk-usage:

$ journalctl --disk-usage

Este comando exibirá o espaço total usado pelo log do journal.

Removendo logs antigos

Você pode excluir logs mais antigos usando as opções --vacuum-time, --vacuum-size ou --vacuum-files. Por exemplo, se você deseja excluir logs mais antigos que duas semanas, use o seguinte comando:

$ sudo journalctl --vacuum-time=2weeks

Para reter apenas uma certa quantidade de megabytes de logs (por exemplo, 500MB), use:

$ sudo journalctl --vacuum-size=500M

O método acima permite que o log do journal use até o espaço especificado no disco.

Exportando e salvando logs

Às vezes, pode ser necessário compartilhar ou inspecionar logs fora do ambiente do journal. Você pode exportar logs em vários formatos com journalctl:

Exportando para arquivos de texto

Você pode redirecionar a saída do log do journal para arquivos de texto simples para fácil compartilhamento ou arquivamento:

$ journalctl > /path/to/your/output.txt

Este comando copiará todo o log para um arquivo de texto. Você pode aplicar filtros conforme necessário para limitar a saída.

Exportando para JSON

Para produzir logs no formato JSON, que pode ser analisado programaticamente por várias ferramentas, use a opção -o json:

$ journalctl -o json-pretty > /path/to/your/output.json

Este comando gerará uma representação JSON dos logs, facilitando a análise programática dos dados de log.

Criando um backup binário do Journal

Se você deseja um backup binário que inclua todos os metadados adicionais, pode usar a opção --output-export:

$ journalctl --output-export > /path/to/backup.journal

Isso permite que você preserve todas as informações específicas do journal em um formato que pode ser facilmente reimportado no systemd-journal usando journalctl --merge com o arquivo de backup.

Conclusão

O comando journalctl é uma ferramenta poderosa em sistemas Debian onde o systemd é usado para gerenciar logs via journald. Ele fornece capacidades robustas para visualizar, filtrar e gerenciar logs de sistema, proporcionando uma vantagem significativa sobre os métodos tradicionais de log em termos de flexibilidade e eficiência.

Através de comandos simples, o journalctl permite que você visualize logs cronologicamente, os acompanhe em tempo real, filtre por várias condições e gerencie os dados de log armazenados em seu sistema. Para administradores de sistemas e usuários, entender como aproveitar o journalctl pode levar a um melhor monitoramento de eventos do sistema e a uma solução de problemas mais rápida, contribuindo, em última análise, para manter um ambiente operacional suave.

Se você encontrar algo errado com o conteúdo do artigo, você pode


Comentários