Em geral, o software do computador registra informações em logs da aplicação quando um evento ocorre. Alguns exemplos podem ser um servidor Web que registra uma transferência de dados, uma instância de banco de dados que registra a conclusão bem-sucedida de um backup ou um firewall que registra solicitações de conexão com falha.
As equipes de TI usam dados do log da aplicação para investigar interrupções, resolver bugs ou analisar incidentes de segurança. A análise dos logs da aplicação podem ajudar essas equipes a determinar a causa raiz de incidentes.
À medida que mais sistemas de gerenciamento de log entram no mercado, as empresas estão usando logs da aplicação para mais do que apenas solução de problemas. Elas estão usando eventos registrados em log para investigar incidentes de segurança, rastrear o comportamento dos clientes, planejar a capacidade do sistema e auditar a conformidade regulatória.
Neste artigo, veremos o que é um log da aplicação, os diferentes tipos e como uma ferramenta de gerenciamento de log centralizada pode ajudar você a extrair insights acionáveis de negócios desses logs. Também apresentaremos o Humio, uma solução moderna de gerenciamento de log.
O que é um log da aplicação?
As aplicações de software geram logs quando algo ocorre dentro delas ou as afetam. Normalmente, as aplicações gravam as informações relevantes do log em um arquivo no servidor da aplicação. Para economizar espaço em disco, algumas organizações configuram as aplicações para enviar seus logs a um compartilhamento de rede, um servidor Syslog dedicado ou uma aplicação de registro em log por meio de um webhook. As aplicações baseadas em nuvem podem gravar seus logs no serviço de registro em log da nuvem.
Alguns eventos de log são relacionados a estados internos da aplicação. Alguns exemplos:
- Vazamentos de memória
- Erros de caminho não existente
- Exceções não tratadas no código
- Uma falha no sistema
Outros tipos de eventos são relacionados a fatores externos reconhecidos pela aplicação. Alguns exemplos:
- Avisos de espaço em disco
- Reinicializações do servidor
- Perda de acesso da rede
Cada aplicação é diferente, então os eventos registrados em log vão depender de como os desenvolvedores a configuraram para registrar os eventos. Geralmente, eventos críticos como erros ou avisos são registrados por padrão. No entanto, você também pode ver eventos relacionados a operações bem-sucedidas como data transfer complete, backup successful ou shutting down gracefully.
Alguns campos comuns estão presentes na maioria dos logs da aplicação:
- Carimbo de data/hora: a data e a hora do evento, que pode ser no horário local do servidor ou em outro fuso horário, como UTC.
- Nível do log: a gravidade do evento. Alguns exemplos são
DEBUG,INFO,WARNINGeCRITICAL. - Nome de usuário: o usuário da rede (ou conectado) responsável pelo evento. Para alguns eventos relacionados ao sistema, esse campo estará em branco.
- IP de origem: o endereço IP do cliente (processo da aplicação ou usuário). Para eventos locais, esse campo pode estar vazio.
- IP de destino: o endereço IP do servidor local.
- Mensagem do evento: a descrição do evento, geralmente em formato de texto curto.
Tipos de log da aplicação
Dependendo dos eventos registrados em log, pode haver diferentes tipos de logs da aplicação.
Logs de acesso, autenticação e autorização
Estes logs mostram:
- Quem fez o login (e o logout)
- Se a operação foi realizada com sucesso
- Quem acessou os recursos da aplicação, como arquivos ou tabelas de bancos de dados
- Quem solicitou dados
- Como eles se moveram pela rede
Esses logs são úteis para refazer as ações do usuário na rede. Você pode usar esses logs para solucionar problemas de acesso, investigar incidentes de segurança ou até analisar o comportamento do usuário.
O trecho abaixo mostra um log de acesso do Apache:
127.0.0.1 - jbloggs [12/Oct/2021:13:55:36 -0700] "GET /server-status HTTP/1.1" 404 2457
Aqui, o evento registrado em log mostra que o usuário jbloggs acessou o servidor Web local em 12 de outubro de 2021 às 13h55, no horário do servidor local. O usuário acessou a página server-status na raiz do servidor Web, mas esse servidor retornou um erro 404 (erro de página não encontrada). Os dados transferidos tinham 2457 bytes de tamanho.
Logs de alteração
Os logs de alteração mostram a você as alterações feitas na aplicação. Alguns exemplos de alteração:
- Adicionar novos usuários
- Alterar permissões
- Colocar endereços IP na whitelist
- Alterar parâmetros de configuração
- Atualizar versões de software
Quando algo em uma aplicação deixa de funcionar, uma das possíveis causas raiz é uma alteração na configuração feita recentemente. Os logs de alteração ajudam a identificar o que foi alterado, quando essa alteração ocorreu e quem a fez. Essas informações podem ajudar você a solucionar o problema com rapidez.
A equipe de SecOps também pode usar logs de alteração para detectar incidentes de segurança. Por exemplo, a equipe pode definir alertas durante a criação de novos usuários com privilégios ou o registro de uma nova biblioteca de software.
O evento abaixo mostra que o administrador do Active Directory criou um novo usuário.
A user account was created.Subject:
Security ID: DOMAIN-FRadministrator
Account Name: administrator
Account Domain: DOMAIN-FR
Logon ID: 0x20f9d
New Account:
Security ID: DOMAIN-FRJohn.Bloggs
Account Name: John.Bloggs
Account Domain: DOMAIN-FR
Logs de erros
Os logs de erros fornecem mais detalhes sobre operações que deram errado na aplicação. Alguns erros não vão causar uma degradação do desempenho. Porém, se não forem resolvidos, poderão causar uma interrupção. O monitoramento de logs de erros ajuda a identificar problemas antes que eles se tornem incidentes, reduzindo assim o tempo médio de recuperação (MTTR). A análise histórica pode destacar padrões de desempenho ou de comportamento dos usuários que estão levando a condições de erro.
Por exemplo, se os usuários recebem constantemente erros de tempo limite, isso pode indicar latências de rede, problemas de capacidade ou limiares de tempo limite configurados de forma incorreta. Erros de bibliotecas da aplicação podem significar um problema de incompatibilidade após uma atualização ou uma versão de biblioteca sem suporte.
Quando logs de erros revelam exceções não tratadas na aplicação, essas informações podem ajudar os desenvolvedores a melhorar o sistema com uma correção.
Os erros de aplicação podem ocorrer por vários motivos, e é por isso que os eventos no log de erros podem variar imensamente. Alguns erros comumente registrados em log:
- Avisos de espaço em disco
- Licença prestes a expirar
- Aplicação travando
- Exaustão da memória
- Despejos de memória
- … e muito mais.
O trecho de código abaixo mostra um desses eventos de erro que foi gerado devido a espaço em disco insuficiente.
"EventTime": "2022-06-22T13:48:55.445645-08:00","Hostname": "WIN-26101992",
"Message": "There is not enough disk space available to complete this operation",
"Severity": "CRITICAL"
Logs de disponibilidade
Os logs de disponibilidade mostram informações sobre a disponibilidade da sua aplicação. Alguns exemplos de logs de disponibilidade:
- Logs de cluster que mostram failovers ou a adição/remoção de nós
- Logs de sistema que mostram backups de dados com sucesso
- Logs de sistema operacional que mostram desligamentos e reinicializações
- Logs de replicação que mostram latências
Os logs de disponibilidade são úteis para criar relatórios de SLA. Você pode calcular o tempo de atividade da aplicação, investigar qualquer desligamento ou failover não planejado ou confirmar um comportamento esperado durante as janelas de manutenção. O trecho a seguir mostra um exemplo de uma entrada de log de disponibilidade:
"EventTime": "2022-06-22T13:48:55.445645-08:00","Hostname": "WIN-26101992",
"Uptime": "72000",
"LastReboot": "2022-06-21T17:48:55.487655-08:00"
"Severity": "INFO"
Benefícios de usar soluções de gerenciamento de log
A análise de logs da aplicação diretamente no sistema host pode ser desafiadora. Os logs da aplicação são geralmente prolixos, complexos e difíceis de correlacionar. Além disso, alguns logs são atualizados continuamente, então acompanhar todas as mensagens pode ser uma tarefa trabalhosa. Por fim, as aplicações distribuídas têm muitas partes móveis e cada uma tem seu próprio log. Correlacionar todos os logs de um evento específico pode ser como procurar uma agulha em um palheiro.
É nisso que as soluções de gerenciamento de log podem ajudar. Uma solução de gerenciamento de log ingere logs da aplicação de todos os seus sistemas, analisa e indexa esses logs e permite a você executar pesquisas nesses dados. Isso resulta em diversos benefícios.
Solução de problemas mais rápida
As soluções de gerenciamento de log tornam a resolução de incidentes mais rápida e fácil porque todos os logs são acessíveis em uma única interface simples de navegar. Os operadores não precisam se conectar a cada servidor individualmente nem usar comandos como tail e grep para filtrar os resultados.
Acesso a informações relevantes
Você pode usar as configurações de análise de log personalizadas para extrair apenas os dados relevantes de logs da aplicação. Isso pode ajudar a filtrar os dados retornados em consultas e simplificar painéis e gráficos.
Análise histórica
As soluções de gerenciamento de log permitem a você reter mais dados por mais tempo do que seria possível no armazenamento em um único servidor ou compartilhamento de rede. Como resultado, você pode realizar uma análise histórica melhor dos dados da aplicação. Essas análises são valiosas para relatórios de tendências.
Correlação de logs
As soluções de gerenciamento de log têm analisadores integrados que reconhecem tipos de log padrão. Isso facilita a ingestão de logs de diferentes aplicações e sua correlação usando campos comuns como nome de usuário ou endereço IP. Correlacionar eventos aparentemente não relacionados pode criar um contexto em torno de eventos que, de outra forma, poderiam não ser óbvios.
Visualização
Painéis com gráficos, tabelas ou mapas de geolocalização facilitam a identificação de tendências, anomalias ou picos em aplicações.
Alertas
As soluções de gerenciamento de log permitem a configuração de alertas com base em critérios predefinidos. Entre esses critérios estão limites definidos para o valor de um campo específico. Os alertas são acionados quando eventos registrados em log mostram que o valor do campo ultrapassou o limite, notificando as equipes relevantes.
Por exemplo, você pode definir alertas para erros fatais ou críticos, atividades suspeitas de login ou alto uso da CPU. Algumas soluções de registro em log podem disparar uma ação automaticamente, como a criação de um tíquete de suporte ou a execução de etapas de remediação automatizadas a partir de um playbook.
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.