EL RETO

Un cliente dispone de una plataforma de gran complejidad compuesta por multitud de servicios y procesos, cada uno de los cuales generaba su propio log, lo que dificultaba por ello su explotación para labores estadísticas, de monitorización y de resolución de problemas.

El sistema de consulta de esos datos de logs estaba basado en una aplicación web desarrollada ad hoc para filtrar y listar la información.

LA SOLUCION

Se determinó como solución la implementación de un sistema centralizado de logs y de recogida de registros de las llamadas API REST a servicios (salientes del sistema y entrantes al sistema) a una Base de Datos.

De este modo la información de log quedaría a disposición en un solo punto eliminando procesos intermedios de modo que:

  • La effciencia general del sistema se mejoró y la posibilidad de errores se reducía.
  • La explotación de la información podía llevarse a cabo más fácilmente y eficientemente.
  • Posibilidad de emplear herramientas más sofisticadas y eficientes de gráficas y reporting ,eliminando el mantenimiento y desarrollos evolutivos de su web de visualización asociada, con el consecuente ahorro de costes.

SOLUCION TECNOLOGICA

Para la solución se empleó ELK Stack, al proveer del motor de búsqueda y analítica Elasticsearch en el que almacenar la información de log Mediante el uso de Kibana, los usuarios podían visualizar datos en cuadros y gráficas a partir de esa información almacenada.

Los distintos procesos y servicios de la Plataforma (implementada en Java) utilizaría los Appenders de la biblioteca Log4J (biblioteca para registro de transacciones en tiempo de ejecución) para ir volcando centralizadamente la información de logs y de llamadas API Rest en Elasticsearch.

Dados los requisitos de rendimiento de sistema, se optó por un Appender Asínchrono ya que se consigue mejorar la eficiencia al ejecutar las operaciones de volcado de logs en un Thread distinto al del flujo de negocio desde el que se realiza.

Por último, los usuarios podrían consultar y monitorizar fácilmente la información a través de las visualizaciones de los Tableros (tablas y gráficas) creadas en Kibana.