Les logs MariaDB disposent de fonctionnalités complètes qui vous aident à surveiller et optimiser vos instances de base de données. Nous vous expliquons les différents types de logs et comment les configurer et les activer.

Quels sont les logs disponibles dans MariaDB ?

MariaDB propose quatre types de logs principaux qui enregistrent différents aspects du fonctionnement de la base de données :

Log d’erreur

Le log d’erreur documente les événements critiques tels que les opérations de démarrage et d’arrêt du serveur, les plantages ou d’autres erreurs graves. Il est activé par défaut et aide à diagnostiquer les problèmes du serveur.

Log de requêtes générales

Ce log enregistre chaque connexion au serveur ainsi que toutes les commandes SQL exécutées. Il est donc adapté à l’analyse des erreurs et à la surveillance des activités des utilisateurs.

Log binaire

Un log binaire enregistre toutes les modifications de la base de données, y compris les manipulations de données et les changements de structure. Il est essentiel pour les rélications et les restaurations à 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 identifier et optimiser les goulets d’étranglement de performance.

Compute Engine
La solution IaaS idéale pour gérer vos charges de travail
  • vCPU aux coûts avantageux et cœurs dédiés performants
  • Sans engagement pour plus de flexibilité
  • Assistance par des experts 24h/24 et 7j/7 incluse

Configurer et utiliser les logs MariaDB : guide étape par étape

Dans ce qui suit, nous vous montrons comment activer, configurer et analyser les quatre principaux fichiers de log (aussi appelés log files) de MariaDB. Nous aborderons le log d’erreurs, le log de requêtes générales, le log binaire, le log de requêtes lentes et l’emplacement (location) du log MariaDB.

Prérequis

  • Un serveur avec une version récente d’Ubuntu ou d’une autre distribution Linux
  • Un compte utilisateur avec des droits sudo
  • Ne pas avoir MySQL installé en parallèle, car MySQL et MariaDB peuvent se chevaucher dans les fichiers de configuration et les ports
  • Connaissances de base en SQL

Étape 1 : afficher et configurer 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 interactive en tant qu’administrateur.

À l’étape suivante, vérifiez où MariaDB écrit les logs tels que les messages d’erreur. Vous pouvez le faire avec cette instruction 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 chronologique 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énements critiques.

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

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

Recherchez la section [mysqld] et ajoutez-y la ligne suivante ou désactivez son commentaire :

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

Vérifiez que le répertoire 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épertoire et le définissent pour l’utilisateur et le groupe mysql, afin que la fonction de logging de MariaDB puisse y écrire.

Redémarrez ensuite le service MariaDB pour que les modifications de configuration 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 informations sur les temps de démarrage, les avertissements 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 permanente, modifiez à nouveau le fichier de configuration :

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, redémarrez le service :

sudo systemctl restart mariadb
bash

Pour voir les entrées enregistrées, utilisez :

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

Vous y trouverez toutes les requêtes et connexions, y compris les horodatages. Cela aide à déterminer quand chaque demande a été émise.

Étape 3 : activer le journal binaire

Pour configurer le journal binaire, ouvrez le même fichier de configuration qu’auparavant :

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

Ajoutez les paramè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éplication (chaque serveur doit avoir un ID unique). Avec binlog_format = ROW, chaque modification de données au niveau des lignes est enregistrée dans les logs MariaDB.

Redémarrez 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 apparaissent 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 modification listées chronologiquement.

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

Modifiez le fichier de configuration :

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 enregistre toutes les requêtes dont le temps d’exécution dépasse dix secondes.

Redémarrez 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élibérément lente :

SELECT SLEEP(12);
sql

Cette instruction force le serveur à attendre douze secondes. Elle devrait donc apparaî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 horodatages, le temps de requête et l’instruction SQL concernée.

Pour plus d’informations 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
  • Architecture de niveau professionnel, gérée par des experts
  • Hébergées en Europe, conformément aux normes de protection des données les plus strictes
Cet article vous a-t-il été utile ?
Aller au menu principal