Este tópico descreve como monitorar um banco de dados MySQL usando o Managed Service for Prometheus.
Pré-requisitos
Certifique-se de ter os detalhes de conexão da instância MySQL, incluindo endereço, porta, nome de usuário e senha.
Ative o monitoramento do MySQL
Faça login no console do ARMS.
No painel de navegação à esquerda, clique em Access Center.
Na página Access Center, na seção Database, clique em MySQL.
-
No painel MySQL, configure a integração na aba Start Integration e clique em OK.
Parâmetro
Descrição
Select the environment type.
Escolha um dos seguintes tipos de ambiente:
-
Kubernetes Environment
-
ECS (VPC)
-
Cloud Services
Select cluster
Selecione o cluster de destino.
Select ECS (VPC)
Selecione a instância ECS de destino.
Select Region for Storage
Se você definir Select the environment type. como Cloud Services, selecione uma região para armazenamento de dados.
MySQL address
Endereço de conexão da instância MySQL.
NotaO Managed Service for Prometheus oferece suporte a instâncias MySQL implantadas no Container Service for Kubernetes (ACK), ECS ou ApsaraDB RDS.
MySQL service port
Número da porta da instância MySQL. Exemplo: 3306.
MySQL username e MySQL Password
Nome de usuário e senha da conta MySQL.
ImportantePara evitar vazamento de dados e outros riscos de segurança, não use uma conta de administrador. Em vez disso, crie uma conta MySQL dedicada para o mysqld_exporter e conceda apenas as permissões mínimas necessárias. Para mais informações, consulte Create a MySQL user for Managed Service for Prometheus.
-
Configure alertas para o MySQL
Faça login no console do ARMS.
No painel de navegação à esquerda, escolha .
Faça login no console do Cloud Monitor.
No painel de navegação à esquerda, escolha para abrir a lista de instâncias do Managed Service for Prometheus.
No topo da página, selecione a região de destino e clique no nome do cluster desejado.
-
No painel de navegação à esquerda, clique em Alert Rules para visualizar as regras de alerta do Prometheus para MySQL.
O Managed Service for Prometheus oferece várias regras de alerta padrão do Prometheus para métricas essenciais do MySQL. Adicione novas regras de alerta conforme suas necessidades de negócio. Para mais informações, consulte Create a Prometheus alert rule.
NotaPara mais informações sobre as principais métricas do MySQL, consulte a seção Key metrics abaixo.
Para obter detalhes sobre as regras de alerta predefinidas fornecidas pelo Managed Service for Prometheus para métricas-chave do MySQL, consulte a seção Build a metric and alerting system abaixo.
Visualize o painel do MySQL
O painel de monitoramento exibe métricas de disponibilidade, consultas ao banco de dados, tráfego de rede, conexões e memória. Siga estas etapas:
Faça login no console do ARMS.
Faça login no console do Cloud Monitor.
No painel de navegação à esquerda, clique em Data Import Management.
-
Na página Data Import Management, clique na aba Integrated Environments. Selecione o ambiente de destino e clique no respectivo nome na lista para abrir a página de detalhes.
A aba Integrated Environments inclui três categorias: Kubernetes Environment, ECS Environment e Cloud Service Region Environment. Escolha a categoria apropriada.
Na aba Component Management, na seção Addon Type, clique em MySQL e, em seguida, clique em Dashboards para visualizar todos os nomes dos painéis.
-
Clique no nome de um painel para visualizar o painel correspondente no Grafana.
Disponibilidade, QPS e conexões ao banco de dados.

Consultas ao banco de dados.

Tráfego de rede e uso de memória.

Dados de monitoramento de arquivos.

Métricas principais
|
Tipo |
Métrica |
Descrição |
|
Disponibilidade |
mysql_up |
Indica se a instância MySQL está ativa e em execução. O valor 1 significa que a instância está disponível; 0 indica que está inativa. |
|
mysql_global_status_uptime |
Tempo de atividade da instância de banco de dados. Use esta métrica para criar um alerta disparado caso a instância esteja em execução há menos de 30 minutos, o que pode indicar uma reinicialização recente. |
|
|
Conexão ao banco de dados |
mysql_global_status_connection_errors_total |
Erros de conexão representam um dos principais tipos de falhas em bancos de dados. Esta métrica permite visualizar detalhes sobre erros específicos e sua frequência. |
|
mysql_global_status_threads_connected |
Quantidade de conexões atualmente abertas com a instância MySQL. |
|
|
mysql_global_status_threads_running |
Número de threads processando solicitações ativamente. |
|
|
mysql_global_status_max_used_connections |
Pico de conexões utilizadas simultaneamente desde a inicialização do servidor. |
|
|
mysql_global_variables_max_connections |
Limite máximo de conexões simultâneas de clientes permitidas. Novas solicitações de conexão são recusadas ao atingir esse limite. |
|
|
mysql_global_status_aborted_connects |
Total de tentativas de conexão falhas com o servidor MySQL. |
|
|
mysql_global_status_aborted_clients |
Quantidade de conexões encerradas porque o cliente parou de responder sem fechar a conexão adequadamente. |
|
|
Consulta |
mysql_global_status_slow_queries |
Número de consultas que excederam |
|
mysql_global_status_queries |
Total de instruções executadas pelo servidor. Utilize este valor para calcular consultas por segundo (QPS). |
|
|
Tráfego de rede |
mysql_global_status_bytes_received |
Tráfego de entrada na rede, em bytes. |
|
mysql_global_status_bytes_sent |
Tráfego de saída na rede, em bytes. |
|
|
Arquivo |
mysql_global_status_opened_files |
Total acumulado de arquivos abertos. |
|
mysql_global_status_open_files |
Quantidade de arquivos abertos no momento. |
|
|
mysql_global_variables_open_files_limit |
Número máximo de descritores de arquivo disponíveis para o servidor MySQL. |
|
|
mysql_global_status_innodb_num_open_files |
Quantidade de arquivos mantidos abertos atualmente pelo mecanismo de armazenamento InnoDB. |
Construa um sistema de métricas e alertas
Configurar um sistema Prometheus autogerenciado para monitoramento do MySQL é um processo complexo. Essa tarefa exige implantar um exporter, fornecer detalhes de conexão da instância MySQL, configurar a descoberta de serviços e construir painéis. O Managed Service for Prometheus simplifica esse fluxo ao integrar o exporter do MySQL com configuração em um clique. Ele também fornece painéis de monitoramento e regras de alerta prontos para uso por meio de um console visual, reduzindo significativamente a carga de trabalho de configuração.
O Managed Service for Prometheus inclui modelos de regras de alerta predefinidos para métricas comuns do MySQL, ajudando você a construir rapidamente um sistema de monitoramento e alertas. As seguintes regras predefinidas estão disponíveis:
-
MySQL Availability: Se o valor desta métrica for 0, o banco de dados não está funcionando corretamente. O valor 1 indica operação normal. Utilize
${instance}para direcionar o alerta a uma instância específica.mysql_up{${instance}} != 1 -
MySQL Slow Queries: Esta métrica ajuda a identificar se existem instruções SQL no banco de dados que precisam de otimização.
rate(mysql_global_status_slow_queries{${instance}}[5m]) > 0 -
MySQL connection errors: Erros de conexão são um tipo crítico de falha em banco de dados. Com as regras de alerta fornecidas pelo Managed Service for Prometheus, você recebe informações detalhadas, como o tipo de erro e a quantidade de consultas, quando um alerta é disparado.
rate(mysql_global_status_connection_errors_total{${instance}}[5m]) > 0 -
MySQL Connection Usage: Alto uso de conexões pode causar erros de conexão. Este alerta auxilia no monitoramento do uso para solucionar esses problemas.
100 * mysql_global_status_threads_connected{${instance}} / mysql_global_variables_max_connections{${instance}} > 90Quando a taxa de uso atinge determinado limiar, a instância MySQL começa a rejeitar novas conexões. Resolva isso aumentando o limite de conexões. Antes de aumentar o limite, execute a seguinte instrução para verificar o número de descritores de arquivo disponíveis.
mysql_global_variables_open_files_limit - mysql_global_variables_innodb_open_files -
MySQL InnoDB Log Wait Time: Monitora o atraso nas gravações de log. Configure o limiar de alerta conforme necessário.
rate(mysql_global_status_innodb_log_waits{${instance}}[5m])