ELK stack (III): Visualización de datos con Kibana

, , No Comments
Es el turno de visualizar datos gracias a Kibana. Este entorno de visualización web es la tercera pata del stack ELK. Gracias a Kibana, podremos realizar diferentes visualizaciones en base a los datos indexados en Elasticsearch. Además, podremos configurar paneles de control o dashboards creados a partir de las visualizaciones creadas.

Para esta entrada, necesitaremos descargar y descomprimir Kibana.


Puesta en marcha de Kibana

Kibana se conectará a la instancia de Elasticsearch que ya hemos configurado en entradas anteriores, mediante el host y puerto configurados por defecto, por lo que tendremos que tener activa dicha instancia de Elasticsearch.

Para iniciar Kibana, accederemos a la carpeta bin dentro del directorio raíz de Kibana, y ejecutaremos el archivo kibana.bat. Accederemos a la consola de gestión en la URL http://localhost:5601/

Configuración de índices

El primer paso para empezar a trabajar con Kibana es configurar los índices de Elasticsearch desde donde se obtendrán los datos para ser visualizados. Esta configuración se realiza en la pestaña Settings. En nuestro ejemplo, los datos de cotización en bolsa los hemos almacenado en el índice de nombre logstash-bolsa-2015.

En la casilla para la especificación del índice, pondremos "logstash-bolsa-*". En vez de utilizar el nombre exacto del índice, hemos utilizado el asterisco como patrón, para que nos sirva para futuros datos referentes a otros años (p. ej. logstash-bolsa-2016).

Indicaremos también que nuestro índice dispone de una propiedad que almacena un dato de tipo timestamp, que en este caso corresponde a la fecha de cotización en bolsa. Indicaremos también que la propiedad que almacena dicho dato es @timestamp.

Crearemos el índice e inmediatamente veremos un listado con las propiedades que Kibana ha encontrado en los documentos almacenados en dicho índice. Podremos ver algunas propiedades adicionales de Elasticsearch junto con las propiedades de los valores de cotización en bolsa.



 

Exploración de datos

Para echar un vistazo rápido a los datos, podremos ir a la sección Discover para realizar algunas consultas. Disponemos de una caja de texto con un asterisco, que indica que queremos obtener todos los datos indexados.

Puesto que los valores de cotización en bolsa corresponden al año 2015, tendremos que configurar el rango temporal con el control disponible arriba a la derecha. Mediante la opción Quick -> Previous year podremos ver un gráfico que refleja el histograma de los datos recogidos ese año y un listado con una muestra de los mismos.

También podemos filtrar los datos en base al valor de una propiedad. Por ejemplo, podemos especificar en el espacio de búsqueda "company: YAHOO", con lo que veremos únicamente los datos correspondientes a las acciones de Yahoo.


  

Visualización de datos

Vamos a crear ahora una visualización de datos, mediante la pestaña Visualize. En esta pestaña, veremos un listado de posibles gráficas. En este caso, vamos a crear una gráfica de tipo Line Chart, con el fin de comparar el precio de las acciones de cada compañía en el momento de apertura de mercados. Pinchando en Line Chart y seleccionando From a new search, accederemos a la configuración de la gráfica.

En el eje Y, elegiremos como métrica el máximo sobre el campo open. De esta forma, el eje Y representará los valores de las acciones en el momento de apertura de mercados. Para el eje X, crearemos lo que se denominan buckets. Los buckets son una especie de "cubos" donde se "insertarán" o agruparán los datos en base a una serie de parámetros. 

En nuestro caso, crearemos un bucket de tipo Date histogram sobre la propiedad @timestamp, para que los datos se puedan agrupar en base a la fecha en la que fueron obtenidos. Si dejáramos así la configuración y ejecutáramos la visualización (botón verde con el play) veríamos una gráfica con una sola línea, que correspondería a los valores de Google, ya que es la que dispone de los valores más altos.

Para solucionar el problema, añadiremos un sub-bucket sobre el ya configurado. Este sub-bucket será de tipo Split Lines, para diferenciar las líneas correspondientes a Google y Yahoo. Para ello, crearemos un par de filtros, que servirán para dividir la línea en dos. Los filtros pueden configurarse en base a valores de las propiedades, por lo que crearemos uno de tipo "company : YAHOO" y otro de tipo "company : GOOGLE". Ejecutando otra vez la visualización, veremos que ahora aparecen dos líneas, una para cada compañía. Podremos guardar la visualización para su posterior uso o consulta.


Creación de un panel de control o dashboard

En la pestaña Dashboard podemos crear un panel de control con las gráficas que hemos guardado anteriormente. En este caso, crearemos un panel de control que incluya la visualización creada anteriormente. Podemos situar cada visualización en el lugar que creamos pertinente y con las dimensiones que queramos, por lo que se permite una flexibilidad total a la hora de componer nuestros paneles de control. Estos dashboard podemos también guardarlos e incluso incrustarlos en cualquier web externa mediante la opción Share, la cual nos facilita un código de incrustación.


 

Conclusiones

Kibana permite realizar visualizaciones de datos de una forma sencilla y flexible. Dispone de multitud de tipos de gráficas y parámetros de configuración, que hacen que pueda adaptarse a cualquier dominio y necesidad de visualización de datos. Es importante recalcar, que estas visualizaciones se actualizan en tiempo real a medida que nuevos datos son indexados en Elasticsearch. Si los tipos de gráficos no fueran suficientes, se pueden desarrollar plugins de forma sencilla para crear los gráficos que podamos necesitar en cada caso.

En siguientes entradas crearé un ejemplo más completo con el stack ELK para la indexación y visualización de tweets de la red social Twitter, así que puedes suscribirte a mi blog para no perder detalle!

0 comentarios:

Publicar un comentario