Mysql
 sql >> Base de données >  >> RDS >> Mysql

Surveillance de vos bases de données avec MySQL Enterprise Monitor

Comment surveiller les bases de données MySQL ?

La visibilité opérationnelle est indispensable dans tout environnement de production. Il est crucial d'être en mesure d'identifier tout problème dès que possible, sinon vous risquez de vous retrouver dans de graves problèmes car un problème non détecté peut entraîner de graves interruptions de service ou des temps d'arrêt. MySQL Enterprise Monitor est l'un des plus anciens produits de surveillance pour MySQL sur le marché et est disponible dans le cadre d'un contrat d'abonnement d'entreprise commerciale d'Oracle. Dans cet article de blog, nous examinerons MySQL Enterprise Monitor et le type d'informations qu'il fournit. dans MySQL.

Installation

Tout d'abord, MySQL Enterprise Monitor fait partie de MySQL Enterprise Edition, une offre commerciale d'Oracle. Il est disponible en plusieurs versions de packages, pour différents systèmes d'exploitation. L'installation sur Windows 10 (le système sur lequel nous avons testé) est assez simple. MySQL Enterprise Monitor est configuré et certains services groupés seront installés (MySQL, Tomcat). L'outil est accessible via le navigateur.

Configuration initiale

Tout d'abord, vous devez ajouter les hôtes que vous souhaitez surveiller.

Vous pouvez ajouter des hôtes uniques ou un lot d'entre eux. La fenêtre de dialogue a le même aspect, sauf que lors d'un ajout groupé, vous pouvez transmettre une liste de serveurs séparés par des virgules.

Nous n'entrerons pas dans les détails, mais en bref, vous devez définir à partir de quel hôte les instances MySQL doivent être surveillées - généralement, ce sera l'hôte sur lequel vous avez installé MySQL Enterprise Monitor. Vous pouvez également configurer des agents sur vos instances MySQL, dans ce cas, ils pourront également collecter des données pour l'hôte, pas seulement des métriques MySQL. Ensuite, vous devez définir comment accéder à l'instance surveillée (adresse IP/nom d'hôte, utilisateur et mot de passe). MySQL Enterprise Monitor créera ensuite des utilisateurs supplémentaires pour des tâches telles que la surveillance, qui ne nécessitent pas de privilèges de superutilisateur. Si vous le souhaitez, vous pouvez également configurer la communication SSL si c'est ce que l'instance MySQL utilise, vous pouvez également définir des délais d'attente et si une topologie de réplication doit être détectée automatiquement ou non.

Il est également important de garder à l'esprit que MySQL Enterprise Monitor s'appuie fortement sur Performance Schema - assurez-vous que PS est activé pour vos bases de données, sinon vous ne bénéficierez pas d'une partie importante des fonctionnalités de MySQL Enterprise Monitor.

Surveillance

Une fois les instances MySQL surveillées configurées, vous pouvez commencer à consulter les données collectées. La section Présentation vous donne un bref résumé de certaines des métriques les plus importantes de MySQL. Les données sont agrégées et il est plus facile de trouver des modèles inattendus, puis d'approfondir ce qui s'est passé.

L'onglet Événements donne un aperçu des différents problèmes ou événements signalés par MySQL Enterprise Monitor et ses conseillers. Vous pouvez cliquer sur n'importe quel événement et lire de quoi il s'agit, ainsi que les étapes recommandées :

Dans ce cas particulier, il semble que certaines requêtes effectuent des analyses de table complètes et il est recommandé d'enquêter davantage pour identifier ces requêtes et voir si elles peuvent être optimisées.

Autre exemple, ici on voit que le cache de table n'est pas configuré de manière optimale. Vous pouvez voir l'explication du problème, des conseils et des actions recommandées à prendre en fonction de cette alerte.

Métriques

Dans cet onglet, nous pouvons voir les données de plusieurs métriques MySQL qui sont utiles pour comprendre l'état du système.

Graphiques de séries temporelles

Les captures d'écran ci-dessus ne sont qu'un exemple, il y a beaucoup plus de graphiques à regarder.

Il est possible d'appliquer un filtrage :vous pouvez définir quels graphiques vous souhaitez voir, vous pouvez également définir quelle plage de temps doit être affichée. En plus de cela, vous pouvez simplement marquer une partie du graphique et zoomer dessus ou ouvrir l'Analyseur de requêtes avec les données de ce moment particulier :

Nous reviendrons sur cette fonctionnalité plus tard mais en bref, elle vous permet d'analyser les requêtes, l'évolution de leurs performances dans le temps et quelques exemples de requêtes.

Statistiques du tableau

Cet onglet nous donne un aperçu des statistiques de la table :à quoi ressemblait le trafic (lignes extraites, insérées, mises à jour, supprimées) et à quoi ressemblait la latence pour toutes les opérations de ligne.

Statistiques utilisateur

Dans cet onglet, MySQL Enterprise Monitor présente des données sur les utilisateurs - instructions exécutées, latence, analyses de table, latence d'E/S, connexions, utilisation de la mémoire. Ces données devraient donner un assez bon aperçu de l'utilisateur responsable de la charge sur la base de données. Cela peut être très utile, en particulier dans les environnements multi-utilisateurs, où il n'y a pas de source principale de trafic.

E/S de fichier de base de données

E/S de fichier de base de données explique comment la charge d'E/S est répartie entre les fichiers de la base de données. Nombre total d'opérations d'E/S, latence, nombre de lectures et d'écritures effectuées sur un fichier donné.

Utilisation de la mémoire

L'utilisation de la mémoire affiche les structures de la mémoire dans MySQL, ce qui aide à créer une meilleure image de l'utilisation de la mémoire dans la base de données. Ces données peuvent être utiles en cas de problèmes de mémoire - il est facile de suivre où la croissance est la plus importante et, si nécessaire, de réduire les paramètres pertinents. Cela peut également aider de manière significative à diagnostiquer les fuites de mémoire potentielles.

Groupe de tampons InnoDB

Cet onglet dans MySQL Enterprise Monitor donne à l'utilisateur un aperçu de la structure de l'utilisation du pool de mémoire tampon. Quelles tables sont mises en cache, combien de pages sales y a-t-il à vider ?

Requêtes

Il est extrêmement important pour tout utilisateur de MySQL de comprendre la charge créée par les requêtes. Quelles sont les requêtes les plus problématiques ? Comment se comportent-ils dans le temps ? Les performances peuvent être mesurées de plusieurs façons, mais il est assez courant que les performances prévisibles et stables soient plus importantes que les meilleures performances. Tant que le temps de réponse est acceptable, les utilisateurs préféreront les résultats prévisibles à une réponse un peu plus rapide (faible latence), qui peut parfois ralentir considérablement le serveur. C'est pourquoi il est très utile de voir comment une requête se comporte dans le temps et d'identifier celles dont le comportement n'est pas cohérent.

MySQL Enterprise Monitor fournit définitivement de telles données. Sur la liste des requêtes, vous pouvez facilement voir comment la latence a changé dans le temps. La ligne plate est bonne, les pointes - pas tellement. Cela signifie qu'une telle requête peut devoir être étudiée plus avant. Lorsque vous cliquez dessus, MySQL Enterprise Monitor vous fournira plus de données à ce sujet.

Comme vous pouvez le voir, il existe des données statistiques sur le type de requête particulier, vous pouvez également voir comment la latence a changé dans le temps. En bas, vous pouvez voir quelques exemples d'instructions dans le temps et vous pouvez comparer leur temps d'exécution.

Lorsque vous cliquez sur l'un d'eux, vous verrez une requête complète qui a été exécutée à ce moment-là. Cela peut être utile dans le cas de requêtes où les performances diffèrent en fonction des arguments utilisés dans le cas WHERE (par exemple, WHERE some_column ='some value' et les valeurs de cette colonne ne sont pas réparties uniformément sur les lignes).

Réplication

Dans un environnement de réplication MySQL, le décalage est quelque chose que vous devez apprendre à gérer. Ce qui est important, c'est d'en garder la trace - à quel point les esclaves sont-ils à la traîne ? Combien de fois cela arrive-t-il ? Avec ces informations, il est possible d'essayer d'identifier le problème et de mieux comprendre les requêtes qui en sont la cause. Ensuite, vous pouvez essayer d'implémenter certaines améliorations comme, par exemple, la réplication multithread et suivre si les modifications ont amélioré les performances de réplication et réduit le décalage à un niveau acceptable.

En quoi MySQL Enterprise Monitor est différent de ClusterControl

Comme nous l'avons indiqué, MySQL Enterprise Monitor fait partie de l'édition payante de MySQL Enterprise. Pour tous les utilisateurs de la communauté MySQL, MariaDB ou Percona Server, MySQL Enterprise Edition n'est pas disponible. ClusterControl donne accès au monitoring de MySQL dans sa version communautaire gratuite. En termes de surveillance des serveurs et des requêtes, il existe de nombreuses similitudes.

ClusterControl vous donne accès aux métriques MySQL collectées et stockées dans la base de données de séries temporelles Prometheus. Vous pouvez facilement suivre les nombreuses métriques mises à disposition dans ClusterControl.

ClusterControl est également livré avec une liste de conseillers, qui peuvent être utilisés pour suivre la santé et les performances de la base de données. Vous pouvez également créer facilement de nouveaux conseillers à l'aide de Developer Studio :

Si vous êtes intéressé par les performances des requêtes, ClusterControl vous fournit un moniteur de requêtes :les requêtes exécutées sont collectées et leurs performances sont comparées, ce qui permet à l'utilisateur d'identifier facilement les requêtes qui utilisent le plus le processeur de la base de données.

Vous pouvez voir des données statistiques sur les requêtes - exécutions, lignes envoyées et examinées, temps d'exécution. Vous pouvez également consulter le plan d'exécution pour un type de requête particulier.

Surveillance de la persistance polyglotte

Une grande différence est la possibilité de surveiller toutes les principales variantes de l'écosystème MySQL (Oracle MySQL, MariaDB et Percona Server), les différentes technologies de clustering (NDB Cluster, Group Replication, réplication asynchrone et Galera Cluster), les équilibreurs de charge/proxies (HAProxy, Keepalived, Maxscale, ProxySQL) ainsi que d'autres bases de données open source (PostgreSQL et MongoDB).

Automatisation et gestion

ClusterControl fournit également des fonctionnalités pour déployer des instances uniques ou des clusters sur site ou dans le cloud (AWS, GCE et Azure), ainsi que des fonctionnalités telles que la gestion des sauvegardes, le basculement automatique et la récupération/réparation, les mises à niveau progressives, la gestion des clusters pour la réplication ou les configurations de cluster. , mise à l'échelle, etc.

C'est tout pour aujourd'hui les gens. Si vous avez travaillé avec MySQL Enterprise Monitor et souhaitez ajouter quelque chose, veuillez le faire dans la section des commentaires.