Elastic Stack es una solución OpenSource que suele emplearse
tanto como para el análisis de datos de tipo timeseries, como por ejemplo logs de aplicación, como también para datos
estáticos tipo catálogo de productos o inventarios.
Se puede considerar a elasticsearch como una base de datos
NoSQL timeseries basada en el motor de
búsqueda Apache Lucene.
La suite de Elastic Stack es un producto de OpenSource que está
compuesta por los siguientes productos
- Kibana, es la interfaz de visualización.
- Elasticsearch, el core de la solución, es donde se guardan e indexan los documentos.
- Logstash, es la herramienta de ingestión, transformación y enriquecimiento de datos
- Beats, son pequeños agentes de propositio especifico que permiten ingesta de datos
Elasticsearch es el
corazón del Stack, escrito en Java y con licencia Apache, es un motor de
búsqueda cuya finalidad es realizar el indexado, análisis y búsqueda de
documentos casi en tiempo real, esto quiere decir que permite la consulta de
los datos indexados en tan solo unos segundos de delay, dependiendo de como sea
la configuración de la instalación que hagamos.
Este motor escala muy bien en forma horizontal gracias a la
posibilidad de particionar (sharding) y al replicado de los índices, esto nos
permite usar hardware comodity y no gastar mucho dinero en instancias o
hardware especializado
Las consultas y
operaciones al motor se realizan mediante una interface REST y en formato JSON
con el lenguaje DSL, el cual es muy práctico y flexible.
Puede trabajar de forma de schema on read y schema on write
lo cual le da mayor flexibilidad versus sus competidores
Se puede extender mediante plugins, x-pack (que merece de
por si mismo un apartado) y otros como por ejemplo S3 repository plugin que
permite guardar la toma de backups en AWS.
Logstash, es la
parte del Stack que permite la ingesta de datos, es la solución de ETL que nos es
provista por la suite. Esta pieza de software puede ser cambiada por alguna otra
de preferencia como por ejemplo fluentd.
Logstash puede
tomar y procesar los datos de varias entradas, logs, puertos TCP, colas de
mensajería, etc y los puede enviar a múltiples destinos, entre ellos a elasticsearch o bien a una cola de
mensajería.
Los datos de entrada pueden enriquecerse mediante plugins
como el de GeoIP que permite identificar de que parte del mundo es la IP origen
en, por ejemplo, un log de transacciones de un servidor web, logrando de esta
manera una nueva dimensión en el análisis de los datos ingeridos.
Beats, estos son
agentes livianos que permiten hacer ingesta de datos con mínima configuración
por parte del usuario.
Los Beats pueden
enviar los datos recolectados directamente a elasticsearch o a logstash
si se requiere un major enriquecimiento de los mismos.
Sirven para recolectar cierto tipo de información y resolver
problemáticas por ejemplo metricas de sistema operativo, ingerir un archivo,
analizar tráfico de red, etc
Actualmente existen estos Beats:
- Metricbeat, colecta métricas del sistema y servicios (cpu, memoria, etc)
- Auditbeat, toma la información de sistema de auditoria de un equipo Linux
- Packetbeat, captura el trafico de red (tcpdump) e interpreta multiples protocolos de aplicación
- Filebeat, ingesta y centralización de logs (files)
- Winlogbeat, envía la información de los eventos de Windows para procesar en elasticsearch
- Heatbeat, monitorea la disponibilidad de servicios
- Functionbeat, permite hacer el deploy de funciones FAAS (AWS Lambdas)
Como se puede ver existen diversos agentes para solucionar
problemas de la manera mas simple y sencilla.
Kibana, es la herramienta
visual del stack en la cual podemos
configurar visualizaciones para agregar a dashborads, también permite hacer
gestión del cluster de elastic y manejo de los índices. Como otras partes del
stack, esta también permite ser ampliada mediante plugins.
Kibana también
permite hacer monitoreo en base a los datos que se ingesta, machine learning y
detección de anomalías, análisis de relaciones mediante grafos, presentaciones
tipo powerpoint con datos realtime en canvas.
Algunos dashboards de Kibana
para resolver casos de uso
Análisis de texto en
redes sociales (Twitter)
Análisis de datos de un sitio de e-comerce
En resumen el Elastic Stack es una solución para análisis de datos que provee resuelve multiples casos de uso en ya sea dashboards de operacion, dashboards gerenciales.
No hay comentarios:
Publicar un comentario