O registro em log e a saída do programa estão integrados em toda a estrutura do sistema Linux. No Linux, os logs servem como uma fonte vital de informações sobre incidentes de segurança, atividades de aplicativos e eventos do sistema. O gerenciamento eficaz dos seus logs é fundamental para a solução de problemas e para garantir a conformidade. Este artigo explora a importância do registro e os principais tipos de registros antes de abordar algumas ferramentas úteis de linha de comando e outras dicas para ajudá-lo a gerenciar os registros do Linux.
A importância do registro em log
O registro em log fornece uma visão geral de alto nível dos aplicativos e processos que o sistema executa automaticamente em segundo plano. Esses logs fornecem uma trilha de auditoria para descobrir o que um sistema está fazendo ou deixando de fazer e os sucessos e erros gerados durante essas atividades. Muitos aplicativos no ecossistema Linux produzem resultados que podem ser lidos por humanos e, se esses resultados forem redirecionados para um arquivo de registro, analisados automaticamente por ferramentas incluídas em um sistema Linux. Embora você não precise necessariamente entrar em um registro para fazer isso, recuperar informações históricas sem que essas informações existam em um registro seria difícil, se não impossível.
É importante reconhecer um dos benefícios significativos que isso proporciona no local de trabalho. Ao integrar perfeitamente a interface do usuário com a arquitetura do sistema subjacente, o ciclo de feedback é reduzido durante a fase de desenvolvimento e depois dela. Em seguida, ele gera resultados valiosos que podem ser transformados em insights acionáveis durante todo o ciclo de vida do aplicativo. Assista a Gerenciamento de registros do Linux: Techniques and Best Practices (Técnicas e práticas recomendadas) para técnicas de gerenciamento e aproveitamento eficaz de logs.
Tipos de registros
- Registros do sistema: capturam informações sobre o sistema operacional, como mensagens de inicialização, eventos de hardware e atividades do kernel.
- Logs de aplicativos: registram eventos específicos relacionados ao software, como mensagens de manutenção, erros, avisos e atividades do usuário.
- Registros de segurança: manter o controle de eventos relacionados à segurança, incluindo acesso não autorizado, logins regulares e atividades de firewall.
Qualquer um deles pode servir como entrada ou acionador de aplicativos ou scripts, incluindo a integração com a maioria dos softwares sérios de monitoramento empresarial.
Formatos de registro Syslog e journald
Os arquivos de registro podem ser armazenados em diferentes formatos, sendo que dois dos mais comuns são os registros de sistema registrados em diário (centralizados) e os registros de texto simples.
Tradicionalmente, o formatosyslog é armazenado em registros de texto simples, que são facilmente lidos e analisados. Esse formato tem vantagens e desvantagens, assim como o journald, que armazena os registros em um formato binário que pode ser lido pelo comandojournalctl.
A maioria das distribuições Linux modernas tende a utilizar os logs journald do systemd para, pelo menos, seus principais aplicativos de sistema. Os logs de diário do Systemd oferecem vantagens como recursos de registro centralizado, monitoramento de registro em tempo real de dados de registro estruturados e indexados e criptografia automática de registro. Em comparação, a natureza indiscutivelmente menos restritiva dos registros tradicionais de texto simples do Linux pode parecer mais arriscada à primeira vista. Mas não se deixe enganar; os registros em texto simples ainda têm muitos usos.
A maioria ou todas as funções incorporadas ao systemd, como sistemas de registro remoto, monitoramento centralizado, rotação de registros e backups, também são oferecidas por outros pacotes padrão do Linux. Uma desvantagem do journald é sua natureza monolítica comparativamente “pesada” em relação às ferramentas de linha de comando do Linux mais granulares usadas para interagir com os arquivos syslog, como grep, awk ou tail. Em comparação, ao usar o journald, você obtém todos os seus recursos instalados e em funcionamento: armazenamento, criptografia, registro centralizado, rotação de registros e muito mais, independentemente de você precisar ou não deles.
Comparação de recursos: registro syslog vs journald
| Recurso | registro sistêmico | diário |
| Formato de armazenamento | Arquivos de texto simples | Formato binário com dados estruturados |
| Compatibilidade | Amplamente suportado por várias ferramentas de gerenciamento de registros | Requer integração com o systemd para obter funcionalidade total |
| Rotação de registros | Configuração manual da rotação de registros | Rotação e compactação automáticas de arquivos de registro |
| Gerenciamento centralizado | Depende de servidores e ferramentas de registro externos | Suporte integrado para registro centralizado |
| Filtragem e análise | Funcionalidade avançada de filtragem e análise de texto da cadeia de ferramentas padrão do Linux | Filtragem e consulta avançadas usando o journalctl |
| Eficiência de armazenamento | Pode consumir mais espaço em disco devido ao formato de texto simples | Armazenamento mais eficiente devido ao formato binário e indexado |
| Monitoramento em tempo real | Requer ferramentas externas ou arquivos de registro de acompanhamento | Monitoramento integrado de registros em tempo real com journalctl |
| Confiabilidade | Vulnerável à corrupção ou perda de arquivos de registro em caso de falhas | Gravações atômicas e estrutura de arquivo de diário resiliente |
| Criptografia | Mecanismos de criptografia externa podem ser necessários | Oferece suporte à criptografia de dados de registro |
Filtragem e análise de dados de registro: exemplos úteis
Exemplos de diários:
Exemplo: journalctl -p err
Explicação: Filtra os registros do diário para exibir apenas entradas com o nível de gravidade “err “, que representa erros. Isso permite que você se concentre nas mensagens de erro e identifique rapidamente quaisquer problemas críticos nos logs do sistema.
Exemplo: journalctl _SYSTEMD_UNIT=nginx.service
Explicação: Filtra os registros de diário para exibir entradas relacionadas ao nginx. service. Ajuda a isolar logs específicos, por exemplo, do servidor da Web Nginx, facilitando a solução de problemas ou o monitoramento de suas atividades.
Exemplo: journalctl –since “2023-07-21” –until “2023-07-22”
Explicação: Filtra os registros de diário para exibir entradas entre as datas especificadas, nesse caso, de 21 de julho de 2023 a 22 de julho de 2023. Permite que você se concentre em entradas de registro dentro de um intervalo de tempo específico, ajudando na depuração ou na investigação de eventos que ocorreram durante esse período.
Exemplos de Syslog:
Exemplo: grep -i “warning” syslog.log | grep -v “deprecated”
Explicação: Executa um processo de filtragem em duas etapas. Primeiramente, usao grep com a opção -i para fazer uma pesquisa com distinção entre maiúsculas e minúsculas das linhas que correspondem à string “warning” em syslog.log e, em seguida, canaliza a saída para outro comando grep com a opção-v, excluindo as linhas que correspondem à string “deprecated”. Isso permite que você filtre as mensagens de aviso marcadas especificamente como obsoletas.
Exemplo: grep ‘string1|string2[|string3]’ logfile.log
Explicação: Efetivamente, uma pesquisa OR usando grep. O uso de aspas simples e o escape do símbolo de pipe entre elas permitem que você pesquise várias cadeias de caracteres em um único comando grep.
Outras dicas de ferramentas de registro
Embora as ferramentas padrão do Linux sejam empregadas para o benefício do próprio sistema, também é útil empregar essas ferramentas em outros lugares:
- logrotate: Útil na fase de desenvolvimento do aplicativo para ajudar a gerenciar os registros de saída de depuração
- tail -f: o comando “tail” imprime as últimas 10 linhas de um arquivo antes de sair. A opção“ -f” “segue” o arquivo de registro, observa as novas entradas do arquivo de registro e as atualiza à medida que novas linhas são adicionadas.
- multitail: Exibe vários arquivos de log em painéis lado a lado em tempo real para que você possa monitorá-los simultaneamente.
Neste artigo, discutimos vários aspectos da importância do registro, comparamos diferentes tipos de registros e abordamos casos de uso menos comuns para registro em seu próprio trabalho. Também exploramos vários exemplos de comandos e outras ferramentas que contribuem para o gerenciamentoeficaz de logs do Linux. Use os logs do Linux para rastrear informações sobre os sistemas operacionais, aplicativos e sistemas Linux e gerenciar melhor os pontos de extremidade do Linux. Saiba mais sobre o software de monitoramento remoto e gerenciamento de endpointsda NinjaOne e como ele pode ajudá-lo a gerenciar mais facilmente seus dispositivos Linux distribuídos.
Assista ao vídeo guia em Understanding Linux Logs: Visão geral com exemplos.