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 XIPer configurare i tipi di notifiche, vai alla pagina "Metodi di notifica":
Metodi di notifica di Nagios XIConsulta 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 XIUna 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 monitoraTieni 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 QueryCane 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 DatadogPer 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 PostgreSQLIl primo passaggio nella configurazione del monitor è selezionare un tipo di avviso:
Metodo di rilevamento del cane datiQuindi, configura una o più metriche:
Configurazione delle metriche di DatadorConfigura le condizioni per l'attivazione dell'avviso:
Attivatore di avviso DatadogLe notifiche possono essere personalizzate utilizzando le variabili del modello:
Integrazione Datadog PostgresInfine, fornisci un elenco di destinatari a cui ricevere le notifiche:
Destinatari delle notifiche di DatadogGli 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 PostgresAl 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 AutotriggerOttenere più metriche PostgreSQL richiede l'aggiunta di un "server" PostgreSQL:
Okmeter - Aggiunta di un serverPer 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 OkmeterI messaggi di notifica possono essere ulteriormente personalizzati utilizzando i modelli:
Modello di messaggio di notifica OkmeterCirconus
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 setupSecondo 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 controllaPer configurare gli avvisi, a ciascuna metrica è associato un insieme di regole e un elenco di contatti da notificare.
Dettagli metrica del circoGli avvisi sono classificati in base ai livelli di gravità:
Circonus Rules Severity LevelsI canali di notifica includono SMS, OpsGenie, Slack, VictorOps e PagerDuty (nessuna e-mail). Lo screenshot seguente mostra un'integrazione Slack:
Gruppi di contatto del circoPer 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 circoNuova 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 MedoraUna volta che il plug-in funziona, diventa visibile nella pagina dei plug-in e siamo pronti per configurare gli avvisi:
Impostazione nuovi avvisi reliquiaNew 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 reliquiaSi 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 SlackQuindi crea una "politica di avviso":
Nuova politica di avviso reliquiaUna 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 reliquiaInfine seleziona la scheda dei canali di notifica per modificare l'impostazione predefinita:
Nuovi canali di notifica Relic PostgreSQLFacoltativamente, aggiungi la condizione di avviso a New Relic Insights (richiede un abbonamento aggiuntivo):
Nuovi approfondimenti sulle reliquieGestione 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 ManagerPer modificare gli avvisi predefiniti o crearne di personalizzati, utilizza i modelli di avviso:
Modello di avviso personalizzato Postgres Enterprise ManagerPEM 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 SNMPpgwatch2
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 MetricsQuindi, configura l'avviso:
pgwatch2 Dashboard Alert ConfigUna volta configurati, gli avvisi verranno visualizzati nella pagina Elenco avvisi:
pgwatch2 Elenco avvisi dashboardpgwatch2 si integra con tutti i più diffusi sistemi di notifica. Ecco un esempio di aggiunta di un canale Slack:
pgwatch2 Integrazione SlackPer visualizzare i canali di notifica configurati nel sistema, apri la pagina “Canali di notifica”:
pgwatch2 Canali di notificaUlteriori 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 ClusterControlAi fini di questa demo, ho configurato Slack:
Integrazione Slack ClusterControlClusterControl offre anche la possibilità di notificare via e-mail:
Notifiche ClusterControl via e-mailUna 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 whitepaperConclusione
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.