Monitoraggio di PostgreSQL

È possibile monitorare le istanze di ` PostgreSQL ` utilizzando il sensore ` PostgreSQL ` di ` Instana `. Il sensore « PostgreSQL » viene distribuito e installato automaticamente dopo l'installazione dell'agente « Instana ». È possibile visualizzare le metriche relative alle istanze di PostgreSQL nell'interfaccia utente di Instana.

Informazioni sul supporto

Per assicurarti che il sensore PostgreSQL sia compatibile con la tua configurazione attuale, consulta le seguenti sezioni delle informazioni di supporto:

Sistemi operativi supportati

I sistemi operativi supportati dal sensore PostgreSQL sono in linea con i requisiti dell'agente host, che possono essere verificati nella sezione "Sistemi operativi supportati" di ciascun agente host, ad esempio " Sistemi operativi supportati per Unix ".

Versioni supportate e politica di assistenza

Il sensore supporta le seguenti versioni di PostgreSQL:

  • PostgreSQL 8.0.x all'indirizzo 8.4.x
  • PostgreSQL 9.0.x all'indirizzo 9.6.x
  • PostgreSQL 10.x
  • PostgreSQL 11.x
  • PostgreSQL 12.x
  • PostgreSQL 13.x
  • PostgreSQL 14.x
  • PostgreSQL 15.x
  • PostgreSQL 16.6
  • PostgreSQL 17.2

La tabella seguente riporta l'ultima versione supportata e la politica di assistenza:

Tecnologia Politica di assistenza Versione con tecnologia all'avanguardia Ultima versione supportata
PostgreSQL 45 giorni 18.4 18.4

Per ulteriori informazioni sulla politica di assistenza, consultare la sezione "Strategia di assistenza per i sensori".

Configurazione

Abilita la raccolta dei dati statistici

La raccolta delle statistiche è controllata dai parametri di configurazione impostati nel file postgresql.conf , che viene creato durante la configurazione di postgresql. Per monitorare la raccolta dei dati statistici, impostare i seguenti parametri su on (sono yesaccettati 1 anche, true e ).

Per individuare la posizione del tuo postgresql.conf file, esegui la seguente query SQL:

SHOW config_file;

Questa query restituisce il percorso completo del postgresql.conf file sul tuo server PostgreSQL.

La tabella seguente elenca i parametri di configurazione:

Parametro Descrizione
track_activities = on Controlla il comando corrente eseguito da qualsiasi processo del server.
track_counts = on Monitora le statistiche cumulative raccolte relative agli accessi alle tabelle e agli indici.
track_io_timing = on Monitora i tempi di lettura e scrittura dei blocchi.

Per ulteriori informazioni sulla configurazione della raccolta dei dati statistici, consultare la documentazione di PostgreSQL.

Abilita la raccolta delle statistiche in modo permanente

In alcuni ambienti, i file di configurazione di PostgreSQL non vengono mantenuti dopo il riavvio. Le modifiche apportate direttamente a postgresql.conf potrebbero non essere mantenute dopo il riavvio del sistema. Per garantire che l'impostazione relativa alla raccolta dei dati statistici rimanga attiva anche dopo il riavvio, si consiglia di utilizzare il ALTER SYSTEM comando. Questo comando salva la configurazione nel postgresql.auto.conf file, che si trova nella directory dei dati di PostgreSQL, e mantiene la configurazione anche se si utilizza un volume persistente.

Utilizza il seguente comando per abilitare la raccolta delle statistiche:

  • ALTER SYSTEM SET track_activities = 'on';
  • ALTER SYSTEM SET track_counts = 'on';
  • ALTER SYSTEM SET track_io_timing = 'on';

Esegui il SELECT pg_reload_conf(); comando per ricaricare la configurazione. Verificare l'impostazione eseguendo i seguenti comandi:

  • SHOW track_activities;
  • SHOW track_counts;
  • SHOW track_io_timing;

È inoltre possibile controllare il postgresql.auto.conf file per verificare le modifiche di configurazione applicate utilizzando il ALTER SYSTEM comando. Questo file contiene la configurazione aggiornata.

Nota: non modificare postgresql.auto.conf il file manualmente. Utilizza sempre il ALTER SYSTEM comando, poiché PostgreSQL gestisce automaticamente questo file e sovrascrive eventuali modifiche apportate manualmente.

Per ulteriori informazioni sull'uso ALTER SYSTEM del comando di configurazione, consultare la documentazione di PostgreSQL.

Configurazione del nome del cluster

Per il monitoraggio del cluster di PostgreSQL, impostare il cluster_name parametro nel postgresql.conf file. Questa configurazione è necessaria sia per il nodo master che per i nodi replica al fine di garantire il corretto riconoscimento e monitoraggio del cluster.

Imposta lo stesso nome di cluster per tutti i nodi (master e repliche) del tuo cluster PostgreSQL :

cluster_name = 'PostgreSQL_cluster'

Il cluster_name parametro aiuta Instana a identificare e raggruppare le istanze di PostgreSQL che appartengono allo stesso cluster. Assicurarsi che siano soddisfatti i seguenti requisiti:

  • Il nome del cluster è identico su tutti i nodi master e replica.
  • Il nome del cluster viene impostato prima dell'avvio delle istanze di PostgreSQL.
  • Se si modifica il nome del cluster, è necessario riavviare il servizio " PostgreSQL " affinché le modifiche abbiano effetto.

Per ulteriori informazioni sul parametro cluster_name , consultare la documentazione di PostgreSQL.

Abilita la raccolta delle statistiche per i container rootless di Podman

Per abilitare la raccolta delle statistiche per i container rootless Podman di PostgreSQL, è necessario abilitare i parametri nel postgresql.conf file e mappare la porta di ascolto del server PostgreSQL alla stessa porta sull'host in cui è ospitato il container rootless Podman. È necessario effettuare il mapping delle porte per stabilire una connessione e raccogliere le metriche richieste. Infine, imposta il valore della chiave ` isRootlessPodman ` su `true` nel file di configurazione dell'agente.

Crea un utente di monitoraggio

L'autorizzazione minima per il monitoraggio della raccolta di metrica è SELECT sul database pg_stat_database . Il seguente esempio illustra come creare un utente per le necessità dell'agente:

create user <USERNAME> with password <PASSWORD>;
grant SELECT ON pg_stat_database to <USERNAME>;
 

Sensore

Per configurare l'autenticazione richiesta quando il sensore si connette a PostgreSQL, completare i seguenti passaggi:

  1. Configurare le credenziali utente abilitando la sezione di configurazione nel file di configurazione dell'agente <agent_install_dir>/etc/instana/configuration.yaml.

  2. Immettere un nome utente e una password.

    La parola d'ordine è una parola d'ordine in testo chiaro.

Per l'autenticazione basata su password, il meccanismo di autenticazione dell'utente PostgreSQL corrispondente deve essere md5, scram-sha-256 (versione 10 e successive) o una password. Per ulteriori informazioni, consultare le sezioni " Autenticazione tramite password" e "Autenticazione client" nella documentazione di PostgreSQL.

Per stabilire una connessione tra il sensore e PostgreSQL, PostgreSQL deve contenere un database con un nome identico al nome utente:

com.instana.plugin.postgresql:
  user: '<USERNAME>'
  password: '<PASSWORD>'
  database: '' # by default PostgreSQL will use 'user' as database to connect to.
  poll_rate: 10 #Values are in seconds. Default Value 1 Sec.
  isRootlessPodman: true/false # Optional. Use this field only if you are running postgres inside a rootless podman container. Default value is false.
 
Nota: se l'intervallo di polling non viene specificato, il valore predefinito è 1 secondo.

Il campo Database viene utilizzato solo per l'autenticazione. L'agente legge automaticamente le modifiche apportate al file di <agent_install_dir>/etc/instana/configuration.yamlconfigurazione. Pertanto, le modifiche a questo file di configurazione vengono ricaricate a sistema acceso (non è necessario riavviare l'agent).

Per raccogliere le metriche del database, è necessario assegnare user il CONNECT privilegio specificato per tutti i database presenti nell'istanza PostgreSQL . Il seguente esempio mostra come concedere il privilegio CONNECT a un utente:

GRANT CONNECT ON DATABASE <DATABASE_NAME> TO <USERNAME>;
 

Raccolta di metriche

Per visualizzare le metriche, completare la seguente procedura:

  1. Seleziona "Infrastruttura" nella barra laterale dell'interfaccia utente di Instana.
  2. Fare clic su uno specifico host monitorato per visualizzare il dashboard host con tutte le metriche raccolte e i processi monitorati.

Dati di configurazione

Vedi i seguenti dati di configurazione raccolti dall'istanza Postgres in esecuzione:

  • ID processo
  • Ora di inizio
  • Porta
  • Versione
  • Ruolo
  • Numero massimo di connessioni

Metriche di prestazioni

Di seguito sono riportate le metriche delle prestazioni raccolte per ciascuna istanza Postgres :

PostgreSQL server

La tabella seguente elenca le metriche raccolte dal server PostgreSQL :

Metrica Descrizione Granularità
Transazioni con commit totali Numero di transazioni di cui è stato eseguito il commit in tutti i database. 1 secondo
Numero totale di connessioni attive Numero di connessioni attive in tutti i database. 1 secondo
Utilizzo della connessione Numero di collegamenti attivi come frazione del numero massimo di collegamenti consentiti. 1 secondo
Ritardo replica (disponibile solo per repliche) Il ritardo di replica tra il server primario e il server di replica viene visualizzato in byte e secondi. 1 secondo

Database

La tabella seguente elenca le metriche raccolte dai database:

Metrica Descrizione Granularità
Transazioni di cui è stato eseguito il commit Numero di transazioni di cui è stato eseguito il commit in questo database. 1 secondo
Transazioni di cui è stato eseguito il rollback Numero di transazioni sottoposte a rollback in questo database. 1 secondo
Rapporto riscontri cache La percentuale di blocchi del disco trovati nella cache del buffer in modo che non sia necessaria una lettura. 1 secondo
Conflitti In Standby Numero di query annullate a causa di conflitti con il recupero in questo database. 1 secondo
Tuple restituite Numero di righe attive recuperate da scansioni sequenziali più il numero di voci di indice restituite dalle scansioni indice in questo database. 1 secondo
Tuple recuperate Numero di righe attive recuperate dalle scansioni indice in questo database. 1 secondo
Dimensioni del database Spazio su disco utilizzato da questo database. 1 secondo
Connessioni attive Numero di connessioni attive a questo database. 1 secondo

A livello di cluster

Le tabelle seguenti elencano le metriche raccolte da un cluster di PostgreSQL.

Dati di configurazione

La tabella seguente illustra i dettagli di configurazione del cluster PostgreSQL :

Parametro Descrizione
Nome del cluster Nome del cluster " PostgreSQL "
Nodi monitorati

La dashboard del cluster mostra una tabella contenente tutti i nodi PostgreSQL che fanno parte del cluster. Questa tabella offre una rapida panoramica di tutti i nodi del cluster, facilitando l'identificazione della topologia del cluster e il monitoraggio dello stato di salute dei singoli nodes.For ogni nodo vengono visualizzate le seguenti informazioni:

Parametro Descrizione
Nome nodo Nome dell'istanza del database di PostgreSQL
Ruolo Ruolo del nodo (master o slave)
Versione PostgreSQL versione in esecuzione sul nodo
Integrità Stato di salute del nodo
Metriche di prestazioni

La tabella seguente elenca le metriche raccolte dal cluster PostgreSQL :

Metrica Descrizione Granularità
Numero di database Numero di database nel cluster di PostgreSQL 1 secondo
Numero replica Numero di nodi di replica nel cluster di PostgreSQL 1 secondo
Dimensione totale del database Dimensione totale di tutti i database nel cluster PostgreSQL 1 secondo
Velocità transazione Numero di transazioni confermate e annullate al secondo su tutti i nodi del cluster 1 secondo
Numero totale di connessioni attive Numero totale di connessioni attive su tutti i nodi del cluster 1 secondo

Indicatori sanitari

Ogni sensore ha una knowledge base curata delle firme di integrità che vengono valutate continuamente rispetto alla metrica in ingresso e vengono utilizzate per generare problemi o incidenti che dipendono dall'impatto dell'utente.

Gli eventi predefiniti generano problemi o incidenti in base al mancato rispetto delle condizioni di integrità delle entità, mentre gli eventi personalizzati generano problemi o incidenti in base alle soglie di una singola metrica di una determinata entità.

Per ulteriori informazioni sugli eventi integrati per il sensore PostgreSQL , vedi il Riferimento agli eventi integrati.

Risoluzione dei problemi

Utilizza queste voci di risoluzione dei problemi per risolvere i problemi correlati a PostgreSQL. Sulla dashboard di PostgreSQL all'indirizzo Instana, nonché nei log, viene visualizzato un messaggio di errore che riporta il tipo di problema e una breve spiegazione di cosa è andato storto.

PostgreSQL statistiche non attivate

Tipo di problema di monitoraggio: postgresql_stats_not_enabled

Il server PostgreSQL è stato rilevato, ma la raccolta delle statistiche non è abilitata. È necessario abilitare la raccolta delle statistiche. Per ulteriori informazioni, consultare la sezione Abilita raccolta statistiche .

PostgreSQL Autenticazione non riuscita

Tipo di problema di monitoraggio: postgresql_authentication_failed

Autenticazione PostgreSQL non riuscita. Per creare un utente di monitoraggio e configurarlo, fare riferimento alla sezione Crea un utente di monitoraggio .

PostgreSQL Connessione non riuscita

Tipo di problema di monitoraggio: postgresql_connection_failed

L'agente non riesce a stabilire una connessione al server PostgreSQL . È necessario verificare che la connessione sia stata stabilita tra l'agent e il sensore.