PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Monitoraggio della distribuzione di Percona per PostgreSQL - Metriche chiave

Il monitoraggio è la base per sapere se i tuoi sistemi funzionano correttamente e ti consente di risolvere o prevenire qualsiasi problema prima che influisca sulla tua attività. Anche in una tecnologia robusta come PostgreSQL, il monitoraggio è d'obbligo e l'obiettivo principale è sapere cosa monitorare, altrimenti potrebbe non avere senso o non essere utile nel caso in cui sia necessario utilizzarlo. In questo blog vedremo cos'è la distribuzione Percona per PostgreSQL e quali metriche chiave monitorare su di essa.

Distribuzione Percona per PostgreSQL

È una raccolta di strumenti per assisterti nella gestione del tuo sistema di database PostgreSQL. Installa PostgreSQL e lo integra con una selezione di estensioni che consentono di risolvere in modo efficiente compiti pratici essenziali, tra cui:

  • pg_repack :Ricostruisce gli oggetti del database PostgreSQL.
  • pgaudit :Fornisce una registrazione dettagliata della sessione o dell'audit degli oggetti tramite la funzione di registrazione standard di PostgreSQL.
  • pgBackRest :È una soluzione di backup e ripristino per PostgreSQL.
  • Patroni :È una soluzione ad alta disponibilità per PostgreSQL.
  • pg_stat_monitor :raccoglie e aggrega le statistiche per PostgreSQL e fornisce informazioni sull'istogramma.
  • Una raccolta di estensioni contrib PostgreSQL aggiuntive.

Anche la distribuzione Percona per PostgreSQL viene fornita con la libreria libpq. Contiene una serie di funzioni di libreria che consentono ai programmi client di passare query al server di backend PostgreSQL e di ricevere i risultati di queste query.

Cosa monitorare nella distribuzione Percona per PostgreSQL

Durante il monitoraggio di un cluster di database, ci sono due cose principali da tenere in considerazione:il sistema operativo e il database stesso. Dovrai definire quali metriche monitorare da entrambi i lati e come lo farai.

Tieni presente che quando una delle tue metriche è interessata, può interessare anche altre, rendendo più complessa la risoluzione del problema. Avere un buon sistema di monitoraggio e avviso è importante per rendere questo compito il più semplice possibile.

Monitoraggio del sistema operativo

Una cosa importante è monitorare il comportamento del sistema operativo. Vediamo alcuni punti da verificare qui.

Utilizzo CPU

Una percentuale eccessiva di utilizzo della CPU potrebbe essere un problema se non è un comportamento normale. In questo caso, è importante identificare i processi che stanno generando questo problema. Se il problema è il processo del database, dovrai controllare cosa sta succedendo all'interno del database.

Memoria RAM o utilizzo SWAP

Se vedi un valore alto per questa metrica e non è cambiato nulla nel tuo sistema, probabilmente devi controllare la configurazione del tuo database. Parametri come shared_buffers e work_mem possono influire direttamente su questo dato che definiscono la quantità di memoria da utilizzare per il database PostgreSQL.

Utilizzo del disco

Un aumento anomalo dell'uso dello spazio su disco o un consumo eccessivo di accesso al disco sono cose importanti da monitorare poiché potresti avere un numero elevato di errori registrati nel file di registro di PostgreSQL o una configurazione della cache errata che potrebbe generare un consumo importante di accesso al disco invece di utilizzare la memoria per elaborare le query.

Carico medio

È correlato ai tre punti sopra menzionati. Un carico medio elevato potrebbe essere generato da un utilizzo eccessivo di CPU, RAM o disco.

Rete

Un problema di rete può interessare tutti i sistemi poiché l'applicazione non può connettersi (o connettere pacchetti persi) al database, quindi questa è una metrica importante da monitorare. Puoi monitorare la latenza o la perdita di pacchetti e il problema principale potrebbe essere una saturazione della rete, un problema hardware o semplicemente una cattiva configurazione di rete.

Monitoraggio del database PostgreSQL

Il monitoraggio del tuo database PostgreSQL non è solo importante per vedere se stai riscontrando un problema, ma anche per sapere se hai bisogno di cambiare qualcosa per migliorare le prestazioni del tuo database, questa è probabilmente una delle cose più importanti da monitorare in un database. Vediamo alcune metriche importanti per questo.

Monitoraggio query

Per impostazione predefinita, PostgreSQL è configurato pensando alla compatibilità e alla stabilità, quindi è necessario conoscere le query e il suo schema e configurare i database in base al traffico che hai. Qui puoi utilizzare il comando EXPLAIN per controllare il piano di query per una query specifica e puoi anche monitorare la quantità di SELECT, INSERT, UPDATE o DELETE su ciascun nodo. Se hai una query lunga o un numero elevato di query in esecuzione contemporaneamente, potrebbe essere un problema per tutti i sistemi.

Monitoraggio delle sessioni attive

Dovresti anche monitorare il numero di sessioni attive. Se sei vicino al limite, devi controllare se qualcosa non va o se hai solo bisogno di incrementare il valore max_connections. La differenza nel numero può essere un aumento o una diminuzione delle connessioni. Il cattivo utilizzo del pool di connessioni, il blocco o un problema di rete sono i problemi più comuni legati al numero di connessioni.

Blocchi database

Se hai una query in attesa di un'altra query, devi controllare se quell'altra query è un processo normale o qualcosa di nuovo. In alcuni casi, se qualcuno sta effettuando un aggiornamento su un grande tavolo, ad esempio, questa azione può influire sul normale comportamento del tuo database, generando un numero elevato di blocchi.

Monitoraggio della replica

Le metriche chiave da monitorare per la replica sono il ritardo e lo stato di replica. I problemi più comuni sono problemi di rete, problemi di risorse hardware o problemi di dimensionamento. Se stai affrontando un problema di replica, dovrai conoscerlo al più presto poiché dovrai risolverlo per garantire l'ambiente ad alta disponibilità.

Backup di monitoraggio

Evitare la perdita di dati è una delle attività DBA di base, quindi non devi solo eseguire il backup, dovresti sapere se il backup è stato completato e se è utilizzabile. Di solito quest'ultimo punto non viene preso in considerazione, ma è probabilmente il controllo più importante in un processo di backup.

Monitoraggio dei registri del database

Dovresti monitorare il registro del tuo database per errori come FATAL o deadlock, o anche per errori comuni come problemi di autenticazione o query di lunga durata. La maggior parte degli errori viene scritta nel file di registro con informazioni utili dettagliate per risolverlo.

Dashboard

La visibilità è utile per il rilevamento rapido dei problemi. È sicuramente un compito più dispendioso in termini di tempo leggere l'output di un comando piuttosto che guardare un grafico. Quindi, l'utilizzo di una dashboard potrebbe fare la differenza tra il rilevamento di un problema ora o nei prossimi 15 minuti, sicuramente quel tempo potrebbe essere davvero importante per l'azienda.

Avvisi

Il solo monitoraggio di un sistema non ha senso se non ricevi una notifica su ogni problema. Senza un sistema di avviso, dovresti andare allo strumento di monitoraggio per vedere se tutto va bene e potrebbe essere possibile che tu abbia avuto un grosso problema da molte ore.

Monitoraggio del database PostgreSQL con ClusterControl

È davvero difficile trovare uno strumento per monitorare tutte le metriche necessarie per PostgreSQL, in generale sarà necessario utilizzarne più di uno e anche alcuni scripting dovranno essere effettuati. Un modo per centralizzare l'attività di monitoraggio e avviso è utilizzare ClusterControl, che fornisce funzionalità come gestione del backup, monitoraggio e avvisi, distribuzione e ridimensionamento, ripristino automatico e funzionalità più importanti per aiutare a gestire i database. Tutte queste funzionalità sullo stesso sistema.

ClusterControl ha un set predefinito di dashboard per te, per analizzare alcune delle metriche più comuni.

Ti permette di personalizzare i grafici disponibili nel cluster e puoi abilitare il monitoraggio basato sugli agenti per generare dashboard più dettagliati.

Puoi anche creare avvisi, che ti informano sugli eventi nel tuo cluster, o integrarsi con diversi servizi come PagerDuty o Slack.

Inoltre, puoi controllare la sezione Query Monitor, dove puoi trovare il le query principali, le query in esecuzione, i valori anomali delle query e le statistiche delle query.

Con queste funzionalità, puoi vedere come sta andando il tuo database PostgreSQL.

Per la gestione del backup, ClusterControl lo centralizza per proteggere, proteggere e recuperare i tuoi dati e, con la funzione di backup di verifica, puoi confermare se il backup è pronto.

Questo processo di backup di verifica ripristinerà il backup in un host autonomo separato, quindi puoi assicurarti che il backup funzioni.

Monitoraggio con la riga di comando ClusterControl

Per lo scripting e l'automazione delle attività, o anche se preferisci semplicemente la riga di comando, ClusterControl ha lo strumento s9s. È uno strumento da riga di comando per la gestione del cluster di database.

Elenco cluster

Elenco nodi

Conclusione

Il monitoraggio è assolutamente necessario e il modo migliore per farlo dipende dall'infrastruttura e dal sistema stesso. In questo blog, ti presentiamo Percona Distribution per PostgreSQL e abbiamo menzionato alcune metriche importanti da monitorare nel tuo ambiente PostgreSQL. Ti abbiamo anche mostrato come ClusterControl è utile per questo compito.