La aplicación que desarrollaste finalmente está productiva y todo marcha en orden hasta que el cliente te notifica que ocurrió un error y sus usuarios no pueden navegar dentro del sitio. Intentando mantener la calma inicias la terminal del sistema operativo del servidor y por línea de comando te dirigís hacia el archivo donde se almacenan los logs para encontrar alguna pista. Pero dentro tuyo sospechas que se aproxima una pesadilla: horas analizando 10MB de texto interminable.
¿Te resulta familiar? Entonces quizás nuestro nuevo y gran amigo Elastick Stack puede ayudarte. ¡Adelante!
Introducción
Elastic Stack es un grupo de herramientas que se utilizan en conjunto principalmente para monitoreo, análisis de datos y explotación de información en tiempo real.
En sus orígenes, el nombre de este conjunto de tecnologías se denominaba ELK, ya que las siglas hacían referencia a los diferentes productos de Elasticsearch, Logstash y Kibana. Tiempo después, una cuarta herramienta denominada Beats fue añadida a la pila, de manera que el nombre ELK quedó obsoleto.
De este modo, dentro de los componentes que hoy en día constituyen el Elastic Stack nos encontramos con:
Beats
Los Beats son pequeñas herramientas que se utilizan para enviar información desde un servidor hacia Elasticsearch a través, o no, de Logstash. Pueden recoger información de un archivo, de un sistema, de una red o incluso de una base de datos. Elastic expone de manera oficial 6 paquetes de agentes para poder emplearlos según el tipo de dato a manipular (Filebeat, Metricbeat, Packetbeat, Winlogbeat, Auditbeat, Heartbeat, Functionbeat).
Logstash
Logstash es un motor de recolección de datos que se encarga de tratar, procesar y normalizar la información recibida de manera personalizada. Cumple el rol de pipeline para, al igual que Beats, luego poder transportar esta información a una diferente variedad de salidas. Su utilidad parte de la teoría que no siempre las fuentes de origen enviarán la información en un formato amigable para su posterior visualización.
Elasticsearch
Elasticsearch es el núcleo del Elastic Stack. Funciona como motor de búsqueda e indexación para almacenar de forma central nuestros datos y así poder realizar búsquedas rápidas para dar con los datos recibidos por los anteriores componentes.
Kibana
Finalmente nos encontramos con Kibana: una herramienta que consulta información para su posterior monitoreo y visualización a través de cuadros o gráficos. De manera que ofrece una interfaz más sencilla a la hora de querer localizar errores del sistema o de la aplicación a analizar.
¿Para qué tipo de perfiles es recomendado su uso?
- Desarrollo de software y DevOps: a través del panel de control de Kibana podemos tener una mejor visibilidad no solo de la aplicación sino también del servidor donde esté desplegada.
- Soporte y sistemas: gracias al potencial que nos ofrece el Stack con su nivel de monitoreo, podremos mantener los logs de nuestras aplicaciones organizados, lo que luego nos permitirá rápidamente hallar los errores que se puedan producir en las mismas y poder actuar lo antes posible.
- Redes: entre otros detalles también podremos acceder a monitoreo de interfaces de red.
Instalación y configuración
Para descargar estas herramientas basta con ingresar a la página de Elastic y seleccionar la última versión disponible para cada caso.
Por último, como la configuración de todo el ambiente suele ser extensa y más particular para cada sistema, recomiendo seguir uno de los varios cursos que cuenta la plataforma de Udemy. Estos suelen ser muy completos y nos guiarán en el paso a paso para montar correctamente el punta a punta de nuestro Elastic Stack, o también podemos optar por visitar otro blog para su correcta instalación si preferimos la alternativa gratuita.
¡Manos a la obra!