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

Suggerimenti per la gestione remota di PostgreSQL

Una vasta gamma di risorse è disponibile per te quando gestisci i tuoi cluster di database PostgreSQL in remoto. Con gli strumenti giusti gestirlo da remoto non è un compito difficile.

L'utilizzo di servizi completamente gestiti per PostgreSQL offre un'osservabilità in grado di fornire la maggior parte di ciò di cui hai bisogno per gestire il tuo database. Ti forniscono un sistema di avviso, metriche, automazione di attività di amministrazione del sistema che richiedono tempo, gestione dei backup, ecc.

Quando si esegue in locale è una sfida diversa. Questo è ciò di cui parleremo in questo blog. Condivideremo suggerimenti sulla gestione remota del cluster di database PostgreSQL.

Osservabilità del database

Il termine osservabilità potrebbe non essere familiare ad alcune persone. L'osservabilità non è un ricordo del passato, è la tendenza nella gestione dei database (o anche delle applicazioni PaaS o SaaS). L'osservabilità riguarda il monitoraggio, ma in una certa misura copre la capacità di determinare lo stato di salute e prestazioni del database e ha una capacità proattiva e reattiva che decide in base a un determinato stato dei nodi del database.

Un buon esempio è in ClusterControl. Quando ClusterControl rileva avvisi in base ai controlli su una determinata configurazione, invierà avvisi ai canali forniti. Questi possono essere impostati e personalizzati dal sistema o dall'amministratore del database.

Se il database primario è stato degradato e non è in grado di elaborare le transazioni (in lettura o scrittura), ClusterControl reagirà di conseguenza e inizierà ad attivare un failover in modo che un nuovo nodo possa elaborare la causa ingiustificata dell'eccesso di traffico. Mentre ciò si verifica, ClusterControl può notificare agli ingegneri cosa è successo attivando allarmi e inviando avvisi. I registri sono inoltre centralizzati e le attività di indagine e diagnostica possono essere eseguite in un'unica posizione, consentendoti di fornire un risultato rapido.

Sebbene questo potrebbe non significare che ClusterControl sia un pacchetto completo per l'osservabilità, è uno dei potenti strumenti. Esistono strumenti più architettati anche da gestire soprattutto in ambienti containerizzati come Rancher mischiato a Datadog.

In che modo questo ti aiuta a gestire in remoto?

Uno dei principi base della gestione è la tranquillità. Se si verifica un problema, gli strumenti che stai utilizzando per l'osservabilità devono essere in grado di avvisarti via e-mail, inviandoti SMS o tramite applicazioni cercapersone (come PagerDuty) per avvisarti dello stato del tuo cluster di database,

oppure puoi ricevere avvisi come quelli di seguito...

È molto importante che ti avvisi quando si verificano modifiche. Puoi quindi migliorare e analizzare lo stato della tua infrastruttura ed evitare qualsiasi impatto che possa influire sull'attività.

Automazione database

È molto importante che la maggior parte delle attività che richiedono tempo siano automatizzate. L'automazione consente di ridurre la manodopera. Cosa significa automatizzare i cluster di database PostgreSQL?

Failover

Il failover è un approccio automatico che si verifica quando si verifica un incidente senza precedenti (come un guasto all'hardware, un arresto anomalo del sistema, un'interruzione di alimentazione nel nodo principale principale o una perdita di rete all'interno dell'intero data center) . La tua capacità di failover deve essere testata regolarmente e seguire le pratiche standard del settore. Il rilevamento del servizio di un errore interno deve arrivare al punto che è stato determinato come vero e sta effettivamente accadendo.

In ClusterControl, quando si verifica un incidente, attiva il meccanismo di failover e promuove il nodo standby più aggiornato, quindi attiva gli allarmi come mostrato di seguito...

Quindi, funziona in background per un failover come hai visto di seguito , il progresso è in movimento.

lasciando il risultato come finisce di seguito...

Pianificazione backup

I backup sono una parte molto importante del Disaster and Recovery Planning (DRP). I backup fungono da spina dorsale quando i dati del cluster vanno alla deriva dopo l'incontro di un cervello diviso o di una partizione di rete. Ci sono alcune occasioni in cui anche pg_rewind può essere utile, ma l'automazione dei backup è sempre molto importante per evitare una tale enorme perdita di dati e minori RPO e RTO.

In ClusterControl è possibile eseguire o creare un backup senza strumenti speciali o aggiungere attività di utilità per eseguire lo script di un backup automatico. Ci sono tutti e spetterà alla tua organizzazione quando avverrà il backup e quali sono le politiche del tuo backup inclusa la sua conservazione. In effetti, la cosa più importante qui è che il backup non interferirà con il tuo ambiente di produzione e non bloccherà i tuoi nodi quando viene eseguito il backup.

Anche qui la verifica del backup gioca un ruolo molto importante. Stai tranquillo, il tuo backup deve essere un tipo di backup valido ed è una copia affidabile quando si verifica una crisi. Aggiunta del meccanismo per archiviare il backup non solo nella tua sede o nel data center, ma anche archiviarlo altrove in modo sicuro, ad esempio nel cloud o in AWS S3 o Google Cloud Storage.

Con ClusterControl, questo è stato eseguito facilmente e da solo nella piattaforma semplicemente seguendo la GUI come mostrato di seguito,

Ciò ti consente di prendere il metodo di backup scelto, archiviarlo nel cloud per aggiungere più conservazione e sicurezza del backup diffondendo la tua copia di backup non solo in un'origine ma anche nel cloud. Quindi, hai la possibilità di verificare il backup al termine della creazione del backup per verificare se è valido o meno. Parte di esso è anche che puoi scegliere di crittografare il tuo backup, che è una pratica molto importante quando si archiviano i dati inattivi e si rispettano le linee guida normative sulla sicurezza.

Sicurezza database

La sicurezza è solitamente la preoccupazione principale della maggioranza quando si tratta di gestire in remoto il cluster di database PostgreSQL. Chi potrà accedere al database da remoto o dovrebbe essere solo locale? Come aggiungere restrizioni di sicurezza e come gestire gli utenti e rivedere l'autorizzazione dell'utente da parte di un analista della sicurezza. È molto importante disporre di una maggiore impostazione e fornire un quadro chiaro della tua architettura in modo che possa essere analizzata dove sono le scappatoie e quali sono le cose necessarie per migliorare o rafforzare la sicurezza.

ClusterControl fornisce una panoramica e la gestione dei tuoi utenti PostgreSQL e fornisce una visualizzazione e un editor per il tuo pg_hba.conf, che gestisce come gli utenti possono essere autenticati.

Per la gestione degli utenti fornisce una panoramica dell'elenco degli utenti e dei suoi privilegi nel cluster di database. Ti consente anche qui di modificare o cambiare i privilegi dell'utente se non è conforme alle tue linee guida di sicurezza e aziendali. La gestione in remoto richiede che tutti i tuoi utenti dispongano di autorizzazioni e ruoli specifici e quando possono essere utilizzati o accessibili solo e limita il ruolo per evitare danni al tuo database.

È anche molto importante nel tuo PostgreSQL rivedere e verificare che non ci siano errori con l'autenticazione dell'utente. Quando può essere consentito e il suo ambito per potersi connettere ai server. È meglio che questo sia visualizzato come quello di seguito,

Ciò consente di verificare facilmente ed evitare l'autenticazione trascurata per tali possibili scappatoie che un utente malintenzionato potrebbe essere in grado di accedere a causa di regole deboli nell'autenticazione.

L'utilizzo di SSL e crittografia aggiunge maggiore sicurezza e robustezza quando si accede al database da remoto. Ma se accedi al tuo database da remoto al di fuori della sede della tua organizzazione, è meglio incapsulare i tuoi dati come l'accesso tramite una VPN. Puoi dare un'occhiata al nostro blog su Multi-DC PostgreSQL:configurazione di un nodo di standby in una posizione geografica diversa su una VPN.

Registri database centralizzati

La centralizzazione dei log aggregati offre un modo molto conveniente per indagare e implementare uno strumento di analisi della sicurezza per comprendere i cluster di database e il loro comportamento. Questo è molto vantaggioso quando si gestiscono database remoti. Alcuni approcci comuni utilizzano Logstash utilizzando lo stack ELK o la potente gestione open source per i log, Graylog.

Perché è importante centralizzare i log del database?

Nel caso in cui sia necessario indagare su un problema a livello di cluster e vedere cosa è successo attraverso i cluster di database, i proxy o i sistemi di bilanciamento del carico. È molto comodo guardare solo in un posto. Alcuni strumenti molto ricchi e potenti come ho menzionato sopra ti consentono di cercare in modo dinamico e in tempo reale. Forniscono anche metriche e grafici, un modo molto conveniente per l'analisi.

Con ClusterControl, viene fornita una comodità durante l'accesso ai log. Sebbene i registri non vengano raccolti e archiviati centralmente, offre una panoramica e la possibilità di leggere i registri. Vedi sotto...

Puoi anche rivedere i lavori di ciò che ClusterControl ha rilevato e ha agito in base agli allarmi o esaminando i lavori proprio come di seguito,

Conclusione

La gestione remota dei cluster di database PostgreSQL può essere scoraggiante, soprattutto quando si tratta di sicurezza, monitoraggio e failover. Se disponi degli strumenti, degli standard di settore e delle migliori pratiche corretti per l'implementazione, la sicurezza e l'osservabilità, puoi stare tranquillo quando gestisci il tuo database; indipendentemente dalla tua posizione.