Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Lembremos que o Elastic Stack é baseado no banco de dados não relacional Elasticsearch, na interface web Kibana e em coletores e processadores de dados (os mais famosos Logstash, vários Beats, APM e outros). Uma das boas adições a toda a pilha de produtos listados é a análise de dados usando algoritmos de aprendizado de máquina. No artigo entendemos o que são esses algoritmos. Por favor, em gato.

O aprendizado de máquina é um recurso pago do shareware Elastic Stack e está incluído no X-Pack. Para começar a utilizá-lo, basta ativar o teste de 30 dias após a instalação. Depois que o período de avaliação expirar, você poderá solicitar suporte para estendê-lo ou adquirir uma assinatura. O custo de uma assinatura não é calculado com base no volume de dados, mas no número de nós utilizados. Não, o volume de dados, claro, afeta o número de nós necessários, mas ainda assim esta abordagem de licenciamento é mais humana em relação ao orçamento da empresa. Se não houver necessidade de alta produtividade, você poderá economizar dinheiro.

O ML no Elastic Stack é escrito em C++ e executado fora da JVM, na qual o próprio Elasticsearch é executado. Ou seja, o processo (aliás, chama-se autodetect) consome tudo o que a JVM não engole. Em um estande de demonstração isso não é tão crítico, mas em um ambiente de produção é importante alocar nós separados para tarefas de ML.

Algoritmos de aprendizado de máquina se enquadram em duas categorias - сучителем и sem professor. No Elastic Stack, o algoritmo está na categoria “não supervisionado”. Por este link Você pode ver o aparato matemático dos algoritmos de aprendizado de máquina.

Para realizar a análise, o algoritmo de aprendizado de máquina utiliza dados armazenados em índices Elasticsearch. Você pode criar tarefas para análise tanto na interface do Kibana quanto por meio da API. Se você fizer isso através do Kibana, não precisará saber algumas coisas. Por exemplo, índices adicionais que o algoritmo utiliza durante sua operação.

Índices adicionais usados ​​no processo de análise.ml-state — informações sobre modelos estatísticos (configurações de análise);
.ml-anomalies-* — resultados de algoritmos de ML;
.ml-notifications — configurações para notificações com base nos resultados da análise.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

A estrutura de dados no banco de dados Elasticsearch consiste em índices e documentos neles armazenados. Quando comparado a um banco de dados relacional, um índice pode ser comparado a um esquema de banco de dados e um documento a um registro em uma tabela. Esta comparação é condicional e é fornecida para simplificar a compreensão de outros materiais para aqueles que apenas ouviram falar do Elasticsearch.

A mesma funcionalidade está disponível através da API e da interface web, portanto, para maior clareza e compreensão dos conceitos, mostraremos como configurá-la através do Kibana. No menu à esquerda há uma seção de Machine Learning onde você pode criar um novo Job. Na interface do Kibana parece com a imagem abaixo. Agora vamos analisar cada tipo de tarefa e mostrar os tipos de análise que podem ser construídos aqui.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Métrica Única - análise de uma métrica, Multi Métrica - análise de duas ou mais métricas. Em ambos os casos, cada métrica é analisada em um ambiente isolado, ou seja, o algoritmo não leva em consideração o comportamento das métricas analisadas paralelamente, como pode parecer no caso do Multi Metric. Para realizar cálculos levando em consideração a correlação de diversas métricas, você pode usar a análise populacional. E o Advanced está ajustando os algoritmos com opções adicionais para determinadas tarefas.

Métrica Única

Analisar mudanças em uma única métrica é a coisa mais simples que pode ser feita aqui. Após clicar em Criar Job, o algoritmo irá procurar anomalias.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

No Agregação você pode escolher uma abordagem para procurar anomalias. Por exemplo, quando min valores abaixo dos valores típicos serão considerados anômalos. Comer Máx., Média Alta, Baixa, Média, Distinto e outros. Descrições de todas as funções podem ser encontradas по ссылке.

No Campo indica o campo numérico do documento sobre o qual realizaremos a análise.

No Extensão do balde — granularidade dos intervalos no cronograma ao longo do qual a análise será realizada. Você pode confiar na automação ou escolher manualmente. A imagem abaixo é um exemplo de granularidade muito baixa - você pode perder a anomalia. Usando esta configuração, você pode alterar a sensibilidade do algoritmo a anomalias.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

A duração dos dados coletados é um fator fundamental que afeta a eficácia da análise. Durante a análise, o algoritmo identifica intervalos repetidos, calcula intervalos de confiança (linhas de base) e identifica anomalias – desvios atípicos do comportamento usual da métrica. Apenas por exemplo:

Linhas de base com um pequeno conjunto de dados:

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Quando o algoritmo tem algo com que aprender, a linha de base fica assim:

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Após iniciar a tarefa, o algoritmo determina desvios anômalos da norma e os classifica de acordo com a probabilidade de uma anomalia (a cor do rótulo correspondente é indicada entre parênteses):

Aviso (azul): menos de 25
Menor (amarelo): 25-50
Maior (laranja): 50-75
Crítico (vermelho): 75-100

O gráfico abaixo mostra um exemplo das anomalias encontradas.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Aqui você pode ver o número 94, que indica a probabilidade de uma anomalia. É claro que como o valor está próximo de 100 significa que temos uma anomalia. A coluna abaixo do gráfico mostra a probabilidade pejorativamente pequena de 0.000063634% do valor da métrica que aparece ali.

Além de procurar anomalias, você pode executar previsões no Kibana. Isso é feito de forma simples e a partir da mesma visão das anomalias - botão Previsão no canto superior direito.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

A previsão é feita com no máximo 8 semanas de antecedência. Mesmo se você realmente quiser, isso não é mais possível intencionalmente.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Em algumas situações, a previsão será muito útil, por exemplo, no monitoramento da carga de usuários na infraestrutura.

Multimétrica

Vamos passar para o próximo recurso de ML no Elastic Stack: analisar várias métricas em um lote. Mas isso não significa que será analisada a dependência de uma métrica em relação a outra. É igual à métrica única, mas com diversas métricas em uma tela para facilitar a comparação do impacto de uma na outra. Falaremos sobre como analisar a dependência de uma métrica em relação a outra na seção População.

Após clicar no quadrado com Multi Metric, aparecerá uma janela com configurações. Vamos examiná-los com mais detalhes.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Primeiro você precisa selecionar os campos para análise e agregação de dados sobre eles. As opções de agregação aqui são as mesmas da Métrica única (Máx., Média Alta, Baixa, Média, Distinto e outros). Além disso, se desejado, os dados são divididos em um dos campos (campo Dividir Dados). No exemplo, fizemos isso por campo ID do aeroporto de origem. Observe que o gráfico de métricas à direita agora é apresentado como vários gráficos.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Campo Campos-chave (influenciadores) afeta diretamente as anomalias detectadas. Por padrão, sempre haverá pelo menos um valor aqui e você poderá adicionar outros. O algoritmo levará em consideração a influência desses campos na hora de analisar e mostrar os valores mais “influentes”.

Após o lançamento, algo assim aparecerá na interface do Kibana.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Este é o chamado mapa de calor de anomalias para cada valor de campo ID do aeroporto de origem, que indicamos em Dividir Dados. Tal como acontece com o Single Metric, a cor indica o nível de desvio anormal. É conveniente fazer uma análise semelhante, por exemplo, em estações de trabalho para rastrear aquelas com um número suspeito de autorizações, etc. Nós já escrevemos sobre eventos suspeitos no EventLog Windows, que também pode ser coletado e analisado aqui.

Abaixo do mapa de calor há uma lista de anomalias, de cada uma você pode alternar para a visualização de métrica única para análise detalhada.

População

Para procurar anomalias entre correlações entre diferentes métricas, o Elastic Stack possui uma análise populacional especializada. É com sua ajuda que você pode procurar valores anômalos no desempenho de um servidor em comparação com outros quando, por exemplo, o número de solicitações ao sistema alvo aumenta.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Nesta ilustração, o campo População indica o valor ao qual as métricas analisadas se relacionarão. Neste caso é o nome do processo. Como resultado, veremos como a carga do processador de cada processo influenciou um ao outro.

Observe que o gráfico dos dados analisados ​​difere dos casos com Single Metric e Multi Metric. Isso foi feito no Kibana intencionalmente para melhorar a percepção da distribuição dos valores dos dados analisados.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

O gráfico mostra que o processo se comportou de forma anormal estresse (aliás, gerado por um utilitário especial) no servidor poipu, que influenciou (ou acabou por ser um influenciador) a ocorrência desta anomalia.

Avançado

Análise com ajuste fino. Com a análise avançada, configurações adicionais aparecem no Kibana. Após clicar no bloco Avançado no menu de criação, esta janela com abas aparece. Aba Detalhes do trabalho Nós ignoramos isso de propósito, existem configurações básicas que não estão diretamente relacionadas à configuração da análise.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

В resumo_contagem_campo_nome Opcionalmente, você pode especificar o nome de um campo em documentos que contenham valores agregados. Neste exemplo, o número de eventos por minuto. EM categorization_field_name indica o nome e o valor de um campo do documento que contém algum valor de variável. Usando a máscara neste campo, você pode dividir os dados analisados ​​em subconjuntos. Preste atenção no botão Adicionar detector na ilustração anterior. Abaixo está o resultado de clicar neste botão.

Compreendendo o aprendizado de máquina no Elastic Stack (também conhecido como Elasticsearch, também conhecido como ELK)

Aqui está um bloco adicional de configurações para configurar o detector de anomalias para uma tarefa específica. Planejamos discutir casos de uso específicos (especialmente os de segurança) nos artigos a seguir. Por exemplo, ver um dos casos desmontados. Está associado à busca por valores que raramente aparecem e é implementado função rara.

No função Você pode selecionar uma função específica para procurar anomalias. Exceto raro, existem mais algumas funções interessantes - hora do dia и horário_da_semana. Eles identificam anomalias no comportamento das métricas ao longo do dia ou da semana, respectivamente. Outras funções de análise está na documentação.

В field_name indica o campo do documento sobre o qual será realizada a análise. Por_nome_campo pode ser usado para separar os resultados da análise para cada valor individual do campo do documento especificado aqui. Se você preencher over_field_name você obtém a análise populacional que discutimos acima. Se você especificar um valor em nome_campo_partição, então, para este campo do documento, serão calculadas linhas de base separadas para cada valor (o valor pode ser, por exemplo, o nome do servidor ou processo no servidor). EM exclude_frequente pode escolher todos os ou Nenhum, o que significará excluir (ou incluir) valores de campo de documento que ocorrem com frequência.

Neste artigo, tentamos dar uma ideia o mais sucinta possível sobre as capacidades do aprendizado de máquina no Elastic Stack; ainda há muitos detalhes deixados nos bastidores. Conte-nos nos comentários quais casos você conseguiu resolver usando o Elastic Stack e para quais tarefas você o utiliza. Para entrar em contato conosco, você pode usar mensagens pessoais no Habré ou formulário de feedback no site.

Fonte: habr.com

Adicionar um comentário