Come faccio a utilizzare Amazon RDS per attivare la registrazione delle query per PostgreSQL?

5 minuti di lettura
0

Desidero attivare la registrazione delle query per le mie istanze Amazon Relational Database Service (Amazon RDS) per le istanze database PostgreSQL.

Breve descrizione

Per attivare la registrazione delle query su PostgreSQL, modifica i seguenti parametri associati all'istanza database per un gruppo di parametri personalizzato:

Quando modifichi i parametri di log, il volume dell'istanza database potrebbe richiedere più spazio. Laddove lo spazio di archiviazione del volume risultasse pieno, l'istanza database non sarà disponibile. È consigliabile modificare il parametro rds.log_retention_period per eliminare i log non necessari. È inoltre consigliabile utilizzare la metrica FreeStorageSpace di Amazon CloudWatch per monitorare costantemente il consumo dello spazio di archiviazione. Se lo spazio di archiviazione è quasi pieno, puoi aumentarlo in modo che l'istanza database sia sempre disponibile.

Risoluzione

A seconda delle query che vuoi registrare, attiva i parametri log_statement o log_min_duration_statement. Non è necessario modificare entrambi i parametri per attivare la registrazione.

Modifica il parametro log_min_duration_statement per impostare una soglia in millisecondi. Ciò ti consentirà di registrare tutte le query che richiedono più tempo del valore impostato. Ad esempio, supponiamo che per il valore log_min_duration_statement abbia inserito 500. In questo caso, Amazon RDS registrerà tutte le query completate in più di mezzo secondo. Se invece indicassi il valore 2000 per questo parametro, Amazon RDS registrerebbe tutte le query completate in più di due secondi. Se imposterai il valore su -1, il parametro verrà disattivato. Amazon RDS non registra le query in base al tempo necessario per il completamento. Se imposterai il valore del parametro su 0, Amazon RDS le registrerà tutte.

Nota: il parametro log_min_duration_statement non dipende da né interferisce con il parametro log_statement.

Modifica il parametro log_statement per controllare le istruzioni SQL che vengono registrate. Il valore predefinito è none (nessuno). Puoi modificare i seguenti valori per questo parametro:

  • ddl registra tutte le istruzioni DDL (Data Definition Language), come CREATE, ALTER e DROP.
  • mod registra tutte le istruzioni DDL e DML (Data Modification Language), come INSERT, UPDATE e DELETE.
  • all registra tutte le query (indipendentemente dal tempo di esecuzione).

Nota: indipendentemente dal valore impostato per i parametri log_statement e log_min_duration_statement, le query verranno inserite nel log una sola volta.

Attiva la registrazione delle query su PostgreSQL

Completa i passaggi seguenti per attivare la registrazione delle query su PostgreSQL:

Nota: nell'esempio seguente che mostra le modifiche ai parametri vengono registrate tutte le query che richiedono più di un secondo e anche tutte le modifiche dello schema.

  1. Apri la console Amazon RDS e scegli Database dal pannello di navigazione.
  2. Seleziona l'istanza database per la quale vuoi registrare le query.
  3. Scegli la visualizzazione Configurazione per accedere ai dettagli dell'istanza database e consultare il gruppo di parametri a essa associato.
    Nota: quando crei un'istanza database, quest'ultima viene associata al gruppo di parametri database predefinito. Poiché non puoi modificare questo gruppo, creane uno personalizzato per modificare il gruppo di parametri. Quando modifichi il gruppo di parametri dell'istanza database (da predefinito a personalizzato) devi riavviare l'istanza database.
  4. Scegli Gruppo di parametri dal riquadro Configurazione dell'istanza, quindi scegli il gruppo di parametri che vuoi modificare.
  5. Scegli Modifica parametro.
  6. Nel campo Filtra parametri seleziona il parametro che vuoi modificare. Ad esempio:
    Inserisci log_statement e modifica il valore su ddl.
    Inserisci log_min_duration_statement e imposta il valore su 1000 (questo valore è espresso in millisecondi ed equivale a un secondo).
  7. Scegli Salva modifiche.
    Nota: questi parametri sono dinamici. Se l'istanza database possiede un gruppo di parametri personalizzato, non sarà necessario riavviarla perché questi parametri abbiano effetto.

Conferma che la registrazione è attiva

Dopo aver salvato il gruppo di parametri associato all'istanza database, lo stato risulterà come applying (applicazione in corso). Dopo aver impostato il gruppo di parametri nell'istanza database, lo stato risulterà come in-sync (in sincronizzazione). Per confermare che la registrazione è attiva, connettiti all'istanza database. In questo esempio, verifica che il log includa tutte le istruzioni DDL e tutte le query che richiedono più di un secondo. Quindi, esegui comandi simili ai seguenti:

CREATE TABLE article(article_code bigint, created_at timestamp with time zone, summary text, content text) ;
SELECT pg_sleep(2);
SELECT generate_series(1,10000000) as test;

Visualizza i log delle query

Completa i passaggi seguenti per visualizzare i log:

1.    Apri la console Amazon RDS.

2.    Nel pannello di navigazione, scegli Database.

3.    Scegli la tua istanza database, quindi seleziona la vista Log.

4.    Nella scheda Log ed eventi scegli il log più recente, quindi seleziona Visualizza log per consultarne il contenuto. Ad esempio:

2018-12-19 11:05:32 UTC:172.31.xx.yyy(35708):user@awspostgres:[27174]:LOG: statement: CREATE TABLE article(article_code bigint, created_at timestamp with time zone, summary text, content text) ;

2018-12-19 11:10:36 UTC:172.31.xx.yyy(35708):user@awspostgres:[27174]:LOG: duration: 2010.247 ms statement: select pg_sleep(2);

2018-12-19 11:11:25 UTC:172.31.xx.yyy(35708):user@awspostgres:[27174]:LOG: duration: 2159.838 ms statement: SELECT generate_series(1,10000000) as test;

Nota: assicurati di non impostare i parametri precedenti su valori che generano un numero eccessivo di registrazioni. Ad esempio, impostando log_statement su all o log_min_duration_statement su 0 verrà generata una gran quantità di informazioni sulla registrazione. Questo genererebbe un consumo eccessivo dello spazio di archiviazione. Se vuoi utilizzare questi valori, assicurati che sia per un breve periodo e unicamente ai fini della risoluzione di un problema. Durante l'operazione monitora attentamente lo spazio di archiviazione.

Informazioni correlate

File di log del database RDS per PostgreSQL