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.
Activation de la journalisation des requêtes pour votre cluster de SQL base de données Aurora Postgre RDS
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 | 1 | Enregistre les points de vérification. |
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 SQL instruction exécutée au moins pendant la durée spécifiée ou plus est enregistré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 remplacer par |
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 enregistrer SQL des instructions et des requêtes pour identifier les 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 SQL base de données Aurora Postgre, RDS vous devez être conscient de la possible exposition 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'SQLinstructions 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
-
Enregistre toutes les instructions du langage de définition des données (DDL) CREATEALTER, telles queDROP,,, etc.
- mod
-
Enregistre toutes les DDL instructions et instructions du langage de manipulation des données (DML)INSERT, telles queUPDATE, etDELETE, qui modifient les données.
- none
-
Aucune SQL déclaration n'est enregistrée. Nous recommandons ce paramètre pour éviter le risque d'exposer des mots de passe dans les journaux.
log_min_duration_statement
Toute SQL instruction exécutée au moins pendant la durée spécifiée ou plus est enregistré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 SQL base de données Aurora Postgre utilise un groupe de paramètres de cluster de base 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 SQL base de données Aurora Postgre RDS dans la console AmazonRDS.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 la section Options de chiffrement
dans la SQL documentation Postgre. Utilisez les options ENCRYPTED
(etUNENCRYPTED
) des instructionsCREATE
etALTER
. Pour plus d'informations, consultez CREATEUSERla SQL documentation Postgre. Pour votre , configurez et utilisez l'extension Postgre SQL Auditing ()pgAudit. Cette extension expédie les informations sensibles CREATE et les ALTER instructions 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 puissants tels queIAM.