paint-brush
Seu guia para executar o Grafana Mimir com MinIO para armazenamento de métricas persistentesby@minio
9,037
9,037

Seu guia para executar o Grafana Mimir com MinIO para armazenamento de métricas persistentes

MinIO8m2023/08/15
Read on Terminal Reader

O Mimir armazena dados em armazenamento de objeto para persistência, permitindo que ele aproveite o MinIO onipresente, econômico e de alta durabilidade.
featured image - Seu guia para executar o Grafana Mimir com MinIO para armazenamento de métricas persistentes
MinIO HackerNoon profile picture
0-item
1-item
2-item

Os sistemas distribuídos contêm muitas partes móveis e é fundamental monitorar os dados de telemetria, como métricas, logs e rastreamentos, para obter visibilidade e permitir que as equipes determinem a causa raiz de um problema. O objetivo de muitas iniciativas de observabilidade é aumentar a disponibilidade e o desempenho. Grafana Labs faz uma das pilhas de observabilidade de código aberto mais amplamente usadas (Grafana para visualização, Loki para logs, Mimir para métricas, Tempo para rastreamentos, Alertmanager para alertas) e vende Grafana Cloud e Grafana Enterprise .


O Grafana Mimir é um projeto de software de código aberto licenciado AGPLv3 que, quando acoplado ao MinIO, fornece armazenamento escalável e de longo prazo para métricas do Prometheus. O Mimir foi construído usando uma arquitetura baseada em microsserviços que é escalável horizontalmente. Cada microsserviço é referido como um componente e o Mimir é executado como um único binário composto por esses componentes. A maioria dos componentes não tem estado e não requer que nenhum dado seja mantido entre as reinicializações.


Ao combinar o Mimir e o MinIO, você produz uma infraestrutura particularmente adequada para atender às necessidades de observabilidade nativa da nuvem corporativa com:


  • Desempenho: a combinação de escalabilidade e alto desempenho do MinIO coloca todas as cargas de trabalho, por mais exigentes que sejam, ao seu alcance. O MinIO é capaz de um desempenho tremendo - um benchmark recente alcançou 325 GiB/s (349 GB/s) em GETs e 165 GiB/s (177 GB/s) em PUTs com apenas 32 nós de SSDs NVMe prontos para uso.


  • Escala: MinIO não conhece limite, pois escala horizontalmente por meio de pools de servidores. Cada pool de servidores é um grupo independente de nós com seus próprios recursos de computação, rede e armazenamento. Em configurações de vários locatários, cada locatário é um cluster de pools de servidores em um único namespace, totalmente isolado dos pools de servidores dos outros locatários. A capacidade pode ser facilmente adicionada a um sistema existente apontando o MinIO para um novo pool de servidores e o MinIO automaticamente o prepara e o coloca em serviço.


  • Simplicidade: se você preferir usar o Mimir do que passar horas mexendo no armazenamento de objetos, não encontrará uma solução mais direta do que o MinIO. O MinIO serve apenas para objetos - é tudo o que fazemos e somos obcecados em ser os melhores. Outros produtos combinam armazenamento de objetos e arquivos, o que resulta em várias camadas de armazenamento que introduzem latência nos tempos de resposta de consulta do Mimir e criam uma arquitetura mais complexa com maior chance de falha.


  • Multi-Cloud: MinIO, nascido na nuvem, roda em qualquer lugar em qualquer combinação de hardware e software. Um rico conjunto de integrações significa que o MinIO se conecta de forma transparente às ferramentas e serviços de segurança e gerenciamento existentes para centralizar o gerenciamento de identidades, o gerenciamento de chaves de criptografia e muito mais. MinIO fornece armazenamento de objetos compatível com S3 API em baremetal ou qualquer versão do Kubernetes - incluindo GKE, EKS, AKS, Red Hat OpenShift, VMware Tanzu - e sincroniza dados com eficiência usando replicação ativo-ativo .


Alguns dos principais pontos fortes do Grafana Mimir incluem:


  • Fácil de instalar e manter: a extensa documentação, tutoriais e ferramentas de implantação do Grafana Mimir facilitam o início. Usando seu modo monolítico, você pode colocar o Grafana Mimir em funcionamento com apenas um binário e sem dependências adicionais. Depois de implantados, os painéis, alertas e manuais de práticas recomendadas incluídos no Grafana Mimir facilitam o monitoramento da integridade do sistema.


  • Escalabilidade massiva: você pode executar a arquitetura escalonável horizontalmente do Grafana Mimir em várias máquinas, resultando na capacidade de processar ordens de magnitude em mais séries temporais do que uma única instância do Prometheus. Testes internos mostram que o Grafana Mimir lida com até 1 bilhão de séries temporais ativas.


  • Visão global das métricas: o Grafana Mimir permite executar consultas que agregam séries de várias instâncias do Prometheus, oferecendo uma visão global de seus sistemas. Seu mecanismo de consulta paraleliza extensivamente a execução da consulta, para que até mesmo as consultas de maior cardinalidade sejam concluídas com uma velocidade incrível.


  • Armazenamento métrico barato e durável: o Grafana Mimir usa armazenamento de objetos para armazenamento de dados de longo prazo, permitindo que ele aproveite essa tecnologia onipresente, econômica e de alta durabilidade. É compatível com várias implementações de armazenamento de objetos, incluindo AWS S3, Google Cloud Storage, Azure Blob Storage, OpenStack Swift, bem como qualquer armazenamento de objetos compatível com S3.


  • Alta disponibilidade: o Grafana Mimir replica as métricas recebidas, garantindo que nenhum dado seja perdido em caso de falha da máquina. Sua arquitetura escalável horizontalmente também significa que ele pode ser reiniciado, atualizado ou rebaixado com tempo de inatividade zero, o que significa que não há interrupções na ingestão ou consulta de métricas.


  • Nativamente multilocatário: a arquitetura multilocatária do Grafana Mimir permite isolar dados e consultas de equipes ou unidades de negócios independentes, possibilitando que esses grupos compartilhem o mesmo cluster. Limites avançados e controles de qualidade de serviço garantem que a capacidade seja compartilhada de forma justa entre os inquilinos.


O Mimir foi desenvolvido para ser o banco de dados de séries temporais de software livre mais escalável e de melhor desempenho disponível. O Mimir escala facilmente para 1 bilhão de métricas e além, com desempenho de consulta extremamente rápido que é até 40 vezes mais rápido que o Cortex, o TSDB Mimir foi criado para substituir. O Cortex é um projeto CNCF desde 2018 e é amplamente utilizado para armazenar métricas do Prometheus. Ao criar o Mimir, o Grafana Labs lançou as bases para a observabilidade pronta para empresas com licenciamento AGPLv3, controles de acesso e melhor desempenho, escalabilidade e disponibilidade.


O Grafana Labs tem um objetivo para o Mimir: ser o melhor banco de dados de série temporal escalável, independentemente do formato das métricas. As empresas devem ser capazes de consumir as métricas do Prometheus (e outras métricas à medida que outros fornecedores colaboram) sem modificar o código existente.


Agora que aprendemos o que é o Mimir, vamos fazer um tutorial introdutório.

Tutorial Grafana Mimir e MinIO

Este tutorial se baseia em um tutorial existente, Play with Grafana Mimir , para mostrar como é fácil começar a usar o Mimir usando o Docker.


Crie uma cópia do repositório Grafana Mimir usando a linha de comando do Git:

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


Navegue até o diretório do tutorial:

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


Iniciar MinIO, Mimir, Prometheus, Grafana e NGINX

 docker compose up


Isso trará o seguinte:


  • Grafana Mimir - três instâncias do Mimir para alta disponibilidade. A multilocação está habilitada (o ID do locatário é demo).
  • Prometheus - extrai as métricas do Mimir e as grava de volta no Mimir para que estejam disponíveis
  • MinIO - armazenamento persistente definido por software compatível com S3 para blocos, regras e alertas
  • Grafana - inclui fonte de dados pré-instalada para consultar o Mimir e painéis pré-instalados para monitorar o Mimir
  • Balanceador de carga - balanceador de carga baseado em NGINX que expõe instâncias Mimir


As seguintes portas são usadas:





Se você quiser se aprofundar nas configurações usadas neste tutorial, consulte os arquivos YAML salvos em

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



Para acessar o Grafana, inicie um navegador e abra http://localhost:9000 . Você usará o Grafana para visualizar painéis que exibem o status do cluster Mimir. Os painéis consultam o Mimir pelas métricas que exibem. No menu no canto superior esquerdo, clique em Dashboards e, em seguida, em Browse para ver os painéis que foram pré-carregados para o tutorial. Esses painéis são do mixin Grafana Mimir, que agrupa painéis de melhores práticas do Grafana Labs, regras de gravação e alertas para monitorar o Mimir.



Normalmente, leva de 3 a 5 minutos depois de lançarmos nossos contêineres de tutorial para que as métricas sejam exibidas nos painéis do Grafana. Também estamos executando o Mimir sem um gateway de entrada, agendador de consulta ou memcached, portanto, os painéis relacionados estarão vazios.



Neste estágio inicial de aprendizado do Mimir, comece navegando pelos painéis para gravações, leituras, consultas e armazenamento de objetos. Por exemplo, o painel de armazenamento de objetos mostra as operações que ocorreram desde que criamos o Mimir.


Configurar uma regra de gravação

As regras de registro são um mecanismo que pré-computa expressões frequentemente necessárias ou computacionalmente dispendiosas e salva o resultado como um novo conjunto de séries temporais. Siga estas instruções para configurar uma regra de gravação no Mimir usando o Grafana.


Esta regra de gravação sum:up exibirá o número de instâncias Mimir que estão ativas e acessíveis para serem raspadas. Uma vez criada a regra, ela estará disponível para consulta e inclusão em painéis.


Abra o menu Alerta na barra de ferramentas à esquerda e clique em “Nova regra de alerta”:



Digite o seguinte para configurar a regra de gravação:


  1. Escolha Mimir or Loki recording rule
  2. Configure o seguinte:
  3. Nome da regra = sum:up
  4. Escolha Mimir no campo Selecionar fonte de dados
  5. Namespace = example-namespace
  6. Grupo = example-group
  7. Expressão de consulta = sum(up)
  8. Escolha Salvar e sair no canto superior direito.


Para verificar se sua nova regra de gravação é executada corretamente, abra Explorar no menu à esquerda:



No menu suspenso Métrica, escolha sum:up , clique em Executar consulta no canto superior direito e clique no botão Inspetor. Abaixo, clique em Dados para ver uma lista de horários e resultados da consulta. O resultado deve ser “3”, indicando que as três instâncias locais do Mimir estão operacionais.


Configurar uma regra de alerta

As regras de alerta criadas no Mimir seguem o mesmo formato PromQL das criadas no Prometheus e no Loki. O Grafana avalia a expressão e, se necessário, dispara um alerta usando o Alertmanager. Nós nos aprofundamos nisso em uma postagem de blog anterior, Monitoramento e alerta de várias nuvens com Prometheus e Grafana .


Vamos criar um alerta que dispara quando o número de instâncias Mimir cai para menos de três.


No menu à esquerda, passe o mouse sobre Alerta e clique em Nova regra de alerta.



  1. Escolha Mimir or Loki alert
  2. Configure o seguinte:
  3. Nome da regra = MimirNotRunning
  4. Escolha Mimir no campo Selecionar fonte de dados
  5. Namespace = example-namespace
  6. Grupo = example-group
  7. Expressão de Consulta = up == 0
  8. Escolha Salvar e sair no canto superior direito.


Navegue até a página Alerta e você verá nossa regra de gravação Mimir e regra de alerta. Observe que há um belo, grande e reconfortante status Normal verde mostrado ao lado do alerta porque todos os nossos contêineres Mimir ainda estão em execução.



Simularemos uma condição de erro encerrando uma das três instâncias do Mimir (certifique-se de estar no diretório ~/mimir/docs/sources/tutorials/play-with-grafana-mimir :

 docker compose kill mimir-3


Como encerramos abruptamente uma instância do Mimir, haverá um breve período em que o Grafana mostrará um erro ao consultar as regras. Isso será resolvido automaticamente assim que as verificações internas de integridade do Mimir detectarem que a instância encerrada não está íntegra.


Em cerca de um minuto, o alerta indicará em breve um estado Pendente amarelo.


Após mais um minuto, o alerta mudará para o estado de disparo vermelho:


Se tivéssemos configurado o Alertmanager com canais de notificação, os alertas seriam disparados para o mecanismo e contato apropriados. Consulte Monitoramento e alerta de várias nuvens com Prometheus e Grafana para obter instruções.


Antes de trazermos nossa instância Mimir encerrada de volta, retorne à página Explorar no Grafana e consulte nossa regra de gravação sum:up . Podemos ver que o Mimir continuou a registrar métricas mesmo que uma instância do Mimir estivesse inativa.



Finalmente, traga a instância Mimir de volta:

 docker compose start mimir-3


Retorne à página Alerta e observe que nosso status de alerta está de volta ao Normal.

Conclusão

Neste tutorial, você aprendeu como executar Grafana Mimir e MinIO em uma configuração de alta disponibilidade. Consumimos as métricas do Prometheus do próprio Mimir, depois as consultamos e visualizamos no Grafana. Também configuramos uma regra de gravação e um alerta e verificamos se o alerta disparou conforme o esperado quando a condição foi atendida.


Você também pode configurar o Mimir e o Grafana para extrair as métricas do Prometheus do MinIO e disparar alertas por meio do AlertManager. O Mimir armazena dados em armazenamento de objeto para persistência, permitindo que ele aproveite o MinIO onipresente, econômico e de alta durabilidade.


Experimente o Grafana Mimir! Se você tiver dúvidas, entre em nosso canal Slack ou envie-nos um e-mail para [email protected].


Publicado também aqui .