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
- Abra o portal Magalu Cloud em https://portal.magalu.cloud;
- No painel inicial, escolha a opção database;
- Verifique se o banco de dados MySQL está acessível e em funcionamento;
- Copie o IP privado do banco de dados.
Passo 2: Configuração da Virtual Machine (VM)
- 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;
- Verifique se a VM tem permissão para se comunicar com o banco de dados MySQL através de seu IP privado;
- 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
- Adicionar o repositório do Prometheus
sudo apt update
sudo apt install -y prometheus
- 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
- Verifique se o Prometheus está instalado e em execução na mesma rede que a VM.
- 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
- 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
- Iniciar o Grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
- 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
- Certifique-se de que o Grafana está instalado e em execução.
- Acesse o painel de administração do Grafana via navegador.
- 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
- Crie um novo dashboard no Grafana.
- Adicione um novo painel.
- Selecione Prometheus como a fonte de dados.
- Escreva Queries PromQL para recuperar as métricas desejadas do banco de dados MySQL.
- Personalize o painel conforme necessário, adicionando gráficos, tabelas ou outros elementos visuais.
- Salve o dashboard para acessá-lo posteriormente.
Passo 8: Importação de Dashboard no Grafana
- Acesse o Grafana e faça login no painel de administração.
- No menu lateral esquerdo, clique em "Dashboard" para criar um novo dashboard.
- No canto superior direito, clique em "New" e selecione "Import".
- 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.
- Digite o ID do dashboard no campo correspondente e clique em "Load".
- O Grafana irá carregar o modelo do dashboard e exibirá uma prévia do mesmo. Revise as configurações e clique em "Import".
- 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.
- 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.
- 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.