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.
Activer la journalisation des requêtes pour votre cluster de bases de données Aurora PostgreSQL.
Vous pouvez collecter des informations plus détaillées sur les activités de votre base de données, notamment les requêtes, les requêtes en attente de verrouillage, les points de contrôle et de nombreux autres détails en définissant certains des paramètres répertoriés dans le tableau suivant. Cette rubrique se concentre sur la journalisation des requêtes.
Paramètre | Par défaut | Description |
---|---|---|
log_connections |
– |
Enregistre toutes les connexions réussies. Pour savoir comment utiliser ce paramètre avec |
log_disconnections |
– |
Journalise la fin de chaque session et sa durée. Pour savoir comment utiliser ce paramètre avec |
log_checkpoints |
— |
Non applicable à Aurora PostgreSQL |
log_lock_waits |
– |
Enregistre les longs temps d'attente pour l'acquisition d'un verrou. Ce paramètre n'est pas défini par défaut. |
log_min_duration_sample |
– |
(ms) Définit la durée minimum d'exécution au-delà de laquelle les instructions sont journalisées. La taille de l'échantillon est définie à l'aide du paramètre log_statement_sample_rate . |
log_min_duration_statement |
– |
Toute instruction SQL exécutée au moins pendant la durée spécifiée ou plus est journalisée. Ce paramètre n'est pas défini par défaut. L'activation de ce paramètre peut vous aider à identifier les requêtes non optimisées. |
log_statement |
– |
Définit le type d'instructions enregistrées. Par défaut, ce paramètre n'est pas défini, mais vous pouvez le modifier pour |
log_statement_sample_rate |
– |
Le pourcentage d'instructions dépassant la durée spécifiée dans |
log_statement_stats |
– |
Ecrit les statistiques de performance cumulées dans le journal du serveur. |
Utilisation de la journalisation pour détecter les requêtes lentes
Vous pouvez journaliser les instructions et les requêtes SQL pour favoriser la recherche des requêtes lentes. Vous pouvez activer cette fonctionnalité en modifiant les valeurs des paramètres log_statement
et log_min_duration
, comme indiqué dans cette section. Avant d'activer la journalisation des requêtes pour votre cluster de bases de données Aurora PostgreSQL, vous devez être conscient de l'exposition possible à des mots de passe dans les journaux et de la manière d'atténuer les risques. Pour de plus amples informations, veuillez consulter Atténuation du risque d'exposition des mots de passe lors de l'utilisation de la journalisation de requêtes.
Vous trouverez ci-dessous des informations de référence sur les paramètres log_statement
et log_min_duration
.
log_statement
Ce paramètre indique le type d'instructions SQL qui doivent être envoyées au journal. La valeur par défaut est none
. Si vous remplacez ce paramètre par all
, ddl
ou mod
, veillez à prendre les mesures recommandées pour réduire le risque d'exposition des mots de passe dans les journaux. Pour de plus amples informations, veuillez consulter Atténuation du risque d'exposition des mots de passe lors de l'utilisation de la journalisation de requêtes.
- Tout
-
Journalise toutes les instructions. Ce paramètre est recommandé à des fins de débogage.
- ddl
-
Journalise toutes les instructions DDL (Data Definition Language), telles que CREATE, ALTER, DROP, etc.
- mod
-
Journalise toutes les instructions DDL et les instructions de langage de manipulation des données (DML) telles que INSERT, UPDATE et DELETE, qui modifient les données.
- none
-
Aucune instruction SQL n'est journalisée. Nous recommandons ce paramètre pour éviter le risque d'exposer des mots de passe dans les journaux.
log_min_duration_statement
Toute instruction SQL exécutée au moins pendant la durée spécifiée ou plus est journalisée. Ce paramètre n'est pas défini par défaut. L'activation de ce paramètre peut vous aider à identifier les requêtes non optimisées.
- –1–2147483647
-
Le nombre de millisecondes (ms) d'exécution pendant lequel une instruction est journalisée.
Configurer la journalisation des requêtes
Ces étapes supposent que votre cluster de bases de données Aurora PostgreSQL utilise un groupe de paramètres de cluster de bases de données personnalisé.
-
Définissez le paramètre
log_statement
surall
. L'exemple suivant illustre les informations écrites dans le fichierpostgresql.log
avec cette définition de paramètre.2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: statement: SELECT feedback, s.sentiment,s.confidence FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s ORDER BY s.confidence DESC; 2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: QUERY STATISTICS 2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:DETAIL: ! system usage stats: ! 0.017355 s user, 0.000000 s system, 0.168593 s elapsed ! [0.025146 s user, 0.000000 s system total] ! 36644 kB max resident size ! 0/8 [0/8] filesystem blocks in/out ! 0/733 [0/1364] page faults/reclaims, 0 [0] swaps ! 0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent ! 19/0 [27/0] voluntary/involuntary context switches 2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: SELECT feedback, s.sentiment,s.confidence FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s ORDER BY s.confidence DESC; 2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:ERROR: syntax error at or near "ORDER" at character 1 2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: ORDER BY s.confidence DESC; ----------------------- END OF LOG ----------------------
-
Définissez le paramètre
log_min_duration_statement
. L'exemple suivant illustre les informations écrites dans le fichierpostgresql.log
lorsque le paramètre est défini sur1
.Les requêtes qui dépassent la durée spécifiée dans le paramètre
log_min_duration_statement
sont enregistrées. Vous en trouverez un exemple ci-dessous. Vous pouvez consulter le fichier journal de votre cluster de bases de données Aurora PostgreSQL dans la console Amazon RDS.2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: statement: DROP table comments; 2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: duration: 167.754 ms 2022-10-05 19:08:07 UTC::@:[355]:LOG: checkpoint starting: time 2022-10-05 19:08:08 UTC::@:[355]:LOG: checkpoint complete: wrote 11 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.013 s, sync=0.006 s, total=1.033 s; sync files=8, longest=0.004 s, average=0.001 s; distance=131028 kB, estimate=131028 kB ----------------------- END OF LOG ----------------------
Atténuation du risque d'exposition des mots de passe lors de l'utilisation de la journalisation de requêtes
Nous vous recommandons de garder log_statement
sur none
pour éviter de dévoiler les mots de passe. Si vous avez réglé log_statement
sur all
, ddl
ou mod
, nous vous recommandons de suivre une ou plusieurs des étapes suivantes.
-
Pour le client, chiffrez les informations sensibles. Pour plus d'informations, consultez Options de chiffrement
dans la documentation PostgreSQL. Utilisez les options ENCRYPTED
(etUNENCRYPTED
) des instructionsCREATE
etALTER
. Pour plus d'informations, consultez CREATE USERdans la documentation PostgreSQL. -
Pour votre cluster de bases de données Aurora PostgreSQL, configurez et utilisez l'extension PostgreSQL Auditing (pgAudit). Cette extension supprime les informations sensibles dans les instructions CREATE et ALTER envoyées au journal. Pour de plus amples informations, veuillez consulter Utilisation pgAudit pour enregistrer l'activité de la base de données.
-
Limitez l'accès aux CloudWatch journaux.
-
Utilisez des mécanismes d'authentification plus forts tels que IAM.