Comment surveiller MySQL ou MariaDB avec Prometheus et Grafana
Sur cette page
- Conditions préalables
- Configurer l'utilisateur MySQL/MariaDB
- Installation de prometheus-mysqld-exporter
- Ajout d'un utilisateur MySQL à prometheus-mysqld-exporter
- Ajout du point de terminaison prometheus-mysqld-exporter à Prometheus
- Configuration du tableau de bord Grafana pour le serveur MySQL
- Conclusion
Pour garantir le bon fonctionnement du serveur MySQL/MariaDB, vous devez mettre en œuvre une surveillance sur votre infrastructure. Cela vous permet d'optimiser les performances, d'identifier les problèmes/goulots d'étranglement et de garantir la bonne santé de votre base de données. Avec Prometheus et Grafana, vous pouvez y parvenir et créer un superbe tableau de bord de surveillance pour les serveurs MySQL.
Dans ce guide, vous apprendrez comment surveiller les serveurs MySQL/MariaDB avec Prometheus et Grafana. Vous allez configurer « prometheus-mysqld-exporter » pour générer des métriques et ajouter la surveillance des points de terminaison au serveur Prometheus. Après cela, vous créerez un nouveau tableau de bord Grafana pour la surveillance MySQL.
Conditions préalables
Pour commencer, assurez-vous d'avoir les éléments suivants :
- Un serveur MySQL/MariaDB installé
- Un utilisateur non root avec des privilèges d'administrateur
- Prometheus et Grafana installés sur votre serveur
Configurer l'utilisateur MySQL/MariaDB
Pour surveiller le serveur MySQL/MariaDB, vous devez créer un nouvel utilisateur MySQL dédié. Cet utilisateur aura le moins de privilèges, tels que PROCESS, REPLICATION CLIENT et SELECT sur toutes vos bases de données.
Dans cette section, vous allez créer un nouvel utilisateur MySQL pour surveiller votre serveur MySQL.
Connectez-vous à votre serveur MySQL/MariaDB avec ce qui suit. Saisissez votre mot de passe « root » lorsque vous y êtes invité.
sudo mysql -u root -p
Exécutez maintenant les requêtes suivantes pour créer un nouvel utilisateur MySQL 'prometheus' avec l'authentification 'unix_socket'. Cet utilisateur aura les privilèges de voir les processus, les clients de réplication et sélectionner dans toutes les bases de données du serveur MySQL.
CREATE USER IF NOT EXISTS 'prometheus'@'localhost' IDENTIFIED WITH unix_socket;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'prometheus'@'localhost';
FLUSH PRIVILEGES;
Ensuite, exécutez la requête ci-dessous pour vérifier l'utilisateur MySQL 'prometheus@localhost'. Vous verrez l'utilisateur 'prometheus' avec les privilèges SELECT, PROCESS et BINLOG MONITOR en tant que client de réplication.
SHOW GRANTS FOR 'prometheus'@'localhost';
Tapez « quit » pour quitter le serveur MySQL/MariaDB.
Installation de prometheus-mysqld-exporter
Le « prometheus-mysqld-exporter » est un exportateur de métriques MySQL. Il prend en charge MySQL >= 5.6 et MariaDB >= 10.3. Pour utiliser 'prometheus-mysqld-exporter', vous devez l'installer sur votre serveur MySQL.
Dans cet exemple, le serveur MySQL s'exécute sur le serveur Debian 12. Et par défaut, le 'prometheus-mysqld-exporter' est disponible sur le dépôt officiel Debian, nous allons donc l'installer via APT. Si vous utilisez une autre distribution, vous pouvez la télécharger et l'installer manuellement pour GitHub.
Tout d’abord, exécutez la commande ci-dessous pour mettre à jour l’index de votre package Debian.
sudo apt update
Une fois le référentiel mis à jour, installez le package 'prometheus-mysqld-exporter' avec la commande suivante. Entrez « Y » pour confirmer l'installation.
sudo apt install prometheus-mysqld-exporter
Une fois l'installation terminée, exécutez la commande 'systemctl' ci-dessous pour recharger le gestionnaire systemd.
sudo systemctl daemon-reload
Ensuite, vous pouvez démarrer et activer le service « prometheus-mysqld-exporter » avec la commande ci-dessous. Avec cela, le service « prometheus-mysqld-exporter » devrait être exécuté et activé sur votre système.
sudo systemctl enable --now prometheus-mysqld-exporter
Ajout d'un utilisateur MySQL à prometheus-mysqld-exporter
Maintenant que vous avez créé un utilisateur MySQL et installé « prometheus-mysqld-exporter ». L'étape suivante consiste à ajouter votre MySQL à la configuration 'prometheus-mysqld-exporter'. Cela vous permet de générer des métriques de votre serveur MySQL et d'exposer le point de terminaison sur le port par défaut « 9104 ».
Ouvrez le fichier '/etc/default/prometheus-mysqld-exporter' avec l'éditeur 'nano' suivant.
sudo nano /etc/default/prometheus-mysqld-exporter
Décommentez la variable d'environnement 'DATA_SOURCE_NAME' pour intégrer MySQL avec 'prometheus-mysqld-exporter'. Dans cet exemple, l'utilisateur MySQL 'prometheus' sera utilisé pour surveiller le serveur MySQL via le fichier 'mysqld.sock'.
DATA_SOURCE_NAME="prometheus@unix(/run/mysqld/mysqld.sock)/"
Enregistrez le fichier et quittez l'éditeur.
Exécutez maintenant la commande 'systemctl' ci-dessous pour redémarrer le service 'prometheus-mysqld-exporter' et appliquez vos modifications. Ensuite, vérifiez son état pour vous assurer qu’il fonctionne.
sudo systemctl restart prometheus-mysqld-exporter
sudo systemctl status prometheus-mysqld-exporter
Vous pouvez voir ci-dessous que 'prometheus-mysqld-exporter' est en cours d'exécution.
Enfin, ouvrez votre navigateur Web et visitez http://192.168.10.41:9104/. Il s'agit du point de terminaison par défaut pour 'prometheus-mysqld-exporter'. Si votre configuration réussit, une métrique sera générée et s'affichera comme suit :
Ajout du point de terminaison prometheus-mysqld-exporter à Prometheus
Maintenant que la configuration de 'prometheus-mysqld-exporter' est terminée et que la métrique est générée. Vous devez maintenant ajouter le « prometheus-mysqld-exporter » comme point de terminaison à votre serveur Prometheus. Quant à ce guide, le point de terminaison « prometheus-mysqld-exporter » est disponible à l'adresse « 192.168.10.41:9104 ».
Si vous n'avez pas de serveur Prometheus, installez-le via Comment installer Prometheus et Node Exporter sur Debian 12
Accédez à votre serveur Prometheus et ouvrez le fichier de configuration '/etc/prometheus/prometheus.yml' avec l'éditeur 'nano'.
sudo nano /etc/prometheus/prometheus.yml
Dans 'scrape_configs', ajoutez le point de terminaison de votre 'prometheus-mysqld-exporter' comme ceci. Pour cet exemple, 'prometheus-mysqld-exporter' s'exécute sur le 'server1' avec l'adresse IP et le port '192.168.10.41:9104'.
scrape_configs:
- job_name: server1
static_configs:
- targets: ['192.168.10.41:9104']
labels:
alias: db1
Enregistrez le fichier et quittez l'éditeur une fois terminé.
Exécutez maintenant la commande 'systemctl' suivante pour redémarrer le service 'prometheus' et appliquer vos modifications.
sudo systemctl restart prometheus
Enfin, ouvrez le tableau de bord de votre serveur Prometheus et sélectionnez le menu « Statut > Cibles ». Assurez-vous que vous pouvez voir le « server1 », qui est le point final de votre surveillance MySQL.
Configuration du tableau de bord Grafana pour le serveur MySQL
Après avoir ajouté le point de terminaison « prometheus-mysqld-exporter » au serveur Prometheus, vous êtes maintenant prêt à créer le tableau de bord Grafana pour la surveillance du serveur MySQL. Dans cette section, vous importerez la surveillance du tableau de bord pour MySQL via GrafanaLabs.
Si Grafana n'est pas installé, installez-le avec Comment installer Grafana et Prometheus sur Ubuntu 24.04
Sur votre tableau de bord Grafana, cliquez sur le menu « Tableau de bord > Nouveau > Importer ». Pour cet exemple, nous utiliserons les modèles Grafana de GrafanaLabs pour surveiller le serveur MySQL.
Copiez le numéro d'identification Grafana et collez-le, puis cliquez sur « Charger » pour confirmer.
Sélectionnez maintenant « Prometheus » comme source de données et cliquez sur « Importer ».
En cas de succès, vous verrez le tableau de bord de votre surveillance MySQL/MariaDB avec Prometheus et Grafana.
Conclusion
Félicitations! Vous avez terminé la surveillance du serveur MySQL/MariaDB avec Prometheus et Grafana. Vous avez surveillé le serveur MySQL avec « prometheus-mysqld-exporter » et généré des métriques pour MySQL. Vous avez également ajouté «prometheus-mysqld-exporter» comme point de terminaison à votre serveur Prometheus. Enfin, vous avez créé un tableau de bord Grafana pour surveiller votre serveur MySQL.