Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Lembremos que o Elastic Stack baséase na base de datos Elasticsearch non relacional, na interface web de Kibana e nos colectores e procesadores de datos (o máis famoso Logstash, varios Beats, APM e outros). Unha das boas incorporacións a toda a pila de produtos listados é a análise de datos mediante algoritmos de aprendizaxe automática. No artigo entendemos cales son estes algoritmos. Por favor, debaixo do gato.

A aprendizaxe automática é unha función de pago do shareware Elastic Stack e inclúese no X-Pack. Para comezar a usalo, só tes que activar a proba de 30 días despois da instalación. Despois de que caduque o período de proba, podes solicitar asistencia para amplialo ou comprar unha subscrición. O custo dunha subscrición non se calcula en función do volume de datos, senón do número de nodos utilizados. Non, o volume de datos, por suposto, afecta o número de nodos necesarios, pero aínda así este enfoque de licenzas é máis humano en relación ao orzamento da empresa. Se non hai necesidade de alta produtividade, pode aforrar diñeiro.

ML en Elastic Stack está escrito en C++ e execútase fóra da JVM, na que se executa Elasticsearch. É dicir, o proceso (por certo, chámase autodetección) consome todo o que a JVM non traga. Nun posto de demostración isto non é tan crítico, pero nun ambiente de produción é importante asignar nós separados para tarefas de ML.

Os algoritmos de aprendizaxe automática divídense en dúas categorías: − co profesor и sen profesor. No Elastic Stack, o algoritmo está na categoría "sen supervisión". Por este enlace Podes ver o aparello matemático dos algoritmos de aprendizaxe automática.

Para realizar a análise, o algoritmo de aprendizaxe automática utiliza datos almacenados nos índices de Elasticsearch. Podes crear tarefas para a análise tanto desde a interface de Kibana como a través da API. Se o fas a través de Kibana, non necesitas saber algunhas cousas. Por exemplo, índices adicionais que usa o algoritmo durante o seu funcionamento.

Índices adicionais utilizados no proceso de análise.ml-state — información sobre modelos estatísticos (configuracións de análise);
.ml-anomalies-* — resultados dos algoritmos de ML;
.ml-notifications: configuración das notificacións baseadas nos resultados da análise.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

A estrutura de datos da base de datos Elasticsearch está formada por índices e documentos almacenados neles. Cando se compara cunha base de datos relacional, un índice pódese comparar cun esquema de base de datos e un documento cun rexistro nunha táboa. Esta comparación é condicional e ofrécese para simplificar a comprensión de material adicional para aqueles que só escoitaron falar de Elasticsearch.

A mesma funcionalidade está dispoñible a través da API que a través da interface web, polo que para claridade e comprensión dos conceptos, mostraremos como configurala a través de Kibana. No menú da esquerda hai unha sección de Machine Learning onde podes crear un novo traballo. Na interface de Kibana parece a imaxe de abaixo. Agora analizaremos cada tipo de tarefa e mostraremos os tipos de análise que se poden construír aquí.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Métrica única: análise dunha métrica, Métrica múltiple: análise de dúas ou máis métricas. En ambos os casos, cada métrica analízase nun ambiente illado, é dicir. o algoritmo non ten en conta o comportamento das métricas analizadas en paralelo, como podería parecer no caso de Multi Metric. Para realizar cálculos tendo en conta a correlación de varias métricas, pode utilizar Análise de poboación. E Advanced está afinando os algoritmos con opcións adicionais para determinadas tarefas.

Métrica única

Analizar os cambios nunha única métrica é o máis sinxelo que se pode facer aquí. Despois de facer clic en Crear traballo, o algoritmo buscará anomalías.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

no campo Agregación pode escoller un enfoque para buscar anomalías. Por exemplo, cando Min Os valores inferiores aos valores típicos consideraranse anómalos. Comer Máximo, Alta Media, Baixa, Media, Distinta e outros. Pódense atopar descricións de todas as funcións по ссылке.

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

no campo Espazo de balde — granularidade dos intervalos na liña de tempo ao longo da cal se realizará a análise. Podes confiar na automatización ou escoller manualmente. A imaxe de abaixo é un exemplo de que a granularidade é demasiado baixa; podes perderte a anomalía. Usando esta configuración, pode cambiar a sensibilidade do algoritmo ás anomalías.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

A duración dos datos recollidos é un elemento clave que afecta á eficacia da análise. Durante a análise, o algoritmo identifica intervalos repetitivos, calcula intervalos de confianza (liñas de base) e identifica anomalías: desviacións atípicas do comportamento habitual da métrica. Só por exemplo:

Bases cun pequeno dato:

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Cando o algoritmo ten algo de que aprender, a liña de base é así:

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Despois de comezar a tarefa, o algoritmo determina desviacións anómalas da norma e clasifícaas segundo a probabilidade dunha anomalía (a cor da etiqueta correspondente indícase entre parénteses):

Aviso (azul): menos de 25
Menor (amarelo): 25-50
Maior (laranxa): 50-75
Crítica (vermello): 75-100

O seguinte gráfico mostra un exemplo das anomalías atopadas.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Aquí podes ver o número 94, que indica a probabilidade dunha anomalía. Está claro que dado que o valor está próximo a 100, isto significa que temos unha anomalía. A columna debaixo do gráfico mostra a probabilidade pexorativamente pequena de que apareza alí o 0.000063634 % do valor métrico.

Ademais de buscar anomalías, pode executar previsións en Kibana. Isto faise de forma sinxela e dende a mesma vista con anomalías - botón Previsión na esquina superior dereita.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

A previsión faise cun máximo de 8 semanas de antelación. Aínda que realmente queiras, xa non é posible por deseño.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Nalgunhas situacións, a previsión será moi útil, por exemplo, ao supervisar a carga dos usuarios na infraestrutura.

Multimétrica

Pasemos á seguinte función de ML en Elastic Stack: analizando varias métricas nun lote. Pero isto non significa que se analice a dependencia dunha métrica doutra. É o mesmo que a métrica única, pero con varias métricas nunha pantalla para comparar facilmente o impacto dunha sobre outra. Falaremos de analizar a dependencia dunha métrica doutra na sección Poboación.

Despois de facer clic no cadrado con métrica múltiple, aparecerá unha xanela coa configuración. Vexámolos con máis detalle.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Primeiro cómpre seleccionar os campos para a análise e a agregación de datos neles. As opcións de agregación aquí son as mesmas que para Métrica única (Máximo, Alta Media, Baixa, Media, Distinta e outros). Ademais, se o desexa, os datos divídense nun dos campos (campo Datos divididos). No exemplo, fixémolo por campo ID do aeroporto de orixe. Teña en conta que o gráfico de métricas da dereita preséntase agora como varios gráficos.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Campo Campos clave (Influencers) afecta directamente ás anomalías detectadas. Por defecto sempre haberá polo menos un valor aquí, e podes engadir outros adicionais. O algoritmo terá en conta a influencia destes campos á hora de analizar e mostrar os valores máis “influentes”.

Despois do lanzamento, aparecerá algo así na interface de Kibana.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Este é o chamado mapa térmico de anomalías para cada valor de campo ID do aeroporto de orixe, que indicamos en Datos divididos. Do mesmo xeito que coa métrica única, a cor indica o nivel de desviación anormal. É conveniente facer unha análise similar, por exemplo, en estacións de traballo para rastrexar aquelas que teñan un número sospeitoso de autorizacións, etc. Xa escribimos sobre eventos sospeitosos en EventLog Windows, que tamén se poden recoller e analizar aquí.

Debaixo do mapa térmico hai unha lista de anomalías, de cada unha pode cambiar á vista de métrica única para unha análise detallada.

Poboación

Para buscar anomalías entre as correlacións entre diferentes métricas, o Elastic Stack dispón dunha análise de poboación especializada. É coa súa axuda que pode buscar valores anómalos no rendemento dun servidor en comparación con outros cando, por exemplo, aumenta o número de solicitudes ao sistema de destino.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Nesta ilustración, o campo Poboación indica o valor co que se relacionarán as métricas analizadas. Neste caso é o nome do proceso. Como resultado, veremos como se influíu a carga do procesador de cada proceso.

Teña en conta que o gráfico dos datos analizados difire dos casos con métrica única e métrica múltiple. Isto fíxose en Kibana por deseño para mellorar a percepción da distribución de valores dos datos analizados.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

O gráfico mostra que o proceso se comportou de forma anormal estrés (por certo, xerado por unha utilidade especial) no servidor poipu, quen influíu (ou resultou ser un influencer) na aparición desta anomalía.

Avanzado

Análise con axuste fino. Coa análise avanzada, aparecen opcións adicionais en Kibana. Despois de facer clic no mosaico Avanzado no menú de creación, aparece esta xanela con pestanas. Tab detalles do traballo Omitimos a propósito, hai configuracións básicas non directamente relacionadas coa configuración da análise.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

В resumo_conto_nome_campo Opcionalmente, pode especificar o nome dun campo a partir de documentos que conteñan valores agregados. Neste exemplo, o número de eventos por minuto. EN nome_campo_categorización indica o nome e o valor dun campo do documento que contén algún valor variable. Usando a máscara deste campo, pode dividir os datos analizados en subconxuntos. Preste atención ao botón Engadir detector na ilustración anterior. Abaixo está o resultado de facer clic neste botón.

Comprensión da aprendizaxe automática no Elastic Stack (tamén coñecido como Elasticsearch, tamén coñecido como ELK)

Aquí tes un bloque adicional de configuracións para configurar o detector de anomalías para unha tarefa específica. Planeamos discutir casos de uso específicos (especialmente os de seguridade) nos artigos seguintes. Por exemplo, bótalle un ollo un dos casos desmontados. Asóciase coa busca de valores que aparecen raramente e implícase función rara.

no campo función Pode seleccionar unha función específica para buscar anomalías. Excepto raro, hai un par de funcións máis interesantes - hora_do_día и tempo_da_semana. Identifican anomalías no comportamento das métricas ao longo do día ou da semana, respectivamente. Outras funcións de análise está na documentación.

В nome_campo indica o campo do documento sobre o que se realizará a análise. Por_nome_campo pódese usar para separar os resultados da análise para cada valor individual do campo do documento especificado aquí. Se enche over_field_name obtén a análise poboacional que comentamos anteriormente. Se especifica un valor en nome_campo_partición, entón para este campo do documento calcularanse liñas base separadas para cada valor (o valor pode ser, por exemplo, o nome do servidor ou do proceso no servidor). EN excluír_frecuente pode escoller todo ou ningún, o que significará excluír (ou incluír) os valores de campo do documento que se producen con frecuencia.

Neste artigo, tentamos dar unha idea o máis sucinta posible sobre as capacidades da aprendizaxe automática no Elastic Stack; aínda quedan moitos detalles entre bastidores. Cóntanos nos comentarios que casos conseguiches resolver usando Elastic Stack e para que tarefas o utilizas. Para contactar connosco podes usar mensaxes persoais en Habré ou formulario de comentarios no sitio web.

Fonte: www.habr.com

Engadir un comentario