Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Disponible a partir de versión 2.3.0-immortal

Introducción

En este Q4 vamos a empezar con una serie de nuevas funcionalidades orientadas a la integración de logs. El objetivo es no solo aunar los logs de plataforma en un único sitio, sino facilitar las búsquedas y análisis de los mismos.

Mediante el uso de Graylog vamos a poder analizar en tiempo real el contenido de nuestros logs de manera rápida y sencilla.

¿Qué es Graylog?

Graylog es una solución de gestión centralizada de logs open source que, entre otros, nos provee de sistemas de captura de logs estándar, ordenación y análisis en tiempo real de nuestros logs.

Más información en : https://www.graylog.org/products/open-source

...

Uso en Onesait Platform

A continuación vamos a describir cómo se conectan los módulos de plataforma y cómo cualquier aplicación desarrollada sobre ésta puede hacerlo también.

Conexión de plataforma

INPUTS:

Son los mecanismos que Graylog permite como entrada de logs a su sistema. En nuestro caso haremos uso de GELF (Graylog Extended Log Format) vía TCP

...

STREAMS:

Son un mecanismo de clasificación y categorización de logs. Mediante el uso de reglas, Graylog puede clasificar cada entrada de logs en un Stream. En el caso de plataforma, cada log lleva una serie de campos “custom” por los cuales podemos clasificar el origen de los mismos. El más importante es el campo “app_name” que indica el módulo origen de cada entrada. Para facilitar las búsquedas hemos creado un Stream por módulo, de tal manera que se pueda seleccionar rápidamente a la hora de buscar:

...

CAMPOS PERSONALIZADOS:

Como hemos hablado anteriormente, podemos definir campos personalizados a la hora de enviar los logs. Esto nos permitirá usarlos no solo en los Streams, sino también para nuestras búsquedas. Por ejemplo, en el caso del FlowEngine, añadimos el campo “domain” que tendrá al menos 3 valores:

  • app.js: Proceso NodeJS principal gestor de los distintos dominios

  • Proxy-nodered.js: Proxy interno usado por app.js para derivar las peticiones a las instancias de nodered

  • “nombreDeDominio”: Imaginemos que con nuestro usuario nos hemos creado un dominio en el FlowEngine llamado “adminDomain”. Si buscamos por esa cadena, podemos ver los logs que genera solamente nuestro dominio:

BÚSQUEDAS:

Todos los campos, sean personalizados o no pueden ser aplicables en nuestras búsquedas, tanto para visualización como filtros:

...

Conexión de otros componentes

Una vez esté Graylog funcionando en plataforma, podemos aprovecharlo para añadir logs de aplicaciones desarrolladas sobre ésta, tales como microservicios.

Para ello tenemos 2 opciones:

Uso de GELF-TCP:

Igual que el resto de componentes de plataforma, Es posible la conexión vía GELF TCP al puerto 12201

Uso de Sidecars:

Los sidecars son ligeros sistemas de configuración para diferentes colectores de logs o “backends”. Estos sidecars corren como servicios (windows) o demonios (Linux).

...

Para más información sobre cómo configurar sidecars y colectores: https://docs.graylog.org/en/4.0/pages/sidecar.html

Siguientes pasos

Queda pendiente para Q1 del próximo año integrar Graylog dentro del ControlPanel junto con una gestión de accesos derivada de los usuarios de plataforma. Por el momento se accederá desde una URL separada y con un único usuario administrador.

Explicación en vídeo

Widget Connector
overlayyoutube
_templatecom/atlassian/confluence/extra/widgetconnector/templates/youtube.vm
width600px
urlhttps://www.youtube.com/watch?v=qG-s-HX9S2s
height450px

...