Monitorización de Logs Distribuidos

Introducción

La arquitectura de microservicios presenta un desafío en cuanto al registro de logs. Los monolitos se implementan como una sola aplicación, lo que significa que la implementación del registro de logs es más sencilla. 

En el caso de los microservicios, puede haber cualquier cantidad de ellos en los que además pueden ser de diferentes conjuntos de tecnología, diferentes funcionalidades, etc.

Por tanto, se necesita un formato de registros de logs unificado que pueda recopilar registros en un almacenamiento central y facilitar a los usuarios la consulta de registros de manera estructurada. Además, debe ser escalable teniendo en cuenta la cantidad de registros que se pueden generar desde un entorno de aplicación altamente escalable.

Una solución de registro centralizada es la pila Elasticsearch, Fluentd y Grafana (EFG) permitiendo recopilar, indexar, buscar y visualizar datos de registro. También sería una opción válida con Kibana (EFK).

Fluentd

Fluentd es un recopilador de datos de código abierto, que le permite unificar la recolección y el consumo de datos para un mejor uso y comprensión de los datos.

Fluentd intenta estructurar los datos como JSON tanto como sea posible, esto permite que se unifique todas las facetas de procesamiento de datos de registro: recopilación, filtrado, almacenamiento en búfer y salida de registros en múltiples fuentes y destinos.

Además, Docker tiene un controlador de registro incorporado para Fluentd. Esto significa que no se requiere agente adicional en el contenedor para enviar registros a Fluentd. Los registros se envían directamente al servicio Fluentd desde STDOUT y no se requieren archivos de registros adicionales ni almacenamiento persistente. Para saber más, pulse aquí.

Elasticsearch

Elasticsearch es un motor de búsqueda y análisis que permite almacenar documentos (estructurados o no) e indexar todos los campos de estos documentos en casi tiempo real.

Es distribuible y fácilmente escalable, enfocado sobre todo al mundo empresarial y científico. Es accesible a través de una extensa y elaborada API. Con esta herramienta podemos impulsar búsquedas extremadamente rápidas que respalden nuestras aplicaciones de descubrimientos de datos.

Grafana

Grafana es una herramienta de explotación y visaualización de datos provenientes de distintas fuentes configurables desde la propia herramienta. Nos permite definir nuestros propios datasources dentro de una gran variedad (Elasticsearch, PostgreSQL, Mongo...) para, posteriormente, poder crear dashboards personalizados para la representación gráfica de los datos obtenidos desde nuestras distintas fuentes.

 

Kibana

Kibana es una herramienta open-source perteneciente a Elastic, que nos permite visualizar y explorar datos que se encuentran indexados en ElasticSearch.

Puede realizar análisis de datos avanzados y visualizar fácilmente sus datos en una variedad de gráficos, tablas y mapas. Kibana facilita la comprensión de grandes volúmenes de datos. Su sencilla interfaz basada en navegador le permite crear y compartir rápidamente paneles dinámicos que muestran cambios en las consultas de Elasticsearch en tiempo real.

Arquitectura