Activación de registro de consultas para su clúster de base de datos de Aurora PostgreSQL
Puede recopilar información más detallada sobre las actividades de la base de datos, incluidas las consultas, las consultas en espera de bloqueos, los puntos de control y muchos otros detalles configurando algunos de los parámetros que se enumeran en la tabla siguiente. Este tema se centra en el registro de consultas.
Parámetro | Predeterminado/a | Descripción |
---|---|---|
log_connections | – | Registra cada conexión realizada correctamente. Para obtener información sobre cómo utilizar este parámetro con |
log_disconnections | – | Registra el final de cada sesión y su duración. Para obtener información sobre cómo utilizar este parámetro con |
log_checkpoints | – | No se aplica a Aurora PostgreSQL |
log_lock_waits | – | Registra las esperas de bloqueo largas. Por defecto, este parámetro no está configurado. |
log_min_duration_sample | – | (ms) Establece el tiempo mínimo de ejecución a partir del cual se registra una muestra de instrucciones. El tamaño de la muestra se establece mediante el parámetro log_statement_sample_rate . |
log_min_duration_statement | – | Se registra cualquier instrucción SQL que se ejecute al menos durante el período de tiempo especificado o durante más tiempo. Por defecto, este parámetro no está configurado. Si se activa este parámetro, puede resultar más sencillo encontrar consultas no optimizadas. |
log_statement | – | Define el tipo de declaraciones que se deben registrar. De forma predeterminada, este parámetro no está configurado, pero puede cambiarlo a |
log_statement_sample_rate | – | El porcentaje de sentencias que superan el tiempo especificado en |
log_statement_stats | – | Escribe las estadísticas de rendimiento acumulativas en el registro del servidor. |
Uso del registro para encontrar consultas con un rendimiento lento
Puede registrar instrucciones y consultas SQL para ayudar a encontrar consultas que se den con resultados lentos. Para activar esta función, modifique la configuración de los parámetros log_statement
y log_min_duration
, tal como se describe en esta sección. Antes de activar el registro de consultas para su clúster de base de datos de Aurora PostgreSQL, debe conocer la posible exposición de contraseñas en los registros y cómo mitigar los riesgos. Para obtener más información, consulte Mitigar el riesgo de exposición de contraseñas al utilizar el registro de consultas.
A continuación, encontrará información de referencia sobre los parámetros log_statement
y log_min_duration
.
log_statement
Este parámetro especifica el tipo de instrucciones SQL que deben enviarse al registro. El valor predeterminado es none
. Si cambia este parámetro a all
, ddl
o mod
, asegúrese de aplicar algunas de las medidas recomendadas para reducir el riesgo de exponer las contraseñas en los registros. Para obtener más información, consulte Mitigar el riesgo de exposición de contraseñas al utilizar el registro de consultas.
- all
-
Registra todas las instrucciones. Para depuración, se recomienda esta configuración.
- ddl
-
Registra todas las instrucciones del lenguaje de definición de datos (DDL), como CREATE, ALTER, DROP, etc.
- MOD
-
Registra todas las instrucciones DDL y las instrucciones de lenguaje de manipulación de datos (DML), como INSERT, UPDATE y DELETE, que modifican los datos.
- none
-
No se registra ninguna instrucción SQL. Recomendamos esta configuración para evitar el riesgo de exponer las contraseñas en los registros.
log_min_duration_statement
Se registra cualquier instrucción SQL que se ejecute al menos durante el período de tiempo especificado o durante más tiempo. Por defecto, este parámetro no está configurado. Si se activa este parámetro, puede resultar más sencillo encontrar consultas no optimizadas.
- –1–2147483647
-
El número de milisegundos (ms) de tiempo de ejecución durante los cuales se registra una instrucción.
Para configurar el registro de consultas
Estos pasos suponen que su clúster de base de datos de Aurora PostgreSQL utiliza un grupo de parámetros del clúster de base de datos personalizado.
Establezca el parámetro
log_statement
comoall
. En el siguiente ejemplo se muestra la información que se escribe en el archivo con esta configuración de parámetros.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 ----------------------
Establezca el parámetro
log_min_duration_statement
. En el siguiente ejemplo se muestra la información que se escribe en el archivopostgresql.log
cuando se establece el parámetro en:1
Se registran las consultas que superan la duración especificada en el parámetro
log_min_duration_statement
. A continuación se muestra un ejemplo. Puede ver el archivo de registro de su clúster de base de datos de Aurora PostgreSQL en la consola de 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 ----------------------
Mitigar el riesgo de exposición de contraseñas al utilizar el registro de consultas
Le recomendamos que mantenga log_statement
establecido en none
para evitar exponer las contraseñas. Si establece log_statement
en all
, ddl
o mod
, le recomendamos que siga uno o más de los siguientes pasos.
-
Para el cliente, cifre la información confidencial. Para obtener más información, consulte Encryption Options
en la documentación de PostgreSQL. Utilice las opciones ENCRYPTED
(yUNENCRYPTED
) de las instruccionesCREATE
yALTER
. Para obtener más información, consulte CREATE USERen la documentación de PostgreSQL. Para su clúster de base de datos de Aurora PostgreSQL, configure y utilice la extensión de auditoría de PostgreSQL (pgAudit). Esta extensión redacta la información confidencial de las instrucciones CREATE y ALTER enviadas al registro. Para obtener más información, consulte Uso de pgAudit para registrar la actividad de la base de datos.
-
Restrinja el acceso a los Registros de CloudWatch.
-
Utilice mecanismos de autenticación más sólidos como IAM.