paint-brush
Su guía para ejecutar Grafana Mimir con MinIO para el almacenamiento de métricas persistentesby@minio
9,028
9,028

Su guía para ejecutar Grafana Mimir con MinIO para el almacenamiento de métricas persistentes

MinIO8m2023/08/15
Read on Terminal Reader

Mimir almacena datos en el almacenamiento de objetos para persistencia, lo que le permite aprovechar MinIO ubicuo, rentable y de alta durabilidad.
featured image - Su guía para ejecutar Grafana Mimir con MinIO para el almacenamiento de métricas persistentes
MinIO HackerNoon profile picture
0-item
1-item
2-item

Los sistemas distribuidos contienen muchas partes móviles y es fundamental monitorear los datos de telemetría, como métricas, registros y seguimientos, para ganar visibilidad y permitir que los equipos determinen la causa raíz de un problema. El objetivo de muchas iniciativas de observabilidad es aumentar la disponibilidad y el rendimiento. Grafana Labs fabrica una de las pilas de observabilidad de código abierto más utilizadas (Grafana para visualización, Loki para registros, Mimir para métricas, Tempo para seguimientos, Alertmanager para alertas) y vende Grafana Cloud y Grafana Enterprise .


Grafana Mimir es un proyecto de software de código abierto con licencia AGPLv3 que, cuando se combina con MinIO, proporciona almacenamiento escalable a largo plazo para las métricas de Prometheus. Mimir se creó utilizando una arquitectura basada en microservicios que es escalable horizontalmente. Cada microservicio se denomina componente, y Mimir se ejecuta como un único binario formado por estos componentes. La mayoría de los componentes no tienen estado y no requieren que se conserve ningún dato entre reinicios.


Cuando combina Mimir y MinIO, produce una infraestructura que es particularmente adecuada para satisfacer las necesidades de observabilidad nativa de la nube empresarial con:


  • Rendimiento: la combinación de escalabilidad y alto rendimiento de MinIO pone a su alcance todas las cargas de trabajo, sin importar cuán exigentes sean. MinIO es capaz de un rendimiento tremendo: un punto de referencia reciente logró 325 GiB/s (349 GB/s) en GET y 165 GiB/s (177 GB/s) en PUT con solo 32 nodos de SSD NVMe listos para usar.


  • Escala: MinIO no conoce límites ya que se escala horizontalmente a través de grupos de servidores. Cada grupo de servidores es un grupo independiente de nodos con sus propios recursos informáticos, de red y de almacenamiento. En las configuraciones de varios inquilinos, cada inquilino es un grupo de grupos de servidores en un solo espacio de nombres, completamente aislado de los grupos de servidores de los otros inquilinos. La capacidad se puede agregar fácilmente a un sistema existente apuntando a MinIO a un nuevo grupo de servidores y MinIO lo prepara automáticamente y lo pone en servicio.


  • Simplicidad: si prefiere usar Mimir que pasar horas jugueteando con el almacenamiento de objetos, entonces no puede encontrar una solución más sencilla que MinIO. MinIO solo sirve objetos: es todo lo que hacemos y estamos obsesionados con ser los mejores. Otros productos combinan almacenamiento de objetos y archivos, lo que da como resultado múltiples capas de almacenamiento que introducen latencia en los tiempos de respuesta de consultas de Mimir y crean una arquitectura más compleja con mayor probabilidad de falla.


  • Nube múltiple: MinIO, nacido en la nube, se ejecuta en cualquier lugar con cualquier combinación de hardware y software. Un amplio conjunto de integraciones significa que MinIO se conecta de manera transparente a las herramientas y servicios de administración y seguridad existentes para centralizar la administración de identidades, la administración de claves de cifrado y más. MinIO proporciona almacenamiento de objetos compatible con API S3 en baremetal o cualquier versión de Kubernetes, incluidos GKE, EKS, AKS, Red Hat OpenShift, VMware Tanzu, y sincroniza datos de manera eficiente mediante la replicación activa-activa .


Algunas de las fortalezas centrales de Grafana Mimir incluyen:


  • Fácil de instalar y mantener: la extensa documentación, los tutoriales y las herramientas de implementación de Grafana Mimir hacen que sea rápido comenzar. Usando su modo monolítico, puede poner en funcionamiento Grafana Mimir con solo un binario y sin dependencias adicionales. Una vez implementados, los tableros de mejores prácticas, las alertas y los libros de jugadas incluidos con Grafana Mimir facilitan el monitoreo del estado del sistema.


  • Escalabilidad masiva: puede ejecutar la arquitectura escalable horizontalmente de Grafana Mimir en varias máquinas, lo que da como resultado la capacidad de procesar órdenes de magnitud de más series temporales que una sola instancia de Prometheus. Las pruebas internas muestran que Grafana Mimir maneja hasta mil millones de series temporales activas.


  • Vista global de las métricas: Grafana Mimir le permite ejecutar consultas que agregan series de varias instancias de Prometheus, lo que le brinda una vista global de sus sistemas. Su motor de consultas paraleliza ampliamente la ejecución de consultas, de modo que incluso las consultas de cardinalidad más alta se completan a una velocidad vertiginosa.


  • Almacenamiento de métricas económico y duradero: Grafana Mimir utiliza el almacenamiento de objetos para el almacenamiento de datos a largo plazo, lo que le permite aprovechar esta tecnología omnipresente, rentable y de alta durabilidad. Es compatible con múltiples implementaciones de almacenamiento de objetos, incluidos AWS S3, Google Cloud Storage, Azure Blob Storage, OpenStack Swift, así como cualquier almacenamiento de objetos compatible con S3.


  • Alta disponibilidad: Grafana Mimir replica las métricas entrantes, asegurando que no se pierdan datos en caso de falla de la máquina. Su arquitectura escalable horizontalmente también significa que se puede reiniciar, actualizar o degradar sin tiempo de inactividad, lo que significa que no hay interrupciones en la ingesta o consulta de métricas.


  • Multiusuario nativo: la arquitectura multiusuario de Grafana Mimir le permite aislar datos y consultas de equipos independientes o unidades de negocio, lo que hace posible que estos grupos compartan el mismo clúster. Los límites avanzados y los controles de calidad del servicio garantizan que la capacidad se comparta de manera justa entre los inquilinos.


Mimir se desarrolló para ser la base de datos de series temporales de código abierto más escalable y de mayor rendimiento disponible. Mimir se escala fácilmente a mil millones de métricas y más, con un rendimiento de consulta ultrarrápido que es hasta 40 veces más rápido que Cortex, el TSDB Mimir fue creado para reemplazar. Cortex ha sido un proyecto CNCF desde 2018 y se usa ampliamente para almacenar métricas de Prometheus. Al crear Mimir, Grafana Labs sentó las bases para la observabilidad lista para la empresa con licencias AGPLv3, controles de acceso y rendimiento, escalabilidad y disponibilidad mejorados.


Grafana Labs tiene un objetivo para Mimir: ser la mejor base de datos escalable de series temporales, independientemente del formato de las métricas. Las empresas deberían poder consumir las métricas de Prometheus (y otras métricas a medida que colaboran otros proveedores) sin modificar el código existente.


Ahora que hemos aprendido qué es Mimir, veamos un tutorial introductorio.

Tutorial Grafana Mimir y MinIO

Este tutorial se basa en un tutorial existente, Juega con Grafana Mimir para mostrar lo fácil que es comenzar a usar Mimir usando Docker.


Cree una copia del repositorio de Grafana Mimir usando la línea de comando de Git:

 git clone https://github.com/grafana/mimir.git


Navegue al directorio de tutoriales:

 cd mimir/docs/sources/tutorials/play-with-grafana-mimir/


Inicie MinIO, Mimir, Prometheus, Grafana y NGINX

 docker compose up


Esto traerá lo siguiente:


  • Grafana Mimir: tres instancias de Mimir para alta disponibilidad. El arrendamiento múltiple está habilitado (el ID de arrendatario es una demostración).
  • Prometheus: raspa las métricas de Mimir y luego las vuelve a escribir en Mimir para que estén disponibles
  • MinIO: almacenamiento persistente definido por software compatible con S3 para bloques, reglas y alertas
  • Grafana: incluye una fuente de datos preinstalada para consultar Mimir y paneles preinstalados para monitorear Mimir
  • Equilibrador de carga: equilibrador de carga basado en NGINX que expone instancias de Mimir


Se utilizan los siguientes puertos:





Si desea profundizar en las configuraciones utilizadas en este tutorial, consulte los archivos YAML guardados en

 ~/mimir/docs/sources/tutorials/play-with-grafana-mimir/config/ 



Para acceder a Grafana, inicie un navegador y abra http://localhost:9000 . Utilizará Grafana para ver paneles que muestran el estado del clúster de Mimir. Los tableros consultan a Mimir sobre las métricas que muestran. En el menú de la parte superior izquierda, haga clic en Paneles y luego en Examinar para ver los paneles que se han cargado previamente para el tutorial. Estos tableros son del mixin de Grafana Mimir, que reúne los tableros de mejores prácticas de Grafana Labs, las reglas de registro y las alertas para monitorear Mimir.



Por lo general, toma de 3 a 5 minutos después de que lanzamos nuestros contenedores de tutoriales para que las métricas se muestren en los paneles de Grafana. También estamos ejecutando Mimir sin una puerta de enlace de ingreso, un programador de consultas o Memcached, por lo que los paneles relacionados estarán vacíos.



En esta etapa temprana de aprendizaje de Mimir, comience explorando los paneles en busca de escrituras, lecturas, consultas y almacenamiento de objetos. Por ejemplo, el tablero de la tienda de objetos muestra las operaciones que han tenido lugar desde que presentamos Mimir.


Configurar una regla de grabación

Las reglas de registro son un mecanismo que precalcula expresiones frecuentemente necesarias o computacionalmente costosas y guarda el resultado como un nuevo conjunto de series de tiempo. Siga estas instrucciones para configurar una regla de grabación en Mimir usando Grafana.


Esta regla de registro sum:up mostrará la cantidad de instancias de Mimir que están activas y accesibles para raspar. Una vez creada la regla, estará disponible para consulta e inclusión en los paneles.


Abra el menú Alertas de la barra de herramientas izquierda y haga clic en "Nueva regla de alerta":



Introduzca lo siguiente para configurar la regla de grabación:


  1. Elija Mimir or Loki recording rule
  2. Configure lo siguiente:
  3. Nombre de la regla = sum:up
  4. Elija Mimir en el campo Seleccionar fuente de datos
  5. Espacio de nombres = example-namespace
  6. Grupo = example-group
  7. Expresión de consulta = sum(up)
  8. Elija Guardar y salir en la esquina superior derecha.


Para verificar que su nueva regla de grabación se ejecuta correctamente, abra Explorar desde el menú de la izquierda:



En el menú desplegable Métrica, elija sum:up , luego haga clic en Ejecutar consulta desde la parte superior derecha, luego haga clic en el botón Inspector. A continuación, haga clic en Datos para ver una lista de horas y resultados de la consulta. El resultado debe ser "3", lo que indica que las tres instancias locales de Mimir están operativas.


Configurar una regla de alerta

Las reglas de alerta creadas en Mimir siguen el mismo formato de PromQL que las creadas en Prometheus y Loki. Grafana evalúa la expresión y, si es necesario, activa una alerta mediante Alertmanager. Profundizamos en esto en una publicación de blog anterior, Monitoreo y alertas de nubes múltiples con Prometheus y Grafana .


Vamos a crear una alerta que se active cuando el número de instancias de Mimir caiga por debajo de tres.


En el menú de la izquierda, desplace el cursor sobre Alertas y luego haga clic en Nueva regla de alerta.



  1. Elija Mimir or Loki alert
  2. Configure lo siguiente:
  3. Nombre de la regla = MimirNotRunning
  4. Elija Mimir en el campo Seleccionar fuente de datos
  5. Espacio de nombres = example-namespace
  6. Grupo = example-group
  7. Expresión de consulta = up == 0
  8. Elija Guardar y salir en la esquina superior derecha.


Navegue a la página Alertas y verá nuestra regla de grabación Mimir y nuestra regla de alerta. Tenga en cuenta que hay un agradable, grande y reconfortante estado verde normal que se muestra junto a la alerta porque todos nuestros contenedores Mimir todavía están funcionando.



Simularemos una condición de error terminando una de las tres instancias de Mimir (asegúrese de estar en el directorio ~/mimir/docs/sources/tutorials/play-with-grafana-mimir :

 docker compose kill mimir-3


Como finalizamos abruptamente una instancia de Mimir, habrá un breve período en el que Grafana muestra un error al consultar las reglas. Esto se resolverá automáticamente tan pronto como las comprobaciones de estado internas de Mimir detecten que la instancia terminada no está en buen estado.


En aproximadamente un minuto, la alerta indicará brevemente un estado Pendiente amarillo.


Después de otro minuto, la alerta cambiará al estado de activación rojo:


Si hubiéramos configurado Alertmanager con canales de notificación, las alertas se dispararían al mecanismo y contacto apropiados. Consulte Supervisión y alertas de nubes múltiples con Prometheus y Grafana para obtener instrucciones.


Antes de recuperar nuestra instancia de Mimir terminada, regrese a la página Explorar en Grafana y consulte nuestra regla de registro de sum:up . Podemos ver que Mimir continuó registrando métricas a pesar de que una instancia de Mimir estaba inactiva.



Finalmente, vuelva a activar la instancia de Mimir:

 docker compose start mimir-3


Vuelva a la página de Alertas y observe que nuestro estado de alerta ha vuelto a Normal.

Conclusión

En este tutorial, aprendió a ejecutar Grafana Mimir y MinIO en una configuración de alta disponibilidad. Consumimos las métricas de Prometheus de Mimir, luego las consultamos y las visualizamos en Grafana. También configuramos una regla de grabación y una alerta, y verificamos que la alerta se disparara como se esperaba cuando se cumplió la condición.


También puede configurar Mimir y Grafana para extraer las métricas de Prometheus de MinIO y activar alertas a través de AlertManager. Mimir almacena datos en el almacenamiento de objetos para persistencia, lo que le permite aprovechar MinIO ubicuo, rentable y de alta durabilidad.


¡Dale una oportunidad a Grafana Mimir! Si tiene preguntas, únase a nuestro canal de Slack o envíenos un correo electrónico a [email protected].


También publicado aquí .