Cette rubrique explique comment surveiller une base de données MySQL à l'aide de Managed Service for Prometheus.
Prérequis
Assurez-vous de disposer des informations de connexion de votre instance MySQL, notamment l'adresse, le port, le nom d'utilisateur et le mot de passe.
Activer la surveillance MySQL
Connectez-vous à la console ARMS.
Dans le volet de navigation de gauche, cliquez sur Access Center.
Sur la page Access Center, dans la section Database, cliquez sur MySQL.
-
Dans le panneau MySQL, configurez l'intégration sous l'onglet Start Integration et cliquez sur OK.
Paramètre
Description
Select the environment type.
Sélectionnez l'un des types d'environnement suivants :
-
Environnement Kubernetes
-
ECS (VPC)
-
Services cloud
Sélectionner un cluster
Sélectionnez le cluster cible.
Select ECS (VPC)
Sélectionnez l'instance ECS cible.
Select Region for Storage
Si vous définissez Select the environment type. sur Services cloud, vous devez sélectionner une région pour le stockage des données.
MySQL address
L'adresse de connexion de l'instance MySQL.
RemarqueManaged Service for Prometheus prend en charge les instances MySQL déployées dans Container Service for Kubernetes (ACK), ECS ou ApsaraDB RDS.
MySQL service port
Le numéro de port de l'instance MySQL. Exemple : 3306.
MySQL username et MySQL Password
Le nom d'utilisateur et le mot de passe du compte MySQL.
ImportantPour éviter les fuites de données et autres risques de sécurité, nous vous recommandons de ne pas utiliser un compte administrateur. Créez plutôt un compte MySQL dédié pour mysqld_exporter et accordez-lui uniquement les autorisations minimales requises. Pour plus d'informations, consultez Créer un utilisateur MySQL pour Managed Service for Prometheus.
-
Configurer les alertes pour MySQL
Connectez-vous à la console ARMS.
Dans le volet de navigation de gauche, choisissez .
Connectez-vous à la console Cloud Monitor.
Dans le volet de navigation de gauche, choisissez pour afficher la liste des instances de Managed Service for Prometheus.
En haut de la page, sélectionnez la région cible, puis cliquez sur le nom du cluster cible.
-
Dans le volet de navigation de gauche, cliquez sur Alert Rules pour afficher les règles d'alerte Prometheus pour MySQL.
Managed Service for Prometheus fournit plusieurs règles d'alerte Prometheus par défaut pour les métriques MySQL clés. Vous pouvez également ajouter de nouvelles règles d'alerte en fonction de vos besoins métier. Pour plus d'informations, consultez Créer une règle d'alerte Prometheus.
RemarquePour plus d'informations sur les métriques MySQL clés, consultez la section Métriques clés ci-dessous.
Pour obtenir des détails sur les règles d'alerte prédéfinies que Managed Service for Prometheus fournit pour les métriques MySQL clés, consultez la section Construire un système de métriques et d'alertes ci-dessous.
Afficher le tableau de bord MySQL
Le tableau de bord de surveillance affiche les métriques relatives à la disponibilité, aux requêtes de base de données, au trafic réseau, aux connexions et à la mémoire. Procédez comme suit :
Connectez-vous à la console ARMS.
Connectez-vous à la console Cloud Monitor.
Dans le volet de navigation de gauche, cliquez sur Data Import Management.
-
Sur la page Data Import Management, cliquez sur l'onglet Integrated Environments. Sélectionnez l'environnement cible et cliquez sur son nom dans la liste pour ouvrir sa page de détails.
L'onglet Integrated Environments comprend trois catégories : Kubernetes Environment, ECS Environment et Cloud Service Region Environment. Sélectionnez la catégorie appropriée.
Sous l'onglet Component Management, dans la section Addon Type, cliquez sur MySQL, puis sur Dashboards pour afficher tous les noms des tableaux de bord.
-
Cliquez sur un nom de tableau de bord pour afficher le tableau de bord Grafana correspondant.
Disponibilité, QPS et connexions à la base de données.

Requêtes de base de données.

Trafic réseau et utilisation de la mémoire.

Données de surveillance des fichiers.

Métriques clés
|
Type |
Métrique |
Description |
|
Disponibilité |
mysql_up |
Indique si l'instance MySQL est opérationnelle. Une valeur de 1 signifie que l'instance est disponible, tandis qu'une valeur de 0 indique qu'elle est hors ligne. |
|
mysql_global_status_uptime |
La durée de fonctionnement de l'instance de base de données. Vous pouvez utiliser cette métrique pour créer une alerte qui se déclenche si une instance fonctionne depuis moins de 30 minutes, ce qui peut indiquer un redémarrage récent. |
|
|
Connexion à la base de données |
mysql_global_status_connection_errors_total |
Les erreurs de connexion constituent l'un des principaux types d'erreurs de base de données. Cette métrique vous permet d'afficher les détails concernant des erreurs de connexion spécifiques et leur fréquence. |
|
mysql_global_status_threads_connected |
Le nombre de connexions actuellement ouvertes vers l'instance MySQL. |
|
|
mysql_global_status_threads_running |
Le nombre de threads traitant activement des requêtes. |
|
|
mysql_global_status_max_used_connections |
Le nombre maximal de connexions utilisées simultanément depuis le démarrage du serveur. |
|
|
mysql_global_variables_max_connections |
Le nombre maximal de connexions client simultanées autorisées. Les nouvelles demandes de connexion sont refusées si cette limite est atteinte. |
|
|
mysql_global_status_aborted_connects |
Le nombre de tentatives de connexion échouées au serveur MySQL. |
|
|
mysql_global_status_aborted_clients |
Le nombre de connexions fermées parce que le client s'est arrêté sans fermer correctement la connexion. |
|
|
Requête |
mysql_global_status_slow_queries |
Le nombre de requêtes ayant pris plus de |
|
mysql_global_status_queries |
Le nombre total d'instructions exécutées par le serveur. Cela peut être utilisé pour calculer le nombre de requêtes par seconde (QPS). |
|
|
Trafic réseau |
mysql_global_status_bytes_received |
Trafic réseau entrant en octets. |
|
mysql_global_status_bytes_sent |
Trafic réseau sortant en octets. |
|
|
Fichier |
mysql_global_status_opened_files |
Le nombre total de fichiers qui ont été ouverts. |
|
mysql_global_status_open_files |
Le nombre de fichiers actuellement ouverts. |
|
|
mysql_global_variables_open_files_limit |
Le nombre maximal de descripteurs de fichiers disponibles pour le serveur MySQL. |
|
|
mysql_global_status_innodb_num_open_files |
Le nombre de fichiers actuellement maintenus ouverts par le moteur de stockage InnoDB. |
Construire un système de métriques et d'alertes
La mise en place d'un système Prometheus autonome pour la surveillance de MySQL est un processus complexe. Ce processus nécessite le déploiement d'un exportateur, la fourniture des détails de connexion de l'instance MySQL, la configuration de la découverte de services et la création de tableaux de bord. Managed Service for Prometheus simplifie cette tâche en intégrant l'exportateur MySQL avec une configuration en un clic. Il fournit également des tableaux de bord de surveillance et des règles d'alerte prêts à l'emploi via une console visuelle, réduisant considérablement la charge de configuration.
Managed Service for Prometheus inclut des modèles de règles d'alerte prédéfinies pour les métriques MySQL courantes afin de vous aider à construire rapidement un système de surveillance et d'alerte. Les règles prédéfinies suivantes sont disponibles :
-
MySQL Availability : Si la valeur de cette métrique est 0, la base de données ne fonctionne pas correctement. Une valeur de 1 indique un fonctionnement normal. Vous pouvez utiliser
${instance}pour cibler une instance spécifique pour l'alerte.mysql_up{${instance}} != 1 -
MySQL Slow Queries : Cette métrique vous aide à identifier s'il existe des instructions SQL dans la base de données nécessitant une optimisation.
rate(mysql_global_status_slow_queries{${instance}}[5m]) > 0 -
MySQL connection errors : Les erreurs de connexion constituent un type majeur d'erreur de base de données. Avec les règles d'alerte fournies par Managed Service for Prometheus, vous pouvez recevoir des informations d'alerte, telles que le type d'erreur et le nombre de requêtes, lorsqu'une alerte est déclenchée.
rate(mysql_global_status_connection_errors_total{${instance}}[5m]) > 0 -
MySQL Connection Usage : Une utilisation élevée des connexions peut provoquer des erreurs de connexion. Cette alerte vous aide à surveiller l'utilisation pour résoudre ces problèmes.
100 * mysql_global_status_threads_connected{${instance}} / mysql_global_variables_max_connections{${instance}} > 90Lorsque le taux d'utilisation atteint un certain seuil, l'instance MySQL commence à rejeter les nouvelles connexions. Vous pouvez résoudre ce problème en augmentant la limite de connexions. Avant d'augmenter la limite de connexions, exécutez l'instruction suivante pour vérifier le nombre de descripteurs de fichiers disponibles.
mysql_global_variables_open_files_limit - mysql_global_variables_innodb_open_files -
MySQL InnoDB Log Wait Time : Surveille le délai d'écriture des journaux. Vous pouvez configurer le seuil d'alerte.
rate(mysql_global_status_innodb_log_waits{${instance}}[5m])