Como otimizar a monitoração de infraestrutura com Prometheus e Grafana

Como otimizar a monitoração de infraestrutura com Prometheus e Grafana

Um dos dos pilares do DevOps é a monitoração contínua de nossa infraestrutura e de nossos serviços. Através do monitoramento, podemos extrair informações importantes sobre a saúde de nossos componentes, visando assim, realizar um atendimento dentro dos SLA’s estabelecidos e ainda ser preditivo com a execução de um capacity planning dos recursos.

Existem ferramentas que nos auxiliam na monitoração, como por exemplo o Prometheus, que coleta métricas dos exporters e também o Grafana, que com base nas informações coletadas pelo Prometheus, pode montar gráficos e dashboards analíticas de fácil entendimento.

Dentro do Grafana, podemos montar painéis com uma arquitetura “Top-Down“, ou seja, podemos criar um painel com métricas e painéis dentro dele. Em outras palavras, podemos ter painéis que são ramificados.

Um exemplo de um dashboard criado com Group Panel:

Como podemos ver, caso algo não esteja de acordo com nossos tresholds os grupos irão ter uma coloração diferente.

Hands On!

Aqui partiremos do ponto em que o Prometheus já está realizando a coleta de métricas e também está configurado como datasource para alimentação do nosso Grafana.

Por essa função se tratar de um plugin, primeiramente iremos fazer a instalação dele através do comando “grafana-cli“. Podemos realizar a instalação rodando o comando da seguinte forma:

grafana-cli plugins install blackmirror1-statusbygroup-panel

Caso você esteja utilizando o grafana como container, será necessário passar a variável GF_INSTALL_PLUGINS passando quais plugins serão carregados dentro do container. Exemplo de execução de um container simples com o plugin carregado:

docker run -d -p 3000:3000 --name=grafana -e "GF_INSTALL_PLUGINS=blackmirror1-statusbygroup-panel" grafana/grafana

Agora que temos o plugin instalado em nosso Grafana, podemos acessar seu Dashboard através do navegador, para criarmos nosso painel.

Clique no botão “Add panel“, dentro do dashboard.

Temos então um novo painel criado, mas ele ainda não mostra muita coisa para gente. Vamos realizar a configuração deste painel.

Criando a query

Através da query vamos dizer quais dados serão monitorados.

Agora vamos clicar em “Add Query“.

Irão aparecer algumas informações que teremos que preencher.

  • (1) Query: Nesta opção, deve ser selecionado Prometheus.
  • (2) Metrics: Aqui deve ser posto qual é a query irá coletar os dados.
  • (3) Legend: Neste campo, deve ser colocado um “alias” único para a query.

No exemplo de coleta de métricas, estamos coletando a utilização de CPU por cada exporter.

Query:

sum by(instance) (rate(process_cpu_seconds_total[5m])) * 100

Após ter preenchido todas as informações, podemos ir na opção “(4) Visualization“.

Ajustando a visualização

Nesta aba, podemos definir questões quanto à visualização de nosso painel. Para iniciar o processo, iremos ajustar o tipo do painel, para isso clique em (1) Visualization, após clicar, poderemos selecionar o tipo do painel que queremos, então vamos clicar em (2) Status By Group Panel.

Agora que temos o painel pré configurado, podemos definir algumas informações sobre ele.

Display Settings

  • (1) Alias: Lembram do alias único que definimos no passo anterior? Este campo será preenchido com ele.

Threshold

Dentro dessa sessão, iremos definir a partir de qual momento o painel irá ter sua cor alterada, ou seja, irá alarmar.

  • (2) Warning: A partir de quantos porcento o painel irá alterar para a cor de aviso.
  • (3) Critical: A partir de quantos porcento o painel irá alterar para a cor de alerta crítico.

Após ter preenchido tudo, podemos ir para a aba (4) General para definir um nome ao painel.

Dando nome ao painel

Dentro dessa aba, podemos definir um título e também uma descrição para o painel.

General

  • Title: Neste campo iremos dar o nome ao painel.

Após ter dado o nome, podemos clicar para (2) Voltar para uma visualização completa do nosso dashboard.

E então teremos nosso painel agrupando as métricas de acordo com o que foi configurado!

Após ter realizado todo esse processo, não se esqueça de salvar as alterações feitas no Dashboard, para isso, basta clicar no “Disquete“.

Por hoje é só pessoal! Nos vemos no próximo post!

E não se esqueçam, bebam água!

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Entenda o funcionamento do pseudo filesystem /proc no Linux
Próxima Entenda os Microsserviços: A Revolução no Desenvolvimento de Softwares

About author

Vinicius Felix
Vinicius Felix 5 posts

Vinicius Felix da Silva, atua como Analista de Infraestrutura, é entusiasta em tecnologias de software livre e é formado em Redes de Computadores pelo SENAC. Possui a certificação LPI 1.

View all posts by this author →

Você pode gostar também

Infraestrutura TI

Guia completo: Implantação de MongoDB resiliente no Google Kubernetes Engine

Este guia aborda a implantação de um MongoDB resiliente no GKE, incluindo etapas para configurar um StatefulSet, serviço headless e inicializar o conjunto réplica. Aprenda a utilizar recursos do GKE

Cloud

Criando e atualizando um cluster Kubernetes com kubeadm

Introdução Este post faz parte de uma série sobre a certificação CKA – Certified Kubernetes Administrator [1]. Dentre os tópicos que possuem mais peso na certificação, o item Cluster Architeture,

Infraestrutura TI

Guia prático: Como usar o Terraform para gerenciar sua infraestrutura na nuvem

Terraform é uma ferramenta de código aberto comumente utilizada para construir, alterar e versionar uma infraestrutura de forma segura e eficiente, através de uma linguagem declarativa. A ferramenta é escrita