Activación de registro de consultas para su clúster de base de datos de Aurora PostgreSQL - Amazon Aurora

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 para detectar la pérdida de conexiones, consulte Administración de la pérdida de conexión de Aurora PostgreSQL con agrupación .

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_connections para detectar la pérdida de conexiones, consulte Administración de la pérdida de conexión de Aurora PostgreSQL con agrupación .

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 all, ddl o mod para especificar los tipos de instrucciones SQL que desea que se registren. Si especifica algo que no sea none para este parámetro, también debe adoptar medidas adicionales para evitar que las contraseñas aparezcan en los archivos de registro. Para obtener más información, consulte Mitigar el riesgo de exposición de contraseñas al utilizar el registro de consultas.

log_statement_sample_rate

El porcentaje de sentencias que superan el tiempo especificado en log_min_duration_sample se registrarán, expresado como un valor de coma flotante entre 0.0 y 1.0.

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.

  1. Establezca el parámetro log_statement como all. 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 ----------------------
  2. Establezca el parámetro log_min_duration_statement. En el siguiente ejemplo se muestra la información que se escribe en el archivo postgresql.logcuando 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 (y UNENCRYPTED) de las instrucciones CREATE y ALTER. Para obtener más información, consulte CREATE USER en 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.