/
Mejoras en la monitorización

Mejoras en la monitorización

Disponible desde la versión 6.3.0-Yoshi

Introducción

Para escenarios en los que no existe una monitorización corporativa, la Plataforma integra diversas herramientas y tecnologías para monitorizar su estado de salud.

Esta monitorización está basada en el despliegue de Grafana + Grafana Mimir + Prometheus Operator sobre un entorno con Kubernetes.

En la versión 6.3.1 se han incorporado las siguientes mejoras:

  • Estandarización de las métricas de todos los componentes de la Plataforma.

  • Dashboards Grafana de todos los módulos de la Plataforma.

  • Capacidad de generar alertas.

Herramientas de monitorización

image-20250107-125708.png
  • Grafana es una herramienta de código abierto para la visualización y análisis de datos en tiempo real, que permite crear Dashboards interactivos y monitorear métricas de sistemas, aplicaciones y bases de datos.

https://grafana.com/
  • Grafana Mimir es una plataforma de almacenamiento y gestión de métricas a gran escala, diseñada para ofrecer alto rendimiento y escalabilidad en la recolección y consulta de datos de monitoreo en entornos distribuidos.

  • Prometheus Operator es una herramienta para gestionar y desplegar instancias de Prometheus en Kubernetes, facilitando la configuración, monitoreo y mantenimiento de clústeres Prometheus de forma automatizada y eficiente.

Por lo tanto, Prometheus Operator es el encargado de recoger las métricas de los diferentes componentes de la Plataforma, Grafana Mimir actúa como base de datos y almacena esas métricas recogidas, y Grafana actúa de consultor y visualizador de las métricas en un panel de mando o simplemente en consultas simples, además de tener otras opciones como alertas.

El despliegue de las herramientas se hace mediante ArgoCD, que es una herramienta de entrega continua (CD) para Kubernetes que automatiza la implementación y gestión de aplicaciones, utilizando Git como fuente de verdad para la configuración y el estado deseado.

Panel de mando Grafana

Un panel de mando en Grafana es una interfaz visual que muestra datos en tiempo real mediante gráficos, tablas y otros widgets, permitiendo monitorear y analizar métricas de sistemas y aplicaciones.

Con los paneles de mando Grafana se puede llevar a cabo, entre otros aspectos:

  1. Crear paneles visuales: diseñar paneles de mando con gráficos, tablas, mapas y otros widgets.

  2. Visualizar métricas en tiempo real: mostrando datos actualizados en tiempo real de diversas fuentes.

  3. Filtrar datos: aplicar filtros y variables para personalizar la visualización de las métricas.

  4. Configurar múltiples fuentes de datos: conectar y mostrar datos de diferentes sistemas o bases de datos.

  5. Crear diseños interactivos: para organizar y ajustar los paneles de manera flexible para una presentación clara.

  6. Compartir paneles de control: exportarlos o compartirlos con otros usuarios o equipos.

  7. Personalización de paneles: ajustar los colores, rangos de valores y otros aspectos visuales.

  8. Añadir alertas: integrar alertas directamente en los paneles para monitorear métricas específicas.

  9. Historial de datos: visualizar tendencias y datos históricos para análisis de largo plazo.

Los paneles de control configurados pueden estar persistidos en la base de datos de Grafana, o directamente inyectarlos como yaml a través de configMaps en Kubernetes en el propio chart, como es el caso.

Explore

El apartado explore es una herramienta que permite explorar y consultar datos de manera interactiva y ad-hoc. Sirve para realizar consultas rápidas y análisis de métricas o logs en tiempo real, sin necesidad de configurar paneles de control completos. Esto resulta útil para depurar problemas y obtener información instantána de las fuentes de datos conectadas.

Esta herramienta se encuentra en Grafana > Explore.

image-20250107-133429.png
Ejemplo de Grafana Explore.

Data sources

Un data source es una fuente de datos externa (como bases de datos, sistemas de monitoreo o APIs) que Grafana utiliza para consultar y visualizar métricas o información. Ejemplos comunes incluyen Prometheus, InfluxDB, MySQL y ElasticSearch.

En este caso, el data source que se utiliza es el de Prometheus, pero que queda almacenado en la base de datos de Grafana Mimir:

Se accede a estas fuentes en Grafana > Connections > Data source.

Dashboards ofrecidos por Onesait Platform

  • Base de datos:

    • MySQL/MariaDB.

    • MongoDB.

    • PosgreSQL.

    • ElasticSearch/OpenSearch.

  • Módulos:

    • JVM/JMX (todos los componentes).

    • Keycloak.

    • Kafka.

    • DataFlow.

    • FlowEngine NodeJS.

    • Presto.

    • MinIO.

    • Nginx.

  • Kubernetes:

    • Deployments / Pods.

    • Nodes.

    • Nginx Controller.

Métricas de ejemplo

Alertas en Grafana

La principal novedad respecto a la monitorización que ya se ofrecía con la Plataforma, además de la estandarización de las métricas y los paneles de control de todos los módulos, es la incorporación de alertas a través de Grafana Alerts.

Grafana Alerts es una funcionalidad que permite configurar notificaciones automáticas basadas en umbrales o condiciones de métricas, alertando a los usuarios sobre eventos o problemas en tiempo real. Las notificaciones se podran enviaran a través de email o Teams ademas de muchas otras opciones.

Con Grafana Alerts se pueden hacer las siguientes cosas:

  1. Configurar alertas: definir condiciones basadas en métricas específicas.

  2. Establecer umbrales: definir valores que, al superarse, activan una alerta.

  3. Notificaciones: enviar alertas a diferentes canales (correo, Slack, PagerDuty, etc.).

  4. Alertas múltiples: crear varias alertas para un mismo panel o gráfico.

  5. Silenciar alertas: configurar periodos en los que no se enviarán notificaciones.

  6. Historial de alertas: consultar y gestionar las alertas pasadas.

  7. Escalado de alertas: configurar alertas en función de la gravedad y escalarlas a distintos equipos o personas.

  8. Condiciones complejas: establecer combinaciones de condiciones para activar alertas, como por ejemplo combinando varios umbrales o métricas.

Puntos de contacto

Para poder ver o configurar los diferentes puntos de contacto (correos electrónicos, equipos de Microsoft Teams, etc.) se accederá a Grafana > Alerting > Contact Points.

Visualización de las alertas

Para poder ver o configurar las diferentes alertas en el sistema de Grafana se accederá a Grafana > Alerting > Alert Rules.

En el siguiente ejemplo se puede apreciar los diferentes grupos de alertas que hay configurados, como por ejemplo alertas de health check, para saber si están caídas las bases de datos a las que se conecta la Plataforma:

En el siguiente ejemplo se puede ver la alerta que se recibe vía correo electrónico cuando un microservicio esta caído: