Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

La monitorizacion de Plataforma esta basada en el despliegue de Grafana + Grafana Mimir + Prometheus Operator sobre un entorno con Kubernetes.

Vease de manera detallara para que se usa cada componente:

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.

  • 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 metricas de los diferentes componentes de Plataforma → Grafana Mimir actua como BBDD y almacena esas metricas recogidas → Grafana actua de consultor y visualizador de las metricas en dashboard o simplemente en consultas simples, adema 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.

Prometheus Operator

En la parte de Prometheus Operator unicamente sera necesario el despliegue del chart y la configuracion de los diferentes Service Monitor:

Un ServiceMonitor en Prometheus Operator es un recurso que facilita la configuración y descubrimiento automático de servicios dentro de un clúster de Kubernetes para que Prometheus los monitoree. Define qué servicios deben ser monitoreados, cómo acceder a ellos y qué métricas recolectar.

Desde el cluster de Kubernetes:

Cluster → Monitoring → Monitors → Service Monitor

image-20250107-133734.pngimage-20250107-133828.png

En la parte de configuracion de Prometheus Operator, a la hora de desplegar, habria que indicar donde se quieren guardar esas metricas → Grafana Mimir

Grafana Mimir

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.

Actua como base de dato de las metricas y se despliega mediante un chart. En este caso solo se configuran parametros como numero de replicas que se desea, si hay varias zonas de replicacion (cluster con HA), time-to-live para las metricas almacenadas (por ejemplo 30 dias) etc.

Grafana

Datasource

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

En este caso, el datasource que se utiliza es el de Prometheus pero que queda almacenado en la BBDD de Grafana Mimir:

Grafana → Connections → Data source

image-20250107-133235.png

Dashboards

Un dashboard 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 Grafana Dashboards se pueden hacer las siguientes cosas:

  1. Crear paneles visuales: Diseñar dashboards con gráficos, tablas, mapas y otros widgets.

  2. Visualizar métricas en tiempo real: Mostrar 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. Diseñar layouts interactivos: Organizar y ajustar los paneles de manera flexible para una presentación clara.

  6. Compartir dashboards: Exportar o compartir dashboards con otros usuarios o equipos.

  7. Personalización de paneles: Ajustar 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 dashboard configurados pueden estar persistidos en la base de datos de Grafana o directamente inyectarlos como yaml a través de configMaps en kuberentes en el propio chart, como es el caso.

A través de la interfaz de grafana se podran visualizar los diferentes dashboard que se tenga configurados:

Grafana → Dashboards:

  • BBDD

    • MySQL/MariDB

    • MongoDB

    • PosgreSQL

    • Elasticsearch/Opensearch

  • Plataforma

    • JVM/JMX (todos los componentes)

    • Keycloak

    • Kafka

    • Streamsets

    • FlowEngine NodeJS

    • Presto

    • MiniO

    • NGINX

  • Kubernetes

    • Deployments / Pods

    • Nodes

    • NGINX Controller

Panel de dashboards:

image-20250107-131919.png

Metricas de ejemplo:

image-20250107-131100.pngimage-20250107-131155.pngimage-20250107-131358.png

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 (ej., combinando varios umbrales o métricas).

Puntos de contacto

Para poder ver o configurar los diferentes puntos de contacto (email, teams…):

Grafana → Alerting → Contact points

image-20250107-132150.png

Visualizacion de alertas

Para poder ver o configurar las diferentes alertas en el sistema de Grafana:

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 estan caidas las bases de datos a las que se conecta Plataforma:

image-20250107-132405.png

En el siguiente ejemplo se puede ver la alerta que se recibe via email cuando un microservicio esta caido:

image-20250107-132709.png

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 dashboards completos. Es útil para depurar problemas y obtener insights instantáneos de las fuentes de datos conectadas.

Grafana → Explore

image-20250107-133429.png

  • No labels