Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Attivazione della registrazione delle query per il cluster database Aurora PostgreSQL
È possibile raccogliere informazioni più approfondite sulle attività dei database, tra cui query, query in attesa di blocchi, checkpoint e molti altri dettagli impostando alcuni parametri elencati nella tabella seguente. Questo argomento illustra la registrazione delle query.
Parametro | Predefinito | Descrizione |
---|---|---|
log_connections |
– |
Registra ogni connessione riuscita. Per informazioni su come utilizzare questo parametro con |
log_disconnections |
– |
Registra il momento in cui termina ciascuna sessione e la relativa durata. Per informazioni su come utilizzare questo parametro con |
log_checkpoints |
Non applicabile per Aurora PostgreSQL |
|
log_lock_waits |
– |
Registra lunghe attese di lock. Per impostazione predefinita, questo parametro non è impostato. |
log_min_duration_sample |
– |
Imposta il tempo (ms) minimo di esecuzione oltre il quale viene registrato un campione di istruzioni. La dimensione del campione viene impostata utilizzando il parametro log_statement_sample_rate . |
log_min_duration_statement |
– |
Viene registrata qualsiasi istruzione SQL che viene eseguita per il periodo specificato o per più tempo. Per impostazione predefinita, questo parametro non è impostato. L'attivazione di questo parametro può aiutarti a trovare query non ottimizzate. |
log_statement |
– |
Imposta il tipo di istruzioni registrate. Per impostazione predefinita, questo parametro non è impostato, ma puoi modificarlo in |
log_statement_sample_rate |
– |
La percentuale di istruzioni che superano il tempo specificato in |
log_statement_stats |
– |
Scrive le statistiche cumulative sulla prestazione nel registro del server. |
Utilizzo della registrazione per trovare query lente
È possibile registrare istruzioni e query SQL per trovare le query con prestazioni lente. Puoi attivare questa funzionalità modificando le impostazioni nei parametri log_statement
e log_min_duration
come descritto in questa sezione. Prima di attivare la registrazione delle query per il cluster database Aurora PostgreSQL, è necessario essere consapevoli della possibile esposizione delle password nei registri e di come mitigare i rischi. Per ulteriori informazioni, consulta Riduzione del rischio di esposizione delle password quando si utilizza la registrazione delle query.
Di seguito sono disponibili informazioni di riferimento sui parametri log_statement
e log_min_duration
.
log_statement
Questo parametro specifica il tipo di istruzioni SQL che devono essere inviate al registro. Il valore predefinito è none
. Se modifichi questo parametro in all
, ddl
o mod
, esegui le azioni consigliate per ridurre il rischio di esporre le password nei log. Per ulteriori informazioni, consulta Riduzione del rischio di esposizione delle password quando si utilizza la registrazione delle query.
- tutto
-
Registra tutte le istruzioni. Questa impostazione è consigliata per il debug.
- ddl
-
Registra tutte le istruzioni DDL (Data Definition Language), come CREATE, ALTER, DROP e così via.
- mod
-
Registra tutte le istruzioni DDL e DML (Data Manipulation Language), come INSERT, UPDATE e DELETE, che modificano i dati.
- nessuno
-
Nessuna istruzione SQL viene registrata. Consigliamo questa impostazione per evitare il rischio di esporre le password nei registri.
log_min_duration_statement
Viene registrata qualsiasi istruzione SQL che viene eseguita per il periodo specificato o per più tempo. Per impostazione predefinita, questo parametro non è impostato. L'attivazione di questo parametro può aiutarti a trovare query non ottimizzate.
- –1–2147483647
-
Il numero di millisecondi (ms) di runtime durante il quale un'istruzione viene registrata.
Per configurare la registrazione delle query
Questi passaggi presuppongono che il cluster database Aurora PostgreSQL utilizzi un gruppo di parametri cluster database personalizzato.
-
Imposta il parametro
log_statement
suall
. L'esempio seguente mostra le informazioni scritte nel filepostgresql.log
con questa impostazione del parametro.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 ----------------------
-
Impostare il parametro
log_min_duration_statement
. L'esempio seguente mostra le informazioni scritte nel filepostgresql.log
quando il parametro è impostato su1
.Le query che superano la durata specificata nel parametro
log_min_duration_statement
vengono registrate. Di seguito viene riportato un esempio. Puoi visualizzare il file di log per il cluster database Aurora PostgreSQL nella 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 ----------------------
Riduzione del rischio di esposizione delle password quando si utilizza la registrazione delle query
Ti consigliamo di mantenere log_statement
impostato su none
per evitare di esporre le password. Se imposti log_statement
su all
, ddl
o mod
, ti consigliamo di eseguire una o più delle seguenti operazioni.
-
Per il client, applica la crittografia delle informazioni sensibili. Per ulteriori informazioni, consulta Encryption Options
(Opzioni di crittografia) nella documentazione di PostgreSQL. Usa le opzioni ENCRYPTED
(eUNENCRYPTED
) delle istruzioniCREATE
eALTER
. Per ulteriori informazioni, consulta CREATE USERnella documentazione di PostgreSQL. -
Per il cluster database Aurora PostgreSQL, configura e usa l'estensione di audit PostgreSQL (pgAudit). Questa estensione oscura le informazioni sensibili nelle istruzioni CREATE e ALTER inviate al registro. Per ulteriori informazioni, consulta Utilizzo pgAudit per registrare l'attività del database.
-
Limita l'accesso ai log. CloudWatch
-
Utilizza meccanismi di autenticazione più efficaci come IAM.