Aller au contenu principal

config-prometheus-grafana-mysql

Surveillance des gouttelettes MySQL et MariaDB à l'aide de Prometheus MySQL Exporter

Introduction Une surveillance efficace des bases de données MySQL et MariaDB est essentielle pour maintenir des performances optimales, identifier les goulets d'étranglement potentiels et garantir la fiabilité globale du système. Prometheus MySQL Exporter est un outil robuste qui offre des informations détaillées sur les métriques des bases de données, essentielles à une gestion proactive et au dépannage.

Dans ce guide, vous apprendrez à configurer Prometheus MySQL Exporter pour surveiller les bases de données MySQL et MariaDB à l'aide d'une configuration manuelle et d'une automatisation basée sur des scripts. Ces méthodes offrent la flexibilité nécessaire pour sélectionner la meilleure stratégie de déploiement et l'approche du flux de travail opérationnel. À la fin, vous disposerez d'un système de surveillance opérationnel utilisant Prometheus et Grafana pour l'analyse des performances en temps réel.

Prérequis

  • Vous aurez besoin d'avoir des serveurs de base de données MySQL ou MariaDB installés et fonctionnant sur un Ubuntu. Les serveurs que vous souhaitez surveiller doivent être accessibles depuis la machine sur laquelle vous prévoyez d'installer Prometheus MySQL Exporter.

  • Vous aurez besoin d’un accès SSH aux gouttelettes MySQL ou MariaDB Ubuntu pour installer et configurer Prometheus MySQL Exporter.

  • Prometheus MySQL Exporter s'intègre à Prometheus pour le scraping des métriques et à Grafana pour la visualisation. Ici, vous utiliserez les images Prometheus et Grafana de DigitalOcean Marketplace pour surveiller les droplets de base de données.

Méthode 1 - Configuration manuelle

Procédons maintenant à la méthode de configuration manuelle dans cette section.

Ajouter un utilisateur et un groupe du système Prometheus

Dans cette étape, vous allez configurer les droplets cibles. Créons un utilisateur système et un groupe nommés « prometheus » pour gérer le service d’exportation.

sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus

Téléchargez et installez Prometheus MySQL Exporter

Dans cette étape, vous allez télécharger la dernière version de Prometheus MySQL Exporter depuis GitHub, extraire les fichiers téléchargés et déplacer le binaire vers le répertoire /usr/local/bin/

curl -s https://api.github.com/repos/prometheus/mysqld_exporter/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf mysqld_exporter*.tar.gz
sudo mv mysqld_exporter-*.linux-amd64/mysqld_exporter /usr/local/bin/
sudo chmod +x /usr/local/bin/mysqld_exporter

Créer un utilisateur de base de données d'exportation Prometheus

Connectez-vous à MySQL en tant que root et créez un utilisateur dédié pour l'exportateur avec les privilèges nécessaires.

mysql -u root -p
  • Entrez le mot de passe root, si nécessaire, et vous verrez l'invite MySQL/MariaDB. Exécutez ensuite les commandes suivantes (remplacez giveapassword dans la commande ci-dessous par un nouveau mot de passe pour l'utilisateur de la base de données mysqld_exporter).

  • Créez un nouvel utilisateur MySQL nommé mysqld_exporter avec un mot de passe giveapassword pour les connexions locales.

CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'giveapassword';
  • Accordez à l'utilisateur mysqld_exporter les autorisations nécessaires pour afficher les listes de processus, l'état de réplication du client et interroger les données de toutes les bases de données.
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost';
  • Rechargez les tables de subventions pour appliquer les modifications apportées aux autorisations utilisateur.
FLUSH PRIVILEGES;
  • Quittez l'interface de ligne de commande MySQL.
EXIT

Configurer les informations d'identification de la base de données

Créez un fichier de configuration pour stocker les informations d’identification de l’exportateur MySQL.

sudo vi /etc/.mysqld_exporter.cnf

Ajoutez les informations d’identification utilisateur suivantes au fichier :

[client]
user=mysqld_exporter
password=giveapassword

Définir les autorisations de propriété pour le fichier de configuration :

sudo chown root:prometheus /etc/.mysqld_exporter.cnf

Créer un fichier d'unité systemd

Créez un fichier d'unité de service systemd pour gérer le service MySQL Exporter :

sudo vi /etc/systemd/system/mysql_exporter.service

Ajoutez les données suivantes au fichier :

[Unit]
Description=Prometheus MySQL Exporter
After=network.target
User=prometheus
Group=prometheus

[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/mysqld_exporter \
--config.my-cnf /etc/.mysqld_exporter.cnf \
--collect.global_status \
--collect.info_schema.innodb_metrics \
--collect.auto_increment.columns \
--collect.info_schema.processlist \
--collect.binlog_size \
--collect.info_schema.tablestats \
--collect.global_variables \
--collect.info_schema.query_response_time \
--collect.info_schema.userstats \
--collect.info_schema.tables \
--collect.perf_schema.tablelocks \
--collect.perf_schema.file_events \
--collect.perf_schema.eventswaits \
--collect.perf_schema.indexiowaits \
--collect.perf_schema.tableiowaits \
--collect.slave_status \
--web.listen-address=0.0.0.0:9104

[Install]
WantedBy=multi-user.target

Recharger systemd et démarrer le service d'exportation MySQL

Rechargez la configuration systemd et démarrez le service MySQL Exporter :

sudo systemctl daemon-reload
sudo systemctl enable mysql_exporter
sudo systemctl start mysql_exporter

Configuration de la gouttelette Prometheus

cp /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml-$(date +'%d%b%Y-%H:%M')

Connectez-vous maintenant à votre serveur Prometheus et ajoutez les points de terminaison MySQL Exporter à récupérer. Remplacez les adresses IP et les ports par vos points de terminaison MySQL Exporter (9104 est le port par défaut pour l'exportateur MySQLd de Prometheus).

nano /etc/prometheus/prometheus.yml
scrape_configs:
- job_name: server1_db
static_configs:
- targets: ['10.10.1.10:9104']
labels:
alias: db1

- job_name: server2_db
static_configs:
- targets: ['10.10.1.11:9104']
labels:
alias: db2

Méthode 2 - Configuration à l'aide de scripts

Vous pouvez également y parvenir en exécutant deux scripts : un pour les gouttelettes cibles et l’autre pour la gouttelette Prometheus.

  1. Connectez-vous en SSH à la gouttelette cible.
  2. Téléchargez le script de configuration cible en utilisant la commande suivante :
wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Target_Config.sh
  1. Une fois le script téléchargé, assurez-vous qu'il dispose des autorisations exécutables en exécutant :
chmod +x DO_MySQL_MariaDB_Target_Config.sh
  1. Exécutez le script en exécutant :
./DO_MySQL_MariaDB_Target_Config.sh
  1. Saisissez un nouveau mot de passe pour l'utilisateur mysql_exporter, puis saisissez le mot de passe root MySQL :

Configuration de la droplet Prometheus (méthode de script)

  1. Connectez-vous en SSH à la gouttelette Prometheus.
  2. Téléchargez le script de configuration Prometheus en utilisant la commande suivante :
wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Prometheus_Config.sh

Ce script bash automatise la mise à jour du fichier de configuration de Prometheus pour ajouter de nouveaux points d'extrémité de serveur.

Il commence par sauvegarder le fichier prometheus.yml actuel avec un nom de fichier horodaté. Le script demande ensuite à l'utilisateur de spécifier le nombre de serveurs à ajouter et valide cette entrée.

Pour chaque serveur, il demande un nom d'hôte et une adresse IP, en veillant à ce que chaque adresse IP soit unique dans le fichier de configuration. Les configurations de serveur valides sont ajoutées au fichier prometheus.yml. Après avoir mis à jour la configuration, le script redémarre le service Prometheus et vérifie son état pour confirmer que les modifications ont été appliquées.

  1. Une fois le script téléchargé, assurez-vous qu'il dispose des autorisations exécutables en exécutant :
chmod +x DO_MySQL_MariaDB_Prometheus_Config.sh
  1. Exécutez le script en exécutant :
./DO_MySQL_MariaDB_Prometheus_Config.sh
  1. Entrez le nombre de gouttelettes à ajouter à la surveillance.

  2. Entrez les noms d’hôtes et les adresses IP.

  3. La configuration est terminée.

  4. Une fois ajoutés, vérifiez si les cibles sont mises à jour en accédant à l'URL prometheushostname:9090/targets.

[Notes]

Si vous saisissez une adresse IP déjà ajoutée à la surveillance, il vous sera demandé de saisir à nouveau les détails. De plus, si vous n'avez plus de serveurs à ajouter, vous pouvez saisir 0 pour quitter le script.

Configuration de Grafana

Connectez-vous au tableau de bord Grafana en visitant Grafana-IP:3000 sur un navigateur.

  1. Accédez à Configuration > Sources de données. (Configuration > Data Sources)

  2. Cliquez sur Ajouter une source de données.(Click on Add data source.)

  3. Rechercher et sélectionner Prometheus

  4. Saisissez le nom Prometheus et l'URL (Prometheushostname:9090) et cliquez sur Enregistrer et tester. Si vous voyez « La source de données fonctionne », vous avez ajouté la source de données avec succès. Une fois terminé, accédez à Créer > Importer.

    Enter Name as Prometheus, and URL (Prometheushostname:9090) and click Save & Test. If you see “Data source is working”, you have successfully added the data source. Once done, go to Create > Import.

  5. Vous pouvez configurer manuellement le tableau de bord ou l'importer en téléchargeant le fichier JSON. Un modèle JSON pour la surveillance MySQL et MariaDB est disponible dans le lien ci-dessous :

https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_Grafana-Mysql-MariaDB_Monitoring.json
  1. Remplissez les champs et importez.
  2. Le tableau de bord Grafana est prêt. Sélectionnez l'hôte et vérifiez si les métriques sont visibles. Vous pouvez modifier et éditer le tableau de bord selon vos besoins.

Conclusion

Dans ce didacticiel, vous avez appris à automatiser le processus de configuration pour le déploiement de Prometheus MySQL Exporter sur vos serveurs. En suivant les étapes, vous pouvez installer et configurer efficacement l'exportateur pour collecter les métriques MySQL à des fins de surveillance.