Pesquisa de site

Monitorando droplets MySQL e MariaDB usando o Prometheus MySQL Exporter


Introdução

O monitoramento eficaz dos bancos de dados MySQL e MariaDB é essencial para manter o desempenho ideal, identificar possíveis gargalos e garantir a confiabilidade geral do sistema. Prometheus MySQL Exporter é uma ferramenta robusta que oferece insights detalhados sobre métricas de banco de dados que são cruciais para gerenciamento proativo e solução de problemas.

Neste tutorial, você aprenderá como configurar o Prometheus MySQL Exporter para monitorar bancos de dados MySQL e MariaDB usando configuração manual e automação baseada em script. Esses métodos oferecem flexibilidade para selecionar a melhor estratégia de implantação e abordagem de fluxo de trabalho operacional.

Ao final, você terá um sistema de monitoramento operacional utilizando Prometheus e Grafana para análise de desempenho em tempo real.

Observação: o tempo aproximado de configuração deste tutorial é de cerca de 25 minutos

Pré-requisitos

Antes de começar, certifique-se de ter os seguintes pré-requisitos em vigor:

  • Você precisará ter servidores de banco de dados MySQL ou MariaDB configurados e rodando em um Ubuntu Droplet. Você pode consultar nossos tutoriais sobre Como instalar o MariaDB no Ubuntu e Como instalar o MySQL no Ubuntu. Os servidores que você deseja monitorar devem estar acessíveis na máquina onde você planeja instalar o Prometheus MySQL Exporter.

  • Você precisará de acesso SSH aos Droplets MySQL ou MariaDB Ubuntu para instalar e configurar o Prometheus MySQL Exporter.

  • O Prometheus MySQL Exporter integra-se ao Prometheus para coleta de métricas e ao Grafana para visualização. Aqui, você usará imagens Prometheus e Grafana do DigitalOcean Marketplace para monitorar o banco de dados Droplets.

Método 1 – Configuração Manual

Vamos prosseguir com o método de configuração manual nesta seção.

Adicionar usuário e grupo do sistema Prometheus

Nesta etapa, você configurará os Target Droplets. Vamos criar um usuário e grupo de sistema chamado “prometheus” para gerenciar o serviço de exportação.

sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus

Baixe e instale o exportador Prometheus MySQL

Nesta etapa, você fará download da versão mais recente do Prometheus MySQL Exporter do GitHub, extrairá os arquivos baixados e moverá o binário para o diretório /usr/local/bin/.

curl -s https://api.github.com/repos/prometheus/mysqld_exporter/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf mysqld_exporter*.tar.gz
sudo mv mysqld_exporter-*.linux-amd64/mysqld_exporter /usr/local/bin/
sudo chmod +x /usr/local/bin/mysqld_exporter

Criar usuário do banco de dados do Prometheus Exporter

Faça login no MySQL como root e crie um usuário dedicado para o exportador com os privilégios necessários.

mysql -u root -p

Digite a senha root, se necessário, e você verá o prompt MySQL/MariaDB. Em seguida, execute os seguintes comandos (substitua giveapassword no comando abaixo por uma nova senha para o usuário do banco de dados mysqld_exporter).

Crie um novo usuário MySQL chamado mysqld_exporter com uma senha giveapassword para conexões locais.

CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'giveapassword';

Conceda ao usuário mysqld_exporter permissões para visualizar listas de processos, status de replicação do cliente e consultar dados de todos os bancos de dados.

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost';

Recarregue as tabelas de concessão para aplicar as alterações feitas nas permissões do usuário.

FLUSH PRIVILEGES;

Saia da interface de linha de comando do MySQL.

EXIT

Configurar credenciais de banco de dados

Crie um arquivo de configuração para armazenar as credenciais do exportador MySQL.

sudo vi /etc/.mysqld_exporter.cnf

Adicione as seguintes credenciais de usuário ao arquivo:

[client]
user=mysqld_exporter
password=giveapassword

Defina permissões de propriedade para o arquivo de configuração:

sudo chown root:prometheus /etc/.mysqld_exporter.cnf

Criar arquivo de unidade systemd

Crie um arquivo de unidade de serviço systemd para gerenciar o serviço MySQL Exporter:

sudo vi /etc/systemd/system/mysql_exporter.service

Adicione os seguintes dados ao arquivo:

[Unit]
Description=Prometheus MySQL Exporter
After=network.target
User=prometheus
Group=prometheus

[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/mysqld_exporter \
--config.my-cnf /etc/.mysqld_exporter.cnf \
--collect.global_status \
--collect.info_schema.innodb_metrics \
--collect.auto_increment.columns \
--collect.info_schema.processlist \
--collect.binlog_size \
--collect.info_schema.tablestats \
--collect.global_variables \
--collect.info_schema.query_response_time \
--collect.info_schema.userstats \
--collect.info_schema.tables \
--collect.perf_schema.tablelocks \
--collect.perf_schema.file_events \
--collect.perf_schema.eventswaits \
--collect.perf_schema.indexiowaits \
--collect.perf_schema.tableiowaits \
--collect.slave_status \
--web.listen-address=0.0.0.0:9104

[Install]
WantedBy=multi-user.target

Recarregue o systemd e inicie o MySQL Exporter Service

Recarregue a configuração do systemd e inicie o serviço MySQL Exporter:

sudo systemctl daemon-reload
sudo systemctl enable mysql_exporter
sudo systemctl start mysql_exporter

Configurando o Droplet do Prometheus

Vamos começar fazendo um backup do arquivo prometheus.yml:

cp /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml-$(date +'%d%b%Y-%H:%M')

Agora faça login em seu servidor Prometheus e adicione os endpoints do MySQL Exporter a serem copiados.

Substitua os endereços IP e as portas pelos endpoints do MySQL Exporter (9104 é a porta padrão para o exportador Prometheus MySQLd).

vi /etc/prometheus/prometheus.yml
scrape_configs:
  - job_name: server1_db
    static_configs:
      - targets: ['10.10.1.10:9104']
        labels:
          alias: db1

  - job_name: server2_db
    static_configs:
      - targets: ['10.10.1.11:9104']
        labels:
          alias: db2

Método 2 – Configuração usando scripts

Você também pode conseguir isso executando dois scripts - um para os droplets de destino e outro para o droplet do Prometheus.

Vamos começar configurando os Target Droplets.

Etapa 1: SSH no Droplet de destino.

Etapa 2: baixe o script de configuração de destino usando o seguinte comando:

wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Target_Config.sh

Etapa 3: após o download do script, certifique-se de que ele tenha permissões executáveis executando:

chmod +x DO_MySQL_MariaDB_Target_Config.sh

Etapa 4: execute o script executando:

./DO_MySQL_MariaDB_Target_Config.sh

Etapa 5: insira uma nova senha para o usuário mysql_exporter e, em seguida, insira a senha root do MySQL:

A configuração está completa.

Nota - O script será encerrado nos seguintes casos:

  • Se o mysql_exporter já existir no Droplet de destino

  • Se você digitar a senha mysql errada

Configurando o Droplet Prometheus (Método Script)

Etapa 1: SSH no Droplet do Prometheus.

Etapa 2: baixe o script de configuração do Prometheus usando o seguinte comando:

wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Prometheus_Config.sh

Este script bash automatiza a atualização do arquivo de configuração do Prometheus para adicionar novos endpoints do servidor. Ele começa fazendo backup do arquivo prometheus.yml atual com um nome de arquivo com carimbo de data e hora.

O script então solicita que o usuário especifique o número de servidores a serem adicionados e valida essa entrada.

Para cada servidor, ele solicita um nome de host e um endereço IP, garantindo que cada endereço IP seja exclusivo no arquivo de configuração. As configurações válidas do servidor são anexadas ao arquivo prometheus.yml. Após atualizar a configuração, o script reinicia o serviço Prometheus e verifica seu status para confirmar se as alterações foram aplicadas.

Finalmente, ele aguarda a entrada do usuário antes de sair.

Etapa 3: após o download do script, certifique-se de que ele tenha permissões executáveis executando:

chmod +x DO_MySQL_MariaDB_Prometheus_Config.sh

Etapa 4: execute o script executando:

./DO_MySQL_MariaDB_Prometheus_Config.sh

Etapa 5: insira o número de gotas a serem adicionadas ao monitoramento.

Etapa 6: insira os nomes de host e endereços IP.

Etapa 7: A configuração está concluída.

Etapa 8: Depois de adicionados, verifique se os destinos estão atualizados acessando a URLprometheushostname:9090/targets.

Nota: Se você inserir um endereço IP já adicionado ao monitoramento, será solicitado que você insira os detalhes novamente. Além disso, se você não tiver mais servidores para adicionar, poderá inserir 0 para sair do script.

Configurando o Grafana

Etapa 1: Faça login no painel do Grafana visitando Grafana-IP:3000 em um navegador.

Etapa 2: vá para Configuração > Fontes de dados.

Etapa 3: clique em Adicionar fonte de dados.

Etapa 4: pesquise e selecione Prometheus.

Etapa 5: insira o nome como Prometheus e o URL (Prometheushostname:9090) e clique em Salvar e testar. Se você vir “A fonte de dados está funcionando”, você adicionou a fonte de dados com sucesso. Feito isso, vá em Criar > Importar.

Etapa 6: você pode configurar manualmente o painel ou importar o painel fazendo upload do arquivo JSON. Um modelo JSON para monitoramento MySQL e MariaDB pode ser encontrado no link abaixo:

https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_Grafana-Mysql-MariaDB_Monitoring.json

Etapa 7: Preencha os campos e importe.

Etapa 8: O painel do Grafana está pronto. Selecione o host e verifique se as métricas estão visíveis. Você pode modificar e editar o painel conforme necessário.

Conclusão

Neste tutorial, você aprendeu a automatizar o processo de configuração para implantar o Prometheus MySQL Exporter em seus servidores. Seguindo as etapas, você pode instalar e configurar com eficiência o exportador para coletar métricas do MySQL para monitoramento.

Ao automatizar essas etapas, você pode agilizar o processo de implantação, reduzir o risco de erro humano e garantir uma configuração consistente em vários servidores. Este tutorial é uma solução confiável e eficiente para implantar o Prometheus MySQL Exporter em sua infraestrutura de monitoramento.

Artigos relacionados: