Présentation des journaux de base de données RDS for MySQL - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Présentation des journaux de base de données RDS for MySQL

Vous pouvez surveiller les types de fichiers journaux RDS for MySQL suivants :

  • Journal des erreurs

  • Journal des requêtes lentes

  • Journal général

  • Journal d'audit

Le journal des erreurs RDS for MySQL est généré par défaut. Vous pouvez générer le journal des requêtes lentes et le journal général en définissant les paramètres nécessaires dans votre groupe de paramètres de base de données.

Journaux des erreurs RDS for MySQL

RDS for MySQL écrit les erreurs dans le fichier mysql-error.log. Le nom du fichier journal comporte l'heure à laquelle le fichier a été généré (au format UTC). Les fichiers journaux comportent également un horodatage permettant de déterminer le moment où les entrées du journal ont été écrites.

RDS for MySQL écrit dans le journal des erreurs uniquement au moment du démarrage, de l'arrêt et lorsqu'une erreur survient. Une instance de base de données peut fonctionner pendant des heures ou des jours sans qu'aucune nouvelle entrée soit écrite dans le journal des erreurs. Si aucune entrée récente ne figure, cela signifie que le serveur n'a pas rencontré d'erreur justifiant une entrée de journal.

Par défaut, les journaux des erreurs sont filtrés de sorte que seuls les événements inattendus tels que les erreurs soient affichés. Toutefois, les journaux des erreurs contiennent également des informations supplémentaires sur la base de données, comme la progression des requêtes, qui ne sont pas affichées. Par conséquent, même en l'absence d'erreurs réelles, la taille des journaux des erreurs peut augmenter en raison des activités en cours sur la base de données. Et même si vous pouvez voir une certaine taille en octets ou en kilo-octets pour les journaux d'erreurs contenus dans la AWS Management Console, ils peuvent être vide lorsque vous les téléchargez.

RDS for MySQL écrit mysql-error.log sur le disque toutes les 5 minutes. Il ajoute le contenu du journal à mysql-error-running.log.

RDS for MySQL assure la rotation du fichier mysql-error-running.log toutes les heures. Les journaux générés au cours des deux dernières semaines sont conservés.

Note

La période de conservation des journaux est différente pour Amazon RDS et Aurora.

Journal des requêtes lentes et journal général RDS for MySQL

Vous pouvez écrire le journal des requêtes lentes et le journal général RDS for MySQL dans un fichier ou dans une table de base de données. Pour ce faire, définissez les paramètres de votre groupe de paramètres de base de données. Pour plus d'informations sur la création et la modification d'un groupe de paramètres DB, consultez Utilisation des groupes de paramètres. Vous devez définir ces paramètres avant de pouvoir consulter le journal des requêtes lentes ou le journal général dans la console Amazon RDS ou à l'aide de l'API Amazon RDS, de la CLI Amazon RDS ou de kits SDK AWS.

Vous pouvez contrôler la journalisation RDS for MySQL à l'aide des paramètres de cette liste :

  • slow_query_log : Pour créer le journal des requêtes lentes, définir sur 1. La valeur par défaut est 0.

  • general_log : Pour créer le journal général, définir sur 1. La valeur par défaut est 0.

  • long_query_time : Pour empêcher l'enregistrement des requêtes rapides dans le journal des requêtes lentes, indiquez la valeur de la durée d'exécution de requête la plus courte devant être journalisée, en secondes. La valeur par défaut est de 10 secondes et la valeur minimum est 0. Si log_output = FILE, vous pouvez indiquer une valeur à virgule flottante avec une résolution en microseconde. Si log_output = TABLE, vous devez indiquer un nombre entier avec une résolution en seconde. Seules les requêtes dont la durée d'exécution dépasse la valeur long_query_time sont journalisées. Par exemple, si vous définissez long_query_time sur 0,1, les requêtes s'exécutant pendant moins de 100 millisecondes ne sont pas enregistrées.

  • log_queries_not_using_indexes : Pour enregistrer toutes les requêtes n'utilisant pas d'index dans le journal des requêtes lentes, définir sur 1. Les requêtes n'utilisant pas d'index sont journalisées même si la durée de leur exécution est inférieure à la valeur du paramètre long_query_time. La valeur par défaut est 0.

  • log_output option : Vous pouvez spécifier l'une des options suivantes pour le paramètre log_output.

    • TABLEAU (par défaut) – Écrit les requêtes générales dans le tableau mysql.general_log et les requêtes lentes dans le tableau mysql.slow_log.

    • FICHIER – Écrit les fichiers des requêtes générales et lentes dans le fichier système.

    • AUCUNE– Désactive la journalisation.

Pour plus d'informations sur le journal des requêtes lentes et le journal général, accédez aux rubriques suivantes dans la documentation MySQL :

Journal d'audit MySQL

Pour accéder au journal d'audit, l'instance de base de données doit utiliser un groupe d'options personnalisé avec l'option MARIADB_AUDIT_PLUGIN. Pour plus d'informations, consultez Prise en charge du plugin d'audit MariaDB pour MySQL.

Renouvellement et rétention des journaux pour RDS for MySQL

Lorsque la journalisation est activée, Amazon RDS effectue une rotation des journaux des tables ou supprime les fichiers journaux à intervalles réguliers. Cette précaution permet de limiter la possibilité qu'un fichier journal volumineux ne bloque l'utilisation de la base de données ou n'affecte les performances. RDS for MySQL gère la rotation et la suppression des journaux comme suit :

  • Les tailles du journal des requêtes lentes, du journal des erreurs et du journal général MySQL sont limitées à 2 %maximum de l'espace de stockage alloué à une instance de base de données. Pour maintenir ce seuil, les journaux sont automatiquement renouvelés toutes les heures. MySQL supprime les fichiers journaux datant de plus de deux semaines. Si la taille de l'ensemble des fichiers journaux après la suppression dépasse le seuil, les fichiers journaux les plus anciens sont supprimés jusqu'à ce que la taille des fichiers journaux ne soit plus supérieure au seuil.

  • Lorsque la journalisation FILE est activée, les fichiers journaux sont examinés toutes les heures et ceux datant de plus de deux semaines sont supprimés. Dans certains cas, la taille des fichiers journaux combinés restant après la suppression peut dépasser le seuil de 2 % de l'espace alloué à une instance de base de données. Le cas échéant, les fichiers journaux les plus anciens sont supprimés jusqu'à ce que la taille des fichiers journaux ne soit plus supérieure au seuil.

  • Lorsque la journalisation de TABLE est activée, les tables des journaux font dans certains cas l'objet d'une rotation toutes les 24 heures. Cette rotation se produit si l'espace utilisé par les journaux des tables est supérieur à 20 % de l'espace de stockage alloué. Cela se produit également si la taille de tous les journaux combinés est supérieure à 10 Go. Si l'espace utilisé pour une instance de base de données est supérieur à 90 % de l'espace de stockage alloué à l'instance de base de données, alors les seuils correspondant à la rotation des journaux est réduite. La rotation des journaux des tables se produit ensuite si l'espace utilisé par les journaux des tables est supérieur à 10 % de l'espace de stockage alloué. Elle se produit également si la taille de tous les journaux combinés est supérieure à 5 Go. Vous pouvez vous abonner à l'événement low_free_storage pour être informé lorsque les tables de journal font l'objet d'une rotation pour libérer de l'espace. Pour plus d'informations, consultez Utiliser la notification d'événements d'Amazon RDS.

    Lors de la rotation des tables de journaux, la table de journal actuelle est d'abord copiée vers une table de journal de sauvegarde. Les entrées de la table de journal actuelle sont ensuite supprimées. Si la table de journal de sauvegarde existe déjà, elle est supprimée avant que la table de journal actuelle ne soit copiée dans la sauvegarde. Si besoin, vous pouvez interroger la table de journal de sauvegarde. La table de journal de sauvegarde de la table mysql.general_log est nommée mysql.general_log_backup. La table de journal de sauvegarde de la table mysql.slow_log est nommée mysql.slow_log_backup.

    Vous pouvez effectuer une rotation de la table mysql.general_log en appelant la procédure mysql.rds_rotate_general_log. Vous pouvez effectuer une rotation de la table mysql.slow_log en appelant la procédure mysql.rds_rotate_slow_log.

    La rotation des journaux des tables est effectuée pendant la mise à niveau de la version d'une base de données.

Pour utiliser les journaux depuis la console Amazon RDS, l'API Amazon RDS, la CLI Amazon RDS ou les kits SDK AWS, définissez le paramètre log_output sur FILE. A l'instar du journal des erreurs MySQL, ces fichiers journaux font l'objet d'une rotation horaire. Les fichiers journaux qui ont été générés au cours des deux dernières semaines sont conservés. Veuillez noter que la période de rétention est différente pour Amazon RDS et pour Aurora.

Limites de taille des journaux de reprise

Pour les versions 8.0.32 et antérieures de RDS for MySQL, la valeur par défaut de ce paramètre est de 256 Mo. Ce montant est obtenu en multipliant la valeur par défaut du innodb_log_file_size paramètre (128 Mo) par la valeur par défaut du innodb_log_files_in_group paramètre (2). Pour plus d'informations, consultez Bonnes pratiques de configuration des paramètres pour Amazon RDS for MySQL, partie 1 : Paramètres liés aux performances.

À partir de la version 8.0.33 de RDS pour MySQL, Amazon RDS utilise le innodb_redo_log_capacity paramètre au lieu du paramètre. innodb_log_file_size La valeur par défaut du innodb_redo_log_capacity paramètre sur Amazon RDS est de 2 Go. Pour plus d'informations, consultez Changements dans MySQL 8.0.30 dans la documentation MySQL.