Como usar machine learning para fazer análises de log e detectar anomalias

Compartilhe:

Share on twitter
Share on facebook
Share on linkedin
Share on whatsapp

Existem muitos artigos sobre a aplicação de aprendizado de máquina para análise de registro. No entanto, a maioria deles é datada, de natureza acadêmica ou não se concentra em resultados práticos.

Por isso, preparamos esse conteúdo completo sobre o tema. Neste post, vamos compartilhar dicas sobre o uso de machine learning e aprendizado da máquina para análise de registros e detecção de anomalias. O objetivo é descobrir a causa raiz dos problemas de software.

Além disso, discutiremos as várias abordagens para a análise de logs baseada em ML, considerando alguns dos desafios atuais e apresentando detalhes de nossa abordagem para resolver esses problemas.

Continue lendo o artigo! 

Abordagens e desafios atuais para a análise de registro de IA

Embora exista muito conteúdo acadêmico sobre o assunto, a maioria das abordagens geralmente se enquadram em duas categorias. São elas:

1. Usando algoritmos de aprendizado de máquina generalizados

Esta categoria refere-se aos algoritmos que foram projetados para detectar padrões anômalos em dados baseados em string. Dois modelos populares nesta categoria são Linear Support Vector Machines (SVM) e Random Forest.

O SVM, por exemplo, classifica a probabilidade de que certas palavras em uma logline estejam correlacionadas com um incidente. Algumas expressões como “erro” ou “sem sucesso” podem indicar um incidente e, por isso, recebem uma pontuação de probabilidade mais alta do que outras palavras como “bem-sucedido” ou “conectado”. A pontuação combinada da mensagem é usada para detectar um problema.

Os modelos SVM e Random Forest usam machine learning supervisionado para treinamento e exigem muitos dados para fornecer previsões precisas. Na prática,  isso torna a implantação desses modelos cara e difícil na maioria dos ambientes da vida real. 

2. Usando Deep Learning (Inteligência Artificial)

O Deep Learning é uma forma muito poderosa de ML, geralmente chamada de Inteligência Artificial (IA). Ao treinar redes neurais em grandes volumes de dados, o Deep Learning pode encontrar padrões nos dados. É mais comumente usado com treinamento supervisionado em conjuntos de dados rotulados. 

A inteligência artificial tem sido usada para problemas difíceis, como reconhecimento de imagem e fala, garantindo a obtenção de ótimos resultados.

Um dos melhores artigos acadêmicos sobre como isso pode ser aplicado é o artigo Deeplog da Universidade de Utah. A abordagem deles usa deep learning para detectar anomalias nos logs. Curiosamente, eles também aplicaram machine learning para analisar logs em tipos de eventos, melhorando significativamente a precisão da detecção de anomalias de log.

O desafio com essa abordagem é que ela exige grandes volumes de dados para se tornar precisa. Isso significa que novos ambientes levarão mais tempo antes que possam fornecer previsões precisas, e ambientes menores podem nunca produzir dados suficientes para que o modelo seja preciso o suficiente.

Além disso, ao contrário dos algoritmos estatísticos, o Deep Learning pode ser muito intensivo em computação para treinar. Muitos cientistas de dados usam instâncias de GPU caras para treinar seus modelos mais rapidamente, mas com um custo significativo. Como é preciso treinar o modelo em cada ambiente exclusivo individualmente e continuamente ao longo do tempo, essa pode ser uma maneira extremamente cara de realizar a análise automatizada de logs.

Alguns fornecedores treinaram algoritmos de aprendizado profundo em serviços comuns de terceiros, como MySQL, Nginx e tantos outros. Essa abordagem pode funcionar, já que leva um grande volume de conjuntos de dados e modos de erro publicamente disponíveis para treinar o modelo, que pode ser implantado para muitos usuários. 

No entanto, essa abordagem limita-se a descobrir incidentes apenas em serviços de terceiros e não no software personalizado em execução no próprio ambiente.

Por que a detecção de anomalias de registro não é suficiente para uma análise de registro baseada em ML eficaz

Muitas abordagens de machine learning para logs se concentram na detecção de anomalias, trazendo uma série de desafio, como:

1. Os volumes de log são cada vez maiores e os logs tendem a ser barulhentos e, principalmente, não estruturados   

Ao solucionar problemas, perceber que um evento raro ocorreu geralmente é significativo. Mas como você sabe se um evento de log é raro quando cada instância do mesmo tipo de evento não é idêntica (os tipos de evento têm partes fixas e variáveis)?

No mínimo, o machine learning precisaria categorizar eventos de log por tipo para saber quais são anômalos. A técnica mais comum para isso é a Longest Common Substring (LCS), mas a variabilidade de eventos individuais do mesmo tipo torna a precisão do LCS um desafio.

2. A detecção de anomalias de log tende a produzir resultados muito barulhentos 

Isso pode ser exacerbado por categorização imprecisa. Geralmente, os logs têm muitas anomalias sendo que apenas algumas são úteis ao detectar e/ou solucionar problemas. Portanto, um especialista qualificado ainda precisa peneirar e analisar manualmente as anomalias para detectar o sinal do ruído.

Para uma análise de logs eficaz orientada por machine learning, é necessário algo mais do que apenas a detecção de anomalias de log.

Uma nova maneira de detectar anomalias em registros

Para lidar com as limitações descritas acima, é possível adotar uma abordagem de várias camadas para usar o aprendizado de máquina para análise de log. Essa abordagem é mais eficaz para encontrar anomalias e também fornece uma construção de nível superior que vai além da detecção de anomalias de log.

A tecnologia descrita abaixo está em produção e é utilizada por empresas líderes em todo o mundo.

Inicialmente, os arquivos de log ou fluxos de log são enviados para a plataforma. Seguem as principais etapas:

1. Estruturação e categorização dos eventos de log de entrada 

O primeiro passo é usar o aprendizado de máquina não supervisionado para estruturar e categorizar eventos de log por tipo automaticamente.

Durante a fase de estruturação, várias técnicas de machine learning são usadas dependendo de quantos exemplos de um tipo de evento foram vistos. Isso permite uma categorização altamente eficaz, mesmo quando há apenas um ou alguns exemplos.

No geral, o modelo melhora continuamente com mais dados e também é capaz de se adaptar às mudanças nas estruturas de eventos, como quando um parâmetro é adicionado a uma logline. Normalmente, atinge uma boa precisão no primeiro dia.

2. Aprendizado de padrões

Uma vez que os eventos tenham sido categorizados por tipo, os padrões para cada “tipo de evento” são aprendidos. Isso forma a base para uma análise de log precisa baseada em machine learning e na detecção de anomalias.

3. Encontrando o Sinal nos Agrupamentos de Anomalias Correlacionadas ao Ruído

À medida que cada novo evento é visto, é feita a classificação com base em quão anômalo ele é. Muitos fatores entram na pontuação da anomalia, mas os dois maiores são raridade e gravidade. Ou seja, “quão raro é um evento” e “quão ruim ele é”.

Como a categorização de eventos de log é muito precisa, a capacidade de detectar eventos anômalos também aumenta. Mas, mesmo assim, as anomalias de log por conta própria ainda podem ser barulhentas.

4. Identificando Anomalias Correlacionadas

Em seguida, o aprendizado de máquina procura pontos de acesso de anomalias anormalmente correlacionadas em todos os logs. Isso elimina o efeito coincidente de anomalias aleatórias nos logs.

Os eventos anômalos que são descobertos como correlacionados formam a base de um “relatório de causa raiz” e, normalmente, contêm indicadores e sintomas da causa raiz.

5. Resumo da PNL (o problema da última milha)

Como vimos até aqui, esse modelo apresenta os detalhes de um problema de software em apenas algumas linhas de log, normalmente de 5 a 20.

Um resumo disso, juntamente com um prompt apropriado, é passado para o modelo de linguagem GPT-3. O modelo de inteligência artificial retorna uma nova resposta que pode ser usada para a sumarização da causa raiz. 

Embora esse recurso seja designado como “experimental”, os resultados do mundo real até agora mostraram que, em aproximadamente 40% das vezes, os resumos simples em linguagem elementar são muito úteis.

6. Entrega dos resultados da análise de log baseada em machine learning como um relatório de causa raiz  

Um relatório interativo de causa raiz é criado automaticamente combinando as linhas de log do estágio 4, com o resumo em linguagem simples criado no estágio 5.

O relatório pode ser entregue via webhook para outro aplicativo (como uma ferramenta de resposta a incidentes) ou visualizado na interface interativa do usuário do Zebrium.

Análise de registro com aprendizado de máquina que funciona bem no mundo real

A tecnologia descrita acima está em produção e é utilizada por empresas líderes em todo o mundo. Há dois casos de uso principais em que os usuários encontram valor: 

1. Encontrar a causa raiz de um problema automaticamente em vez de procurar manualmente nos logs

Encontrar a causa raiz, geralmente, é o maior gargalo no processo de resposta a incidentes. Usar o machine learning para descobrir detalhes do problema significa um tempo médio de resolução muito mais rápido.

2. Detecção proativa de problemas ou incidentes novos ou desconhecidos que são perdidos por outras ferramentas

Embora a maioria das ferramentas de monitoramento perceba quando algo importante ocorre, há muitos problemas que passam despercebidos porque não são detectados por nenhuma regra ou limite existente.

Como vimos até aqui, o machine learning e a inteligência artificial podem ser usados para facilitar a análise de logs e detecção de anomalias. À medida que a tecnologia evolui, é possível visualizar novas possibilidades de uso das ferramentas, que otimizam continuamente os processos, melhoram os resultados e aumentam a produtividade da equipe.

Gostou do conteúdo e quer saber mais sobre as novidades do setor? Continue acompanhando o blog!

Posts relacionados