Definição do log de erros
Um log de erros é um arquivo que contém registros detalhados de condições de erros que o software do computador encontra durante a execução. O nome é genérico: às vezes, uma aplicação pode registrar mensagens que não são de erro no log de erros. No entanto, logs de erros geralmente devem registrar apenas mensagens de erros geradas por um programa, que pode ser um sistema operacional de um servidor ou rede ou uma aplicação de terceiros. Neste artigo, vamos nos concentrar apenas em logs de erros de aplicação.
Quando uma aplicação tem uma interrupção ou um problema de desempenho, a forma mais rápida de encontrar a causa raiz é analisar o log de erros e verificar as mensagens contidas nele. Logs de erros de alta qualidade fornecem informações suficientes para iniciar a solução de problemas. Eles podem indicar o que aconteceu, quando aconteceu, a gravidade e até mesmo o nome do módulo responsável ou um ID de rastreio para fazer uma correlação com outros eventos.
Os logs de erros são inestimáveis para sistemas de monitoramento tradicionais e de gerenciamento e correlação de eventos de segurança (SIEM). Essas soluções de monitoramento podem analisar e identificar erros críticos dos logs, mostrar tendências históricas de erros semelhantes e enviar alertas de incidentes relacionados à segurança.
Este artigo mostrará o conteúdo de um log de erros típico, como ele pode oferecer suporte à sua equipe de operações e como obter o valor máximo dele.
O que os logs de erros contêm?
Os logs de erros podem ter dois tipos de erros de aplicação: mensagens de erro não tratadas e mensagens de erro personalizadas. Uma mensagem de erro não tratada também é chamada de mensagem não capturada, pois não é tratada pelo código do desenvolvedor. Às vezes, as bibliotecas ou tempos de execução de uma aplicação geram um erro. Esses tempos de execução não são escritos pelo desenvolvedor da aplicação, mas adicionados pelo compilador durante a fase de compilação. Alguns exemplos de erros não tratados são incompatibilidade de tipos de variáveis, divisão por zero e assim por diante.
Por outro lado, as mensagens de erro personalizadas são registradas por manipuladores de exceção no código do programa. Essas são condições de erros que o desenvolvedor previu e para as quais escreveu um código. Por exemplo, uma aplicação de banco pode registrar um erro quando o usuário tenta sacar um valor maior do que tem no saldo, e a mensagem provavelmente será mais legível para humanos.
A utilidade de um log de erros depende do nível de informação que ele registra para cada evento de erro. Sem detalhes suficientes, é difícil fazer uma correção. Aplicações diferentes fornecerão detalhes variados dos erros, mas entradas de log de erros bem projetadas são estruturadas e possuem alguns campos em comum:
Timestamp
Este campo mostra a data e a hora em que o erro ocorreu. Idealmente, deve também incluir o fuso horário. Isso é particularmente útil para sistemas distribuídos. O padrão ISO 8601 é um formato comumente adotado. Ele parece algo assim:
2022-04-15T14:19:10+00:002022-04-15T14:20:10+00:00
…
Nível de gravidade
A maioria das entradas de log incluem um nível para identificar sua criticidade que indica se é necessária atenção imediata. Os níveis comumente usados são TRACE, DEBUG, INFO, WARN, ERROR e FATAL, com TRACE sendo o de menor importância e FATAL o mais crítico. Os sistemas de monitoramento podem enviar alertas automaticamente com base nesses níveis de gravidade e disparar ações automatizadas.
Por exemplo, um volume que está prestes a ficar sem espaço em disco pode ser registrado com um nível WARN. Quando uma solução de monitoramento encontra esse erro, pode enviar uma mensagem de alerta à equipe de operações e criar um tíquete de suporte. Por outro lado, um espaço em disco totalmente saturado pode ser registrado como CRITICAL, e a solução de monitoramento pode ampliar a unidade automaticamente.
Usuário
Este campo mostra o nome de usuário da rede associado ao erro. Normalmente, a ação do usuário do sistema foi a que causou o erro. Os nomes de usuários podem ser úteis para solução de problemas ou a realização de análise histórica. Por exemplo, você pode analisar logs de erros para identificar se alguns usuários estão enfrentando mais erros do que outros. No entanto, nem todo evento de log tem um usuário associado.
Descrição
Esta é uma breve explicação do erro. Os logs de erros são muitas vezes acessados em situações que requerem urgência, então é essencial que a descrição do erro seja sucinta, mas forneça as informações necessárias. Por exemplo, quando um usuário não consegue acessar uma aplicação, uma descrição simples de erro como "Acesso negado" não ajuda muito. Uma descrição melhor seria "Acesso negado: privilégios insuficientes".
Além dos campos comuns, você verá com frequência alguns outros atributos nos logs de erros, entre eles:
- IDs de erro: são usados para identificar exclusivamente cada tipo de erro.
- Endereços IP: algumas mensagens de erro mostram os endereços IP dos dispositivos de origem e destino.
- Dispositivo ou servidor: pode ser o nome da rede ou o endereço IP do dispositivo em que a aplicação gerou um erro.
Benefícios do log de erros
Os logs de erros são como caixas-pretas de um avião: o primeiro ponto de parada para a maioria dos engenheiros de suporte. Aqui estão alguns de seus benefícios:
Melhoria dos tempos de resolução
Os logs de erros ajudam a reduzir o tempo médio de resolução (MTTR) do seu ambiente de TI, especialmente ao serem ingeridos por um sistema de gerenciamento de log moderno. Essas soluções de gerenciamento de log permitem que você filtre, pesquise e encontre erros de seu interesse, analise de forma mais detalhada valores de campos específicos, correlacione eventos entre vários logs de erros e preveja possíveis problemas futuros. Tudo isso pode levar a medidas proativas para reduzir ainda mais as chances de tempo de inatividade.
Tomada de decisão mais fácil
Painéis, gráficos de tendências, principais N erros por importância e vários relatórios de soluções de gerenciamento de log podem ajudar você a identificar quais erros são críticos, como está o desempenho dos sistemas afetados e se requerem atenção imediata. Da mesma forma, os padrões nos logs de erros podem indicar problemas ocultos e possibilitar que equipes tomem medidas rápidas e proativas para evitar reclamações dos clientes.
Melhor desempenho
Os logs de erros podem mostrar problemas de desempenho da aplicação. Você pode identificar quando a sua aplicação trava, tem problemas de memória ou tem baixa taxa de transferência. A análise dos logs ao longo do tempo pode revelar circunstâncias comuns de gargalos de desempenho. Por exemplo, examinar um log de erro que contém eventos de carrinho de compras abandonado pode mostrar a você que sua aplicação de e-commerce está enfrentando problemas de desempenho durante as vendas de Black Friday. Com isso, você pode decidir dimensionar sua infraestrutura somente durante esses períodos.
Segurança reforçada
Os logs de erros são cruciais para solucionar incidentes de segurança. A análise de registros históricos de erros relacionados à segurança pode ajudar você a separar o comportamento normal do suspeito. Por exemplo, se você descobrir que uma aplicação tem um padrão consistente de várias tentativas de login com falha em diversas contas de usuário, será importante descobrir se esses usuários ainda estão ativos e pedir a eles que usem senhas mais seguras ou até autenticação de dois fatores. Com uma ferramenta de orquestração, automação e resposta de segurança (SOAR), você pode ir além, adicionando uma ação automatizada para desabilitar as contas.
Obtenha o máximo dos logs de erros
Apesar dos benefícios óbvios, os logs de erros podem muitas vezes ser muito prolixos. A ingestão, análise e indexação de muitos desses eventos pode ser demorada para sistemas de gerenciamento de log. É por isso que é melhor seguir alguns princípios gerais para aproveitar ao máximo os logs de erros.
Use filtros
É importante remover eventos desnecessários do log de erros e capturar apenas aqueles nos quais você tem interesse. Você pode fazer isso ao configurar a aplicação para registrar somente determinados tipos de eventos ou aqueles com um nível de gravidade específico ou superior. Outra opção é filtrar somente os eventos relevantes e enviá-los para a aplicação que faz os registros.
Decida o que fazer com os eventos
Use o nível de gravidade para decidir o tipo de ação a ser tomada. Por exemplo, você pode querer disparar alertas e ações automatizadas para erros CRITICAL ou FATAL e criar tíquetes de problema para qualquer situação no nível WARN. Para definir essas atividades, você precisa de feedback dos seus proprietários da aplicação e de negócios, líderes técnicos e equipes de operações.
Alerte apenas as equipes relevantes
Depois de determinar quais eventos você deseja capturar e o que fazer com eles, faça com que as equipes relevantes recebam alertas sobre eles. O envio desnecessário de alertas a todas as pessoas pode causar fadiga de erros, resultando na possível perda de eventos importantes. Por exemplo, a equipe de infraestrutura deve receber erros relacionados ao armazenamento, enquanto a equipe de SecOps deve receber os relacionados à segurança.
Analise os erros ao longo do tempo
Mesmo quando não estiver solucionando um problema, você pode examinar as tendências históricas de erros em busca de anomalias e compará-las a períodos semelhantes do passado. Essas tendências podem ser úteis para estabelecer linhas de base e benchmarking. Por exemplo, quando você identifica o surgimento de erros relacionados ao desempenho depois que o uso da CPU atinge 80% ou a taxa de conexão do cliente API indo além de 50 por segundo, sabe que esses são os indicadores de linha de base. Você pode usá-los para benchmarking ao adicionar mais capacidade de infraestrutura.
Torne os alertas acionáveis
Os alertas acionados a partir de erros devem sempre ter um plano de ação claro e e que foi acordado entre as equipes. Uma matriz RACI é uma ferramenta valiosa para identificar os principais contatos quando os alertas são acionados. Da mesma forma, os playbooks são úteis para ações automatizadas. As equipes de operações devem aproveitar as funcionalidades de automação das suas soluções de gerenciamento de log para acelerar os tempos de resposta e melhorar a qualidade do serviço.
Descubra a plataforma nativa de IA de liderança mundial para SIEM e gerenciamento de log de última geração
Eleve sua cibersegurança com o CrowdStrike Falcon®, a principal plataforma nativa de IA para SIEM e gerenciamento de log. Experimente registro de log de segurança em uma escala de petabytes, optando por nativo em nuvem ou implementação auto-hospedada. Registre seus dados com uma arquitetura avançada e livre de índices, sem gargalos e que permite investigação de ameaças com mais de 1 PB de ingestão de dados por dia. Assegure capacidades de pesquisa em tempo real para superar os adversários, atingindo latência de menos de um segundo para consultas complexas. Beneficie-se de uma visibilidade de 360 graus, consolidando os dados para eliminar silos e possibilitar que as equipes de segurança, TI e DevOps investiguem ameaças, monitorem o desempenho e garantam a conformidade perfeitamente em 3 bilhões de eventos e em menos de um segundo.