En este tema se describe cómo monitorear una base de datos MySQL mediante Managed Service for Prometheus.
Requisitos previos
Asegúrese de contar con los detalles de conexión de su instancia de MySQL, como la dirección, el puerto, el nombre de usuario y la contraseña.
Habilitación del monitoreo de MySQL
Inicie sesión en la consola de ARMS.
En el panel de navegación izquierdo, haga clic en Access Center.
En la página Access Center, dentro de la sección Database, haga clic en MySQL.
-
En el panel MySQL, configure la integración en la pestaña Start Integration y haga clic en OK.
Parámetro
Descripción
Select the environment type.
Seleccione uno de a continuación tipos de entorno:
-
Kubernetes Environment
-
ECS (VPC)
-
Cloud Services
Select cluster
Seleccione el clúster de destino.
Select ECS (VPC)
Seleccione la instancia de ECS de destino.
Select Region for Storage
Si establece Select the environment type. en Cloud Services, debe seleccionar una región para el almacenamiento de datos.
MySQL address
La dirección de conexión de la instancia de MySQL.
NotaManaged Service for Prometheus es compatible con instancias de MySQL desplegadas en Container Service for Kubernetes (ACK), ECS o ApsaraDB RDS.
MySQL service port
El número de puerto de la instancia de MySQL. Ejemplo: 3306.
MySQL username y MySQL Password
El nombre de usuario y la contraseña de la cuenta de MySQL.
ImportantePara evitar filtraciones de datos y otros riesgos de seguridad, se recomienda no utilizar una cuenta de administrador. En su lugar, cree una cuenta de MySQL exclusiva para mysqld_exporter y otórguele únicamente los permisos mínimos obligatorios. Para obtener más información, consulte Create a MySQL user for Managed Service for Prometheus.
-
Configuración de alertas para MySQL
Inicie sesión en la consola de ARMS.
En el panel de navegación izquierdo, elija .
Inicie sesión en la consola de Cloud Monitor.
En el panel de navegación izquierdo, elija para abrir la lista de instancias de Managed Service for Prometheus.
En la parte superior de la página, seleccione la región de destino y luego haga clic en el nombre del clúster correspondiente.
-
En el panel de navegación izquierdo, haga clic en Alert Rules para consultar las reglas de alerta de Prometheus para MySQL.
Managed Service for Prometheus proporciona varias reglas de alerta predeterminadas de Prometheus para las métricas clave de MySQL. También puede agregar nuevas reglas de alerta según sus necesidades de negocio. Para obtener más información, consulte Create a Prometheus alert rule.
NotaPara obtener más información sobre las métricas clave de MySQL, consulte la sección Key metrics a continuación.
Para conocer los detalles de las reglas de alerta preconfiguradas que Managed Service for Prometheus ofrece para las métricas clave de MySQL, consulte la sección Build a metric and alerting system a continuación.
Consulta del panel de MySQL
El panel de monitoreo muestra métricas de disponibilidad, consultas a la base de datos, tráfico de red, conexiones y memoria. Siga estos pasos:
Inicie sesión en la consola de ARMS.
Inicie sesión en la consola de Cloud Monitor.
En el panel de navegación izquierdo, haga clic en Data Import Management.
-
En la página Data Import Management, haga clic en la pestaña Integrated Environments. Seleccione el entorno de destino y haga clic en su nombre dentro de la lista para abrir la página de detalles.
La pestaña Integrated Environments incluye tres categorías: Kubernetes Environment, ECS Environment y Cloud Service Region Environment. Seleccione la categoría adecuada.
En la pestaña Component Management, dentro de la sección Addon Type, haga clic en MySQL y luego en Dashboards para consultar todos los nombres de los paneles.
-
Haga clic en el nombre de un panel para consultar el panel de Grafana correspondiente.
Disponibilidad, QPS y conexiones a la base de datos.

Consultas a la base de datos.

Tráfico de red y uso de memoria.

Datos de monitoreo de archivos.

Métricas clave
|
Tipo |
Métrica |
Descripción |
|
Disponibilidad |
mysql_up |
Indica si la instancia de MySQL está activa y ejecutándose. Un valor de 1 significa que la instancia está disponible, mientras que un valor de 0 indica que está inactiva. |
|
mysql_global_status_uptime |
El tiempo de actividad de la instancia de base de datos. Esta métrica sirve para crear una alerta que se active si una instancia lleva menos de 30 minutos ejecutándose, lo cual podría indicar un reinicio reciente. |
|
|
Conexión a la base de datos |
mysql_global_status_connection_errors_total |
Los errores de conexión son uno de los principales tipos de errores en bases de datos. Esta métrica le permite consultar los detalles de errores de conexión específicos y su frecuencia. |
|
mysql_global_status_threads_connected |
El número de conexiones abiertas actualmente hacia la instancia de MySQL. |
|
|
mysql_global_status_threads_running |
El número de subprocesos que procesan solicitudes activamente. |
|
|
mysql_global_status_max_used_connections |
El pico máximo de conexiones utilizadas de forma simultánea desde que se inició el servidor. |
|
|
mysql_global_variables_max_connections |
El número máximo permitido de conexiones simultáneas de clientes. Las nuevas solicitudes de conexión se rechazan si se alcanza este límite. |
|
|
mysql_global_status_aborted_connects |
El número de intentos de conexión con errores hacia el servidor de MySQL. |
|
|
mysql_global_status_aborted_clients |
El número de conexiones cerradas porque el cliente dejó de responder sin cerrar la conexión correctamente. |
|
|
Consulta |
mysql_global_status_slow_queries |
El número de consultas que tardaron más de |
|
mysql_global_status_queries |
El número total de instrucciones ejecutadas por el servidor. Sirve para calcular las consultas por segundo (QPS). |
|
|
Tráfico de red |
mysql_global_status_bytes_received |
Tráfico de red entrante en bytes. |
|
mysql_global_status_bytes_sent |
Tráfico de red saliente en bytes. |
|
|
Archivo |
mysql_global_status_opened_files |
El número total de archivos que se han abierto. |
|
mysql_global_status_open_files |
El número de archivos abiertos actualmente. |
|
|
mysql_global_variables_open_files_limit |
El número máximo de descriptores de archivo disponibles para el servidor de MySQL. |
|
|
mysql_global_status_innodb_num_open_files |
El número de archivos que el motor de almacenamiento InnoDB mantiene abiertos actualmente. |
Construcción de un sistema de métricas y alertas
Configurar un sistema de Prometheus autogestionado para monitorear MySQL es un proceso complejo. Requiere desplegar un exporter, proporcionar los detalles de conexión de la instancia de MySQL, configurar el descubrimiento de servicios y construir paneles. Managed Service for Prometheus simplifica este proceso al integrar el exporter de MySQL con una configuración de un solo clic. Además, ofrece paneles de monitoreo y reglas de alerta listos para usarse mediante una consola visual, lo que reduce significativamente la carga de trabajo de configuración.
Managed Service for Prometheus incluye plantillas de reglas de alerta preconfiguradas para las métricas comunes de MySQL, lo que le ayuda a construir rápidamente un sistema de monitoreo y alertas. Están disponibles a continuación reglas preconfiguradas:
-
MySQL Availability: Si el valor de esta métrica es 0, la base de datos no se ejecuta correctamente. Un valor de 1 indica un funcionamiento normal. Puede usar
${instance}para dirigir la alerta a una instancia específica.mysql_up{${instance}} != 1 -
MySQL Slow Queries: Esta métrica le ayuda a identificar si existen instrucciones SQL en la base de datos que requieran optimización.
rate(mysql_global_status_slow_queries{${instance}}[5m]) > 0 -
MySQL connection errors: Los errores de conexión representan uno de los principales tipos de errores en bases de datos. Con las reglas de alerta que proporciona Managed Service for Prometheus, puede recibir información de alerta cuando se active una, como el tipo de error y el número de consultas.
rate(mysql_global_status_connection_errors_total{${instance}}[5m]) > 0 -
MySQL Connection Usage: Un uso elevado de conexiones puede provocar errores de conexión. Esta alerta le ayuda a monitorear dicho uso para solucionar estos problemas.
100 * mysql_global_status_threads_connected{${instance}} / mysql_global_variables_max_connections{${instance}} > 90Cuando la tasa de uso alcanza cierto umbral, la instancia de MySQL comienza a rechazar nuevas conexiones. Este problema se resuelve al aumentar el límite de conexiones. Antes de hacerlo, ejecute la siguiente instrucción para comprobar el número de descriptores de archivo disponibles.
mysql_global_variables_open_files_limit - mysql_global_variables_innodb_open_files -
MySQL InnoDB Log Wait Time: Monitorea el retraso en las escrituras de registros. Es posible configurar el umbral de la alerta.
rate(mysql_global_status_innodb_log_waits{${instance}}[5m])