Comunidad Tecnología

Parte I: Monitorización de anomalías y detección: ¿qué se puede hacer realmente?

diciembre 10, 2018

Parte I: Monitorización de anomalías y detección: ¿qué se puede hacer realmente?

This post is also available in : Inglés

Monitorización de anomalías: problemas que se pueden resolver

En los últimos años encontramos con frecuencia el término monitorización de anomalías y su detección. De hecho, algunas herramientas de monitorización han introducido en sus características la aplicación personalizada de los algoritmos de detección de anomalías y algunas empresas lo ofrecen a partir de los datos recogidos por las herramientas de monitorización.

Si revisamos la documentación relacionada con la detección de anomalías, podemos perdernos fácilmente en medio de una tormenta de modelos estadísticos, técnicas de investigación de operaciones, fórmulas y métodos de análisis.

Nuestro propósito es realizar una serie de artículos sobre la detección de anomalías definiendo lo que realmente es y lo que podemos esperar de esta funcionalidad aplicada en la monitorización.

En primer lugar, tenemos que entender a qué tipo de datos se aplica la detección de anomalías.

Datos de series temporales

La detección de anomalías se aplica a los datos recopilados, indexados, listados o graficados en un orden temporal.

A menudo, este orden temporal implica que con una variable dada los datos se toman en intervalos sucesivos igualmente espaciados para un periodo específico. Por ejemplo, cada segundo durante dos días, cada minuto durante una semana o cada cinco minutos durante un mes.

Este tipo de datos difiere de otros, como los siguientes:

  • Datos transversales, recogidos en un momento dado considerando una o más variables, por ejemplo, el volumen de ventas en el black Friday del año 2017.
  • Datos espaciales relacionados con la ubicación geográfica, por ejemplo, todos los datos que se muestran en la representación de una hoja de ruta.

Los datos de series temporales son relevantes para la monitorización, ya que las herramientas de monitorización recopilan datos siguiendo este tipo de orden, y que las métricas fluctúan en el tiempo.

Así, obtenemos un gráfico que muestra cómo varía el consumo de memoria en un servidor a lo largo del tiempo o cuántos visitantes tienen una página web durante un ciclo de negocio (un día, dos meses, un año).

En la siguiente figura se muestra como ejemplo el gráfico de una métrica A, que hemos medido en un orden de tiempo de cada hora.

monitorización de anomalías

Análisis de series temporales

Todos los métodos que analizan datos de series temporales para extraer información se reúnen bajo un concepto general llamado análisis de series temporales. Estos métodos generalmente asumen que los datos están formados por dos elementos básicos:

  • Un patrón de datos sistemático
  • Ruido aleatorio

La mayoría de las técnicas de análisis de series de tiempo presentan una manera de suprimir el ruido con el objetivo final de interpretar correctamente el patrón de datos sistémico.

Detección de anomalías (monitorización de anomalías)

Bajo el concepto de análisis de series de tiempo, encontramos la detección de anomalías. Sin embargo, su objetivo principal no es suprimir el ruido, sino que la detección de anomalías funcione en dos frentes:

  • Estudiar cómo se comporta la variable en el tiempo, identificando si este comportamiento se ve afectado o no por una tendencia o un componente estacional. Aquí el objetivo es definir el comportamiento esperado o “normal”.
  • Identificar y estudiar patrones de comportamiento inusuales y validar si tienen que afectar el patrón normal de alguna manera.

Para ilustrar cómo funciona la lógica general de la detección de anomalías, volvamos a la figura 1. Con una primera revisión podríamos considerar el valor 4 como una anomalía, pero si ampliamos el ciclo de medición podemos obtener el siguiente gráfico:

monitorización de anomalías

Podemos observar que el valor 4 no puede considerarse una anomalía. Ahora, podemos estar tentados a definir cualquier valor entre 4 y 5 como válido, y definir un umbral y una alarma en nuestro sistema de monitorización.

Pero cuando ampliamos el ciclo de captura de datos podemos obtener estos valores:

monitorización de anomalías

El resultado son muchas falsas alarmas porque los valores 0, 0.1 y 0.2 son igualmente correctos. Por lo tanto, podemos ampliar nuestro rango de umbral y considerar cualquier valor entre 0 y 5 como válido, pero esta decisión podría ser errónea si obtenemos esta lectura:

monitorización de anomalías

En este caso podemos tener una alarma perdida, porque un valor de 1 para la métrica A en ese momento en particular podría representar un comportamiento inusual que tenemos que investigar.

Aplicando algunas técnicas de detección de anomalías, podemos definir un patrón de datos sistemático e identificar comportamientos inusuales con mayor precisión.

En este punto, podemos definir el concepto de detección de anomalías como el conjunto de técnicas utilizadas para identificar comportamientos inusuales que no cumplen con el patrón de datos esperado.

Valores atípicos (outliers) y anomalías

Existe otro concepto relacionado con la detección de anomalías que genera confusión: la detección de valores atípicos.

Para la minería de datos, por ejemplo, no hay diferencias entre anomalías y valores atípicos. Sin embargo, muchos autores establecen una diferencia entre ambos basados en el hecho de que los valores atípicos deben considerarse normales, aunque pueden estar muy alejados del patrón de datos sistemático.

En este artículo asumimos que en términos de identificación los valores atípicos y las anomalías se tratan de la misma manera; identificamos un comportamiento inusual y luego decidimos si debe ser considerado un valor atípico o una anomalía.

¿Qué puede hacer la anomalía de datos para la monitorización?

Generalmente el comportamiento anómalo puede traducirse en algún tipo de problema o puede ser la consecuencia de este problema. En otras disciplinas podemos leer sobre fraude bancario, defectos estructurales, problemas médicos, detecciones de intrusos, etc., como problemas que pueden ser detectados mediante técnicas de detección de anomalías.

Sin embargo, algunos autores como Preetam Jinka y Baron Schwartz advierten, en su libro Anomaly Detection for Monitoring, que “(La detección de anomalías) no puede probar que hay una anomalía en el sistema, sólo que hay algo inusual en la métrica que estás observando”.

La detección de anomalías no puede ser considerada como una panacea, sino como una técnica adicional que puede contribuir a nuestro análisis. La siguiente lista resume lo que puede hacer la detección de anomalías:

  • Mejorar la definición y administración de los umbrales. La monitorización de una de las actividades que más tiempo consumen implica establecer y modificar los umbrales. Regularmente, tenemos que definir diferentes umbrales para diferentes servidores y tenemos que redefinirlos para considerar los cambios a lo largo del tiempo en las cargas de trabajo o las mejoras en las aplicaciones, etc. La introducción de técnicas de detección de anomalías puede ser útil para reducir todo este esfuerzo.
  • Proporcionar una alternativa al umbral estático para reducir las alertas falsas y pérdidas.
  • Ofrecer pistas de problemas no detectados: si aplicamos la detección de anomalías en la monitorización de alguna métrica y encontramos un comportamiento inusual, puede ser interesante realizar un análisis e identificar un problema o cambiar lo que lo genera.
  • Ayudar en el análisis de la causa raíz. Con un problema dado, podemos utilizar la detección de anomalías para orientar el análisis de este problema a las métricas relacionadas con el comportamiento anómalo. Si estás interesado en RCA te recomendamos este post.

Aquí concluye nuestro primer análisis de la monitorización de anomalías. Comparte tu experiencia o expectativas sobre la monitorización de anomalías y no te pierdas nuestro próximo post, en el que presentaremos una guía de introducción a la detección de anomalías para tu análisis de datos.

 


    Written by:



    Leave a comment

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.