Skip to main content

Monitoramento do Banco de Dados MySQL via Prometheus e Grafana

Este documento tem como objetivo guiar o usuário no processo de acesso e coleta de métricas de um banco de dados MySQL, utilizando Prometheus e Grafana, instalados em máquina virtual da Magalu Cloud. Certifique-se de seguir cada passo com atenção para garantir uma configuração adequada e eficiente.

Para exemplificar, utilizaremos o sistema operacional Ubuntu 22.04, a fim de ilustrar cada um dos passos a seguir.

Requisitos:

  • Acesso a um banco de dados MySQL criado na Magalu Cloud.
  • Acesso a Virtual Machine (VM), criada na mesma região do banco de dados.
  • Prometheus instalado e configurado.
  • Grafana instalado e configurado.

Passo 1: Configuração do Banco de Dados MySQL

  1. Abra o portal Magalu Cloud em https://portal.magalu.cloud;
  2. No painel inicial, escolha a opção database;
  3. Verifique se o banco de dados MySQL está acessível e em funcionamento;
  4. Copie o IP privado do banco de dados.

Passo 2: Configuração da Virtual Machine (VM)

  1. Certifique-se de que a VM que será utilizada para acessar o banco de dados está na mesma região que o servidor do banco de dados;
  2. Verifique se a VM tem permissão para se comunicar com o banco de dados MySQL através de seu IP privado;
  3. Libere as portas TCP/9090 e TCP/3000, na direção Ingress, nas regras dos teus grupos de segurança da VM.

Passo 3: Instalação do Prometheus

  1. Adicionar o repositório do Prometheus
sudo apt update
sudo apt install -y prometheus
  1. Iniciar Prometheus Para iniciar o serviço Prometheus, utilize o seguinte comando:
sudo systemctl start prometheus

Este comando inicializa o Prometheus, mas a inicialização não será persistente após reinicializações do sistema. Para configurar o Prometheus para iniciar automaticamente toda vez que o sistema for reiniciado, utilize o comando:

sudo systemctl enable prometheus

O comando enable cria os links simbólicos necessários para que o serviço Prometheus seja automaticamente iniciado durante o processo de boot do sistema.

Em resumo: sudo systemctl start prometheus: Inicia o serviço Prometheus imediatamente. sudo systemctl enable prometheus: Configura o sistema para iniciar o serviço Prometheus automaticamente em cada boot.

Passo 4: Configuração do Prometheus

  1. Verifique se o Prometheus está instalado e em execução na mesma rede que a VM.
  2. Edite o arquivo de configuração do Prometheus (prometheus.yml) para incluir o banco de dados MySQL como um alvo de scraping. O arquivo de configuração principal do Prometheus é prometheus.yml, localizado geralmente em /etc/prometheus/prometheus.yml.

Você precisará editá-lo para definir suas configurações específicas.

sudo vi /etc/prometheus/prometheus.yml

Adicione as seguintes linhas:

scrape_configs:
- job_name: 'mysql'
static_configs:
- targets: ['IP_privado_do_banco_de_dados:8080/mysql', 'IP_privado_do_banco_de_dados:8080/node']

Substitua IP_privado_do_banco_de_dados pelo endereço IP privado do servidor do banco de dados.

Passo 5: Instalação do Grafana

  1. Adicionar o repositório do Grafana
sudo apt-get install -y apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt-get update
sudo apt-get install grafana
  1. Iniciar o Grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
  1. Acessar o Grafana: Após a instalação, você pode acessar o Grafana através de um navegador da web digitando o endereço IP da sua VM seguido da porta padrão do Grafana, que é 3000 (por exemplo, http://seu_endereco_ip:3000). O nome de usuário e senha padrão são ambos "admin".

Passo 6: Configuração do Grafana

  1. Certifique-se de que o Grafana está instalado e em execução.
  2. Acesse o painel de administração do Grafana via navegador.
  3. Adicione Prometheus como um data source:
  • Vá para "Configuration" > "Data Sources".
  • Clique em "Add data source".
  • Selecione Prometheus.
  • Configure o endereço do servidor Prometheus (http://IP_publico_VM:9090).
  • Clique em "Save & Test" para verificar a conexão.

Substitua "IP_publico_VM" pelo endereço IPV4 público da sua VM.

Passo 7: Criação de Dashboards no Grafana

  1. Crie um novo dashboard no Grafana.
  2. Adicione um novo painel.
  3. Selecione Prometheus como a fonte de dados.
  4. Escreva Queries PromQL para recuperar as métricas desejadas do banco de dados MySQL.
  5. Personalize o painel conforme necessário, adicionando gráficos, tabelas ou outros elementos visuais.
  6. Salve o dashboard para acessá-lo posteriormente.

Passo 8: Importação de Dashboard no Grafana

  1. Acesse o Grafana e faça login no painel de administração.
  2. No menu lateral esquerdo, clique em "Dashboard" para criar um novo dashboard.
  3. No canto superior direito, clique em "New" e selecione "Import".
  4. Será solicitado que você insira o ID do dashboard que deseja importar. Para o Node Exporter Full, o ID sugerido do dashboard é 1860. Para o MySQL Exporter o ID sugerido do dashboard é 14057 ou 20016.
  5. Digite o ID do dashboard no campo correspondente e clique em "Load".
  6. O Grafana irá carregar o modelo do dashboard e exibirá uma prévia do mesmo. Revise as configurações e clique em "Import".
  7. Após a importação ser concluída com sucesso, você será redirecionado para o dashboard recém-importado. Aqui, você poderá visualizar as métricas do Node Exporter,por exemplo, de forma detalhada.
  8. Personalize o dashboard conforme necessário, ajustando os intervalos de tempo, adicionando novos painéis ou fazendo outras modificações de acordo com suas preferências.
  9. Salve o dashboard para acessá-lo posteriormente e utilizar as métricas de maneira conveniente.

Com este passo adicional, você poderá importar o dashboard do Node Exporter Full no Grafana e monitorar as métricas do seu sistema de maneira eficiente e visualmente atraente.

Conclusão

Após seguir esses passos, você deverá ser capaz de criar painéis e dashboards para visualizar, através do Grafana, os dados coletados pelo Prometheus no seu banco de dados MySQL. Certifique-se de manter a configuração atualizada e ajustada conforme necessário para garantir um monitoramento eficaz e contínuo do desempenho do seu banco de dados.