Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

Recordemos que el Elastic Stack se basa en la base de datos no relacional Elasticsearch, la interfaz web Kibana y recolectores y procesadores de datos (el más famoso Logstash, varios Beats, APM y otros). Una de las buenas adiciones a toda la pila de productos enumerados es el análisis de datos mediante algoritmos de aprendizaje automático. En el artículo entendemos cuáles son estos algoritmos. Por favor bajo gato.

El aprendizaje automático es una característica paga del shareware Elastic Stack y está incluida en el X-Pack. Para empezar a utilizarlo basta con activar la prueba de 30 días tras la instalación. Una vez que expire el período de prueba, puede solicitar soporte para extenderlo o comprar una suscripción. El coste de una suscripción no se calcula en función del volumen de datos, sino del número de nodos utilizados. No, el volumen de datos, por supuesto, afecta la cantidad de nodos necesarios, pero aún así este enfoque de concesión de licencias es más humano en relación con el presupuesto de la empresa. Si no es necesaria una alta productividad, puede ahorrar dinero.

ML en Elastic Stack está escrito en C++ y se ejecuta fuera de la JVM, en la que se ejecuta Elasticsearch. Es decir, el proceso (por cierto, se llama autodetección) consume todo lo que la JVM no traga. En un stand de demostración esto no es tan crítico, pero en un entorno de producción es importante asignar nodos separados para las tareas de ML.

Los algoritmos de aprendizaje automático se dividen en dos categorías: con el profesor и sin maestro. En el Elastic Stack, el algoritmo está en la categoría "no supervisado". Por este enlace Puede ver el aparato matemático de los algoritmos de aprendizaje automático.

Para realizar el análisis, el algoritmo de aprendizaje automático utiliza datos almacenados en índices de Elasticsearch. Puede crear tareas para análisis tanto desde la interfaz de Kibana como a través de la API. Si haces esto a través de Kibana, entonces no necesitas saber algunas cosas. Por ejemplo, índices adicionales que utiliza el algoritmo durante su funcionamiento.

Índices adicionales utilizados en el proceso de análisis..ml-state — información sobre modelos estadísticos (configuraciones de análisis);
.ml-anomalies-* — resultados de algoritmos de ML;
.ml-notifications: configuración de notificaciones basadas en los resultados del análisis.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

La estructura de datos en la base de datos Elasticsearch consta de índices y documentos almacenados en ellos. En comparación con una base de datos relacional, un índice se puede comparar con un esquema de base de datos y un documento con un registro en una tabla. Esta comparación es condicional y se proporciona para simplificar la comprensión de material adicional para aquellos que solo han oído hablar de Elasticsearch.

La misma funcionalidad está disponible a través de la API que a través de la interfaz web, por lo que para mayor claridad y comprensión de los conceptos, mostraremos cómo configurarla a través de Kibana. En el menú de la izquierda hay una sección de Aprendizaje automático donde puedes crear un nuevo trabajo. En la interfaz de Kibana se parece a la imagen de abajo. Ahora analizaremos cada tipo de tarea y mostraremos los tipos de análisis que se pueden construir aquí.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

Métrica única: análisis de una métrica, Métrica múltiple: análisis de dos o más métricas. En ambos casos, cada métrica se analiza en un entorno aislado, es decir. el algoritmo no tiene en cuenta el comportamiento de las métricas analizadas en paralelo, como podría parecer en el caso de Multi Metric. Para realizar cálculos teniendo en cuenta la correlación de varias métricas, puede utilizar el análisis de población. Y Advanced está afinando los algoritmos con opciones adicionales para determinadas tareas.

Métrica única

Analizar los cambios en una sola métrica es lo más sencillo que se puede hacer aquí. Después de hacer clic en Crear trabajo, el algoritmo buscará anomalías.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

En el campo Agregación puede elegir un método para buscar anomalías. Por ejemplo, cuando Min los valores por debajo de los valores típicos se considerarán anómalos. Comer Máx., Media alta, Baja, Media, Distinta y otros. Se pueden encontrar descripciones de todas las funciones. enlace.

En el campo Campo Indica el campo numérico del documento sobre el que realizaremos el análisis.

En el campo Alcance del cucharón — granularidad de los intervalos en la línea de tiempo a lo largo de los cuales se llevará a cabo el análisis. Puedes confiar en la automatización o elegir manualmente. La siguiente imagen es un ejemplo de granularidad demasiado baja; es posible que no detecte la anomalía. Con esta configuración, puede cambiar la sensibilidad del algoritmo a las anomalías.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

La duración de los datos recopilados es un factor clave que afecta la eficacia del análisis. Durante el análisis, el algoritmo identifica intervalos repetidos, calcula intervalos de confianza (líneas de base) e identifica anomalías: desviaciones atípicas del comportamiento habitual de la métrica. Sólo por ejemplo:

Líneas de base con un pequeño dato:

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

Cuando el algoritmo tiene algo de qué aprender, la línea de base se ve así:

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

Después de iniciar la tarea, el algoritmo determina las desviaciones anómalas de la norma y las clasifica según la probabilidad de anomalía (el color de la etiqueta correspondiente se indica entre paréntesis):

Advertencia (azul): menos de 25
Menor (amarillo): 25-50
Mayor (naranja): 50-75
Crítico (rojo): 75-100

El siguiente gráfico muestra un ejemplo de las anomalías encontradas.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

Aquí puedes ver el número 94, que indica la probabilidad de una anomalía. Está claro que como el valor es cercano a 100 significa que tenemos una anomalía. La columna debajo del gráfico muestra la probabilidad peyorativamente pequeña del 0.000063634% de que el valor de la métrica aparezca allí.

Además de buscar anomalías, puede ejecutar pronósticos en Kibana. Esto se hace de forma sencilla y desde la misma vista con anomalías - botón Pronóstico en la esquina superior derecha.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

La previsión se realiza con un máximo de 8 semanas de antelación. Incluso si realmente lo desea, ya no es posible por diseño.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

En algunas situaciones, el pronóstico será muy útil, por ejemplo, al monitorear la carga de usuarios en la infraestructura.

Multimétrico

Pasemos a la siguiente característica de ML en Elastic Stack: analizar varias métricas en un lote. Pero esto no significa que se vaya a analizar la dependencia de una métrica de otra. Esto es lo mismo que Métrica única, pero con múltiples métricas en una pantalla para comparar fácilmente el impacto de una en otra. Hablaremos de analizar la dependencia de una métrica de otra en la sección Población.

Después de hacer clic en el cuadrado con Multi Metric, aparecerá una ventana con la configuración. Veámoslos con más detalle.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

Primero debe seleccionar los campos para el análisis y la agregación de datos sobre ellos. Las opciones de agregación aquí son las mismas que para Métrica única (Máx., Media alta, Baja, Media, Distinta y otros). Además, si lo desea, los datos se dividen en uno de los campos (campo Dividir datos). En el ejemplo, hicimos esto por campo OrigenAeropuertoID. Observe que el gráfico de métricas de la derecha ahora se presenta como varios gráficos.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

Campo Campos clave (influencers) Afecta directamente a las anomalías detectadas. De forma predeterminada, siempre habrá al menos un valor aquí y puede agregar otros adicionales. El algoritmo tendrá en cuenta la influencia de estos campos al analizar y mostrará los valores más "influyentes".

Después del lanzamiento, aparecerá algo como esto en la interfaz de Kibana.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

Este es el llamado mapa de calor de anomalías para cada valor de campo OrigenAeropuertoID, que indicamos en Dividir datos. Al igual que con la Métrica única, el color indica el nivel de desviación anormal. Es conveniente hacer un análisis similar, por ejemplo, en estaciones de trabajo para rastrear aquellas con un número de autorizaciones sospechosamente elevado, etc. ya escribimos sobre eventos sospechosos en EventLog Windows, que también se puede recopilar y analizar aquí.

Debajo del mapa de calor hay una lista de anomalías; desde cada una, puede cambiar a la vista de Métrica única para un análisis detallado.

Población

Para buscar anomalías entre las correlaciones entre diferentes métricas, el Elastic Stack cuenta con un análisis de población especializado. Es con su ayuda que se pueden buscar valores anormales en el rendimiento de un servidor en comparación con otros cuando, por ejemplo, aumenta el número de solicitudes al sistema de destino.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

En esta ilustración, el campo Población indica el valor con el que se relacionarán las métricas analizadas. En este caso es el nombre del proceso. Como resultado, veremos cómo la carga del procesador de cada proceso se influyó entre sí.

Tenga en cuenta que el gráfico de los datos analizados difiere de los casos con Métrica única y Métrica múltiple. Esto se hizo en Kibana por diseño para mejorar la percepción de la distribución de valores de los datos analizados.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

El gráfico muestra que el proceso se comportó de forma anormal. estrés (por cierto, generado por una utilidad especial) en el servidor poipu, quien influyó (o resultó ser un influencer) en la aparición de esta anomalía.

Avanzado

Análisis con ajuste fino. Con el análisis avanzado, aparecen configuraciones adicionales en Kibana. Después de hacer clic en el mosaico Avanzado en el menú de creación, aparece esta ventana con pestañas. Pestaña Detalles del trabajo Lo omitimos a propósito, hay configuraciones básicas que no están directamente relacionadas con la configuración del análisis.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

В nombre_campo_recuento_resumen Opcionalmente, puede especificar el nombre de un campo de los documentos que contienen valores agregados. En este ejemplo, el número de eventos por minuto. EN nombre_campo_categorización Indica el nombre y valor de un campo del documento que contiene algún valor variable. Usando la máscara en este campo, puede dividir los datos analizados en subconjuntos. Presta atención al botón. Agregar detector en la ilustración anterior. A continuación se muestra el resultado de hacer clic en este botón.

Comprensión del aprendizaje automático en Elastic Stack (también conocido como Elasticsearch, también conocido como ELK)

Aquí hay un bloque adicional de configuraciones para configurar el detector de anomalías para una tarea específica. Planeamos analizar casos de uso específicos (especialmente los de seguridad) en los siguientes artículos. Por ejemplo, mirar uno de los casos desmontados. Está asociado a la búsqueda de valores que aparecen raramente y se implementa. función rara.

En el campo función Puede seleccionar una función específica para buscar anomalías. Excepto raras, hay un par de funciones más interesantes: hora_del_dia и tiempo_de_la_semana. Identifican anomalías en el comportamiento de las métricas a lo largo del día o de la semana, respectivamente. Otras funciones de análisis esta en la documentacion.

В nombre del campo indica el campo del documento sobre el que se realizará el análisis. Por_nombre_campo se puede utilizar para separar los resultados del análisis para cada valor individual del campo del documento especificado aquí. si llenas nombre_sobre_campo obtienes el análisis de población que discutimos anteriormente. Si especifica un valor en nombre_campo_partición, luego, para este campo del documento, se calcularán líneas de base separadas para cada valor (el valor puede ser, por ejemplo, el nombre del servidor o el proceso en el servidor). EN excluir_frecuente poder elegir todos o ninguna, lo que significará excluir (o incluir) valores de campos de documentos que aparecen con frecuencia.

En este artículo, intentamos dar una idea lo más sucinta posible sobre las capacidades del aprendizaje automático en Elastic Stack; todavía quedan muchos detalles detrás de escena. Cuéntanos en los comentarios qué casos lograste resolver usando Elastic Stack y para qué tareas lo usas. Para contactarnos, puede utilizar mensajes personales en Habré o formulario de comentarios en el sitio web.

Fuente: habr.com

Añadir un comentario