Les logs MariaDB disposent de fonc­tion­na­li­tés complètes qui vous aident à sur­veil­ler et optimiser vos instances de base de données. Nous vous ex­pli­quons les dif­fé­rents types de logs et comment les con­fi­gu­rer et les activer.

Quels sont les logs dis­po­nibles dans MariaDB ?

MariaDB propose quatre types de logs prin­ci­paux qui en­re­gistrent dif­fé­rents aspects du fonc­tion­ne­ment de la base de données :

Log d’erreur

Le log d’erreur documente les évé­ne­ments critiques tels que les opé­ra­tions de démarrage et d’arrêt du serveur, les plantages ou d’autres erreurs graves. Il est activé par défaut et aide à diag­nos­ti­quer les problèmes du serveur.

Log de requêtes générales

Ce log en­re­gistre chaque connexion au serveur ainsi que toutes les commandes SQL exécutées. Il est donc adapté à l’analyse des erreurs et à la sur­veil­lance des activités des uti­li­sa­teurs.

Log binaire

Un log binaire en­re­gistre toutes les mo­di­fi­ca­tions de la base de données, y compris les ma­ni­pu­la­tions de données et les chan­ge­ments de structure. Il est essentiel pour les ré­li­ca­tions et les res­tau­ra­tions à un point précis dans le temps.

Log de requêtes lentes

Ce log énumère les requêtes SQL dont le temps d’exécution dépasse une certaine durée. Il constitue une aide précieuse pour iden­ti­fier et optimiser les goulets d’étran­gle­ment de per­for­mance.

Compute Engine
La solution IaaS idéale pour gérer vos charges de travail
  • vCPU aux coûts avan­ta­geux et cœurs dédiés per­for­mants
  • Sans en­ga­ge­ment pour plus de flexi­bi­lité
  • As­sis­tance par des experts 24h/24 et 7j/7 incluse

Con­fi­gu­rer et utiliser les logs MariaDB : guide étape par étape

Dans ce qui suit, nous vous montrons comment activer, con­fi­gu­rer et analyser les quatre prin­ci­paux fichiers de log (aussi appelés log files) de MariaDB. Nous abor­de­rons le log d’erreurs, le log de requêtes générales, le log binaire, le log de requêtes lentes et l’em­pla­ce­ment (location) du log MariaDB.

Prérequis

  • Un serveur avec une version récente d’Ubuntu ou d’une autre dis­tri­bu­tion Linux
  • Un compte uti­li­sa­teur avec des droits sudo
  • Ne pas avoir MySQL installé en parallèle, car MySQL et MariaDB peuvent se che­vau­cher dans les fichiers de con­fi­gu­ra­tion et les ports
  • Con­nais­sances de base en SQL

Étape 1 : afficher et con­fi­gu­rer le journal des erreurs

Tout d’abord, vous devez vous assurer que MariaDB est installé. Pour cela, exécutez la commande suivante :

sudo apt update
sudo apt install mariadb-server
bash

Cette commande met d’abord à jour la liste des paquets de votre système puis installe le serveur MariaDB.

Pour vous connecter à la base de données MariaDB, exécutez la commande suivante :

sudo mariadb
bash

Vous accédez ainsi à la console SQL in­te­rac­tive en tant qu’ad­mi­nis­tra­teur.

À l’étape suivante, vérifiez où MariaDB écrit les logs tels que les messages d’erreur. Vous pouvez le faire avec cette ins­truc­tion SQL :

SHOW VARIABLES LIKE '%log_error%';
sql

Si la valeur de log_error est vide, les messages d’erreur sont par défaut écrits dans le journal système central (syslog).

Pour consulter ce journal, utilisez la commande suivante :

journalctl -u mariadb.service
bash

Cela vous donne une liste chro­no­lo­gique des messages système générés par le service MariaDB. Ceci est utile lorsque vous examinez des erreurs de démarrage ou d’autres évé­ne­ments critiques.

Si vous souhaitez utiliser à la place un fichier de log d’erreurs propre, vous devez modifier le fichier de con­fi­gu­ra­tion de MariaDB. Ouvrez-le avec un éditeur de texte comme nano :

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Re­cher­chez la section [mysqld] et ajoutez-y la ligne suivante ou dé­sac­ti­vez son com­men­taire :

log_error = /var/log/mariadb/error.log
txt

Vérifiez que le ré­per­toire existe et dispose des bons droits d’accès. Pour ce faire, exécutez ces commandes :

sudo mkdir /var/log/mariadb
sudo chown mysql:mysql /var/log/mariadb
bash

Les commandes créent le ré­per­toire et le dé­fi­nis­sent pour l’uti­li­sa­teur et le groupe mysql, afin que la fonction de logging de MariaDB puisse y écrire.

Re­dé­mar­rez ensuite le service MariaDB pour que les mo­di­fi­ca­tions de con­fi­gu­ra­tion prennent effet :

sudo systemctl restart mariadb
bash

Enfin, vous pouvez consulter le fichier de journal des erreurs :

sudo cat /var/log/mariadb/error.log
bash

Vous y trouverez des in­for­ma­tions sur les temps de démarrage, les aver­tis­se­ments ou les problèmes avec les plugins.

Étape 2 : activer le journal général des requêtes (General Query Log)

Pour vérifier le statut actuel, ouvrez la console SQL et saisissez la commande suivante :

SHOW VARIABLES LIKE '%general%';
sql

Là, vous verrez si le journal général des requêtes est actif (general_log = ON) et où il est stocké (general_log_file).

Pour activer ces logs MariaDB de manière per­ma­nente, modifiez à nouveau le fichier de con­fi­gu­ra­tion :

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Ajoutez les lignes suivantes dans la section [mysqld] :

general_log = 1
general_log_file = /var/log/mariadb/general-query.log
ini

Ensuite, re­dé­mar­rez le service :

sudo systemctl restart mariadb
bash

Pour voir les entrées en­re­gis­trées, utilisez :

sudo cat /var/log/mariadb/general-query.log
bash

Vous y trouverez toutes les requêtes et con­nexions, y compris les ho­ro­da­tages. Cela aide à dé­ter­mi­ner quand chaque demande a été émise.

Étape 3 : activer le journal binaire

Pour con­fi­gu­rer le journal binaire, ouvrez le même fichier de con­fi­gu­ra­tion qu’au­pa­ra­vant :

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Ajoutez les pa­ra­mètres suivants dans la section [mysqld] :

log_bin = /var/log/mariadb/binary.log
server_id = 1
binlog_format = ROW
txt

Le server_id est important pour la ré­pli­ca­tion (chaque serveur doit avoir un ID unique). Avec binlog_format = ROW, chaque mo­di­fi­ca­tion de données au niveau des lignes est en­re­gis­trée dans les logs MariaDB.

Re­dé­mar­rez le serveur :

sudo systemctl restart mariadb
bash

Pour vérifier si le journal binaire est actif, saisissez dans la console SQL :

SHOW BINARY LOGS;
sql

Les logs binaires actifs ap­pa­rais­sent alors avec leur nom et leur taille.

Pour lire le contenu d’un fichier, utilisez la commande suivante :

sudo mysqlbinlog /var/log/mariadb/binary.000001
bash

Vous y verrez toutes les commandes de mo­di­fi­ca­tion listées chro­no­lo­gi­que­ment.

Étape 4 : consigner les requêtes lentes (Slow Query Log)

Modifiez le fichier de con­fi­gu­ra­tion :

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Insérez ce qui suit :

slow_query_log = 1
slow_query_log_file = /var/log/mariadb/slow-query.log
long_query_time = 10
txt

Cela signifie que long_query_time = 10 en­re­gistre toutes les requêtes dont le temps d’exécution dépasse dix secondes.

Re­dé­mar­rez ensuite le service :

sudo systemctl restart mariadb
bash

Vérifiez si le log est actif :

SHOW VARIABLES LIKE '%slow_query_log%';
sql

Effectuez une requête de test dé­li­bé­ré­ment lente :

SELECT SLEEP(12);
sql

Cette ins­truc­tion force le serveur à attendre douze secondes. Elle devrait donc ap­pa­raître dans le Slow Query Log.

Enfin, vous pouvez afficher le log :

sudo cat /var/log/mariadb/slow-query.log
bash

Vous y trouverez des ho­ro­da­tages, le temps de requête et l’ins­truc­tion SQL concernée.

Pour plus d’in­for­ma­tions sur l’analyse des fichiers journaux, veuillez consulter notre guide.

Bases de données managées
Des bases de données gérées et sûres
  • Solutions flexibles, adaptées à vos besoins
  • Ar­chi­tec­ture de niveau pro­fes­sion­nel, gérée par des experts
  • Hébergées en Europe, con­for­mé­ment aux normes de pro­tec­tion des données les plus strictes
Aller au menu principal