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

I migliori strumenti di avviso e notifica per PostgreSQL

Come parte del loro sistema di monitoraggio aziendale, le organizzazioni fanno affidamento su avvisi e notifiche come prima linea di difesa per ottenere un'elevata disponibilità e, di conseguenza, ridurre i costi di interruzione.

Avvisi e notifiche a volte vengono utilizzati in modo intercambiabile, ad esempio possiamo dire "Ho ricevuto un avviso di sistema di carico elevato" e la sostituzione di "avviso" con "notifica" non cambierà il significato del messaggio. Tuttavia, nel mondo dei sistemi di gestione è importante notare la differenza:gli avvisi sono eventi generati a seguito di un guasto del sistema e le notifiche vengono utilizzate per fornire informazioni sullo stato del sistema, compreso il guasto. A titolo di esempio, il blog di Diversinines Introducing the ClusterControl Alerting Integrations discute una delle funzionalità di integrazione di ClusterControl, il sistema di notifica in grado di fornire avvisi tramite e-mail, servizi di chat e sistemi di gestione degli incidenti. Vedi anche PostgreSQL Wiki — Avvisi e notifiche di stato.

Per monitorare accuratamente l'attività del database PostgreSQL, un sistema di gestione si basa sulle metriche dell'attività del database, sulle funzionalità personalizzate o sugli advisor di monitoraggio e sul monitoraggio dei file di registro.

In questo articolo esamino gli strumenti elencati nel wiki di PostgreSQL, le sezioni della GUI di monitoraggio e PostgreSQL, saltando quelli che non vengono gestiti attivamente o non forniscono avvisi e notifiche né all'interno del prodotto né con un account di prova gratuito. Pur non essendo una recensione esaustiva, ogni strumento è stato installato e configurato fino al punto in cui ho potuto comprenderne le capacità di avviso e notifica.

Nagios

Nagios è un popolare sistema di monitoraggio on-premise per uso generico che offre un'ampia gamma di plugin. Sebbene Nagios Core sia open source, la soluzione consigliata per il monitoraggio di PostgreSQL è Nagios XI.

Le impostazioni di notifica sono per utente e per modificarle l'amministratore deve "accedere come" l'utente — Nagios usa il termine mascherato come . Una volta nella pagina di impostazione dell'account, l'utente può scegliere di abilitare o disabilitare i metodi di notifica:

Preferenze di notifica di Nagios XI

Per configurare i tipi di notifiche, vai alla pagina "Metodi di notifica":

Metodi di notifica di Nagios XI

Consulta la Guida per l'utente di Nagios XI per maggiori dettagli.

Per configurare gli avvisi, accedi come amministratore e seleziona la procedura guidata di configurazione del database:

Procedura guidata di configurazione del database di Nagios XI

Una volta configurati, gli avvisi possono essere visualizzati selezionando una qualsiasi delle visualizzazioni predefinite, dashboard, oppure possiamo configurarne uno personalizzato. Per impostazione predefinita, Nagios XI fornisce i seguenti monitor PostgreSQL:

Nagios XI PostgreSQL monitora

Tieni presente che per impostazione predefinita Nagios XI non fornisce alcuna metrica basata su PostgreSQL Statistics Collector, ma ogni metrica deve essere definita utilizzando la procedura guidata di configurazione "Query Postgres":

Nagios XI Postgres Query

Cane dati

Datadog è uno strumento di monitoraggio SaaS generico caratterizzato da un insieme molto ampio di integrazioni con una varietà di servizi. Per avviare il monitoraggio, seleziona l'integrazione PostgreSQL, quindi scegli le integrazioni delle notifiche come e-mail, chat (ad es. Slack) o sistemi di risposta agli incidenti come PagerDuty:

Integrazioni Datadog

Per ricevere le notifiche tramite i canali di integrazione configurati in precedenza, è necessario creare almeno un monitor Datadog, nel caso di monitoraggio di PostgreSQL un tipo di monitor di “integrazione”:

Integrazione Datadog PostgreSQL

Il primo passaggio nella configurazione del monitor è selezionare un tipo di avviso:

Metodo di rilevamento del cane dati

Quindi, configura una o più metriche:

Configurazione delle metriche di Datador

Configura le condizioni per l'attivazione dell'avviso:

Attivatore di avviso Datadog

Le notifiche possono essere personalizzate utilizzando le variabili del modello:

Integrazione Datadog Postgres

Infine, fornisci un elenco di destinatari a cui ricevere le notifiche:

Destinatari delle notifiche di Datadog

Gli eventi su cui Datadog può monitorare sono elencati nella sezione "Metriche" dell'integrazione di PostgreSQL e sono basati sulle viste predefinite di PostgreSQL Statistics Collector:

Metriche di integrazione di Datadog Postgres

Al fine di monitorare gli eventi non previsti con l'integrazione di default, Datadog offre ai clienti la possibilità di creare metriche personalizzate limitate al piano Datadog.

Okmetro

Okmeter fa anche parte della famiglia di monitoraggio per uso generale SaaS e, proprio come altri strumenti SaaS, richiede un agente sull'host monitorato. Una volta installato l'agente, viene abilitata una serie di trigger di eventi predefiniti, incluso un controllo della connessione PostgreSQL:

Okmeter Autotrigger

Ottenere più metriche PostgreSQL richiede l'aggiunta di un "server" PostgreSQL:

Okmeter - Aggiunta di un server

Per monitorare le statistiche di PostgreSQL, in modo simile a Nagios e Datadog, dobbiamo configurare metriche personalizzate come spiegato nella documentazione di Okmeter — Invio di metriche personalizzate. Oppure, modifica la metrica "Server PostgreSQL" sopra per includerla per le visualizzazioni nella funzione "okmeter.pg_stats".

La pagina della documentazione relativa alle statistiche sulle query di Okmeter spiega come abilitare il tracciamento delle statistiche di esecuzione per le istruzioni SQL. Si noti che ci sono alcune limitazioni nell'utilizzo delle viste "pg_stat_statements", ad es. numero massimo di istruzioni distinte che possono essere registrate da un modulo:per i dettagli, vedere la documentazione di PostgreSQL su pg_stat_statements.

La pagina dei contatti di notifica è dove vengono configurate le notifiche per ciascun utente:

Notifica di contatto Okmeter

I messaggi di notifica possono essere ulteriormente personalizzati utilizzando i modelli:

Modello di messaggio di notifica Okmeter

Circonus

Circonus, un altro prodotto di monitoraggio generale SaaS, presenta un "controllo" PostgreSQL che può essere abilitato individualmente o aggiunto come parte dell'installazione in un unico passaggio:

Circonus Check setup

Secondo la documentazione di Circonus PostgreSQL, il controllo viene eseguito da una posizione remota tramite istruzioni SQL dirette. Dopo aver configurato l'host PostgreSQL per accettare connessioni da un broker Circonus, la procedura guidata presenterà un elenco di metriche disponibili:

Circonus PostgreSQL controlla

Per configurare gli avvisi, a ciascuna metrica è associato un insieme di regole e un elenco di contatti da notificare.

Dettagli metrica del circo

Gli avvisi sono classificati in base ai livelli di gravità:

Circonus Rules Severity Levels

I canali di notifica includono SMS, OpsGenie, Slack, VictorOps e PagerDuty (nessuna e-mail). Lo screenshot seguente mostra un'integrazione Slack:

Gruppi di contatto del circo

Per configurare le notifiche, a ogni metrica nel controllo devono essere assegnate regole e contatti. Tieni presente che i contatti devono essere creati prima di modificare la metrica:

Set di regole del circo

Nuova reliquia

New Relic è un altro sistema di monitoraggio generale SaaS. Quando si tratta di PostgreSQL, ci sono (al momento della stesura di questo articolo) tre plugin disponibili. Il più recente è il plugin Blue Medora:

Nuovo plug-in Relic PostgreSQL di Blue Medora

Una volta che il plug-in funziona, diventa visibile nella pagina dei plug-in e siamo pronti per configurare gli avvisi:

Impostazione nuovi avvisi reliquia

New Relic utilizza il concetto di criteri di avviso per raggruppare gli avvisi in incidenti. Prima di configurare una policy dobbiamo impostare i canali di notifica. Immediatamente, New Relic si integra con tutti i più diffusi sistemi di risposta agli incidenti, oltre che con le e-mail:

Nuovi tipi di canale reliquia

Si noti che l'integrazione deve essere prima abilitata nell'applicazione di notifica. Ad esempio selezionando Slack dall'elenco dei tipi di canale:

Nuova integrazione di Relic Slack

Quindi crea una "politica di avviso":

Nuova politica di avviso reliquia

Una politica di avviso richiede una "condizione di avviso". La prossima serie di schermate mostra i passaggi per ottenere proprio questo:

New Relic PostgreSQL Condition Category Nuova entità condizione Relic PostgreSQL Nuova soglia della condizione PostgreSQL della reliquia

Infine seleziona la scheda dei canali di notifica per modificare l'impostazione predefinita:

Nuovi canali di notifica Relic PostgreSQL

Facoltativamente, aggiungi la condizione di avviso a New Relic Insights (richiede un abbonamento aggiuntivo):

Nuovi approfondimenti sulle reliquie

Gestione aziendale di Postgres

PEM o Postgres Enterprise Manager è uno strumento per la gestione, l'ottimizzazione e il monitoraggio di PostgreSQL.

Viene fornito con un set molto ricco di metriche predefinite:

Metriche predefinite di Postgres Enterprise Manager

Per modificare gli avvisi predefiniti o crearne di personalizzati, utilizza i modelli di avviso:

Modello di avviso personalizzato Postgres Enterprise Manager

PEM si basa su e-mail e SNMP per le notifiche, quindi può integrarsi facilmente con sistemi di monitoraggio come Nagios, ma non ci sono integrazioni con i popolari sistemi di gestione degli incidenti (PagerDuty, VictorOps, OpsGenie) o servizi di chat (Slack) che si trovano in gli altri prodotti.

Avvisi Postgres Enterprise Manager e SNMP

pgwatch2

pgwatch2 è un altro strumento di monitoraggio incentrato su PostgreSQL, una soluzione self-hosted.

Per definire gli avvisi, dobbiamo prima creare una dashboard personalizzata e definire la metrica:

pgwatch2 Dashboard Metrics

Quindi, configura l'avviso:

pgwatch2 Dashboard Alert Config

Una volta configurati, gli avvisi verranno visualizzati nella pagina Elenco avvisi:

pgwatch2 Elenco avvisi dashboard

pgwatch2 si integra con tutti i più diffusi sistemi di notifica. Ecco un esempio di aggiunta di un canale Slack:

pgwatch2 Integrazione Slack

Per visualizzare i canali di notifica configurati nel sistema, apri la pagina “Canali di notifica”:

pgwatch2 Canali di notifica

Ulteriori metriche possono essere aggiunte come documentato nella sezione Caratteristiche di pgwatch2.

Controllo cluster

ClusterControl è un sistema di gestione locale orientato al database con supporto per PostgreSQL, MySQL, MariaDB e MongoDB.

Il primo passaggio è l'aggiunta di un'integrazione di notifica. Maggiori informazioni sulle integrazioni disponibili sono disponibili in Introduzione alle integrazioni di avviso di ClusterControl:

Integrazioni ClusterControl

Ai fini di questa demo, ho configurato Slack:

Integrazione Slack ClusterControl

ClusterControl offre anche la possibilità di notificare via e-mail:

Notifiche ClusterControl via e-mail

Una volta attivate le notifiche, crea avvisi personalizzati per attivare avvisi in base a criteri specifici:

ClusterControl Custom AdvisorsScarica il whitepaper oggi PostgreSQL Management &Automation con ClusterControlScopri cosa devi sapere per distribuire, monitorare, gestisci e ridimensiona PostgreSQLScarica il whitepaper

Conclusione

L'articolo non intendeva essere un'analisi approfondita delle funzionalità di ciascuno strumento, piuttosto ho tentato di delineare quelle che consideravo le caratteristiche importanti relative agli avvisi e alle notifiche per PostgreSQL, in particolare.

Una delle lezioni apprese è che il processo di selezione dovrebbe prendere in considerazione diversi fattori:

  • on premise o SaaS
  • controllo tramite agente o remoto
  • integrazione con sistemi di gestione degli incidenti e servizi di chat
  • disponibilità di metriche monitorate, pronte all'uso e plug-in
  • possibilità di aggiungere metriche personalizzate
  • funzioni di gestione degli avvisi (ad es. raggruppamento)
  • complessità vs granularità nell'interfaccia utente
  • funzionalità aggiuntive (gestione, ottimizzazione, API, ecc.)

Inoltre, se una soluzione non soddisfa tutti i requisiti aziendali e/o tecnici, è sempre possibile utilizzare una combinazione di servizi.