Als onderdeel van hun bedrijfsmonitoringsysteem vertrouwen organisaties op waarschuwingen en meldingen als hun eerste verdedigingslinie om een hoge beschikbaarheid te bereiken en bijgevolg de uitvalkosten te verlagen.
Waarschuwingen en meldingen worden soms door elkaar gebruikt, we kunnen bijvoorbeeld zeggen "Ik heb een systeemwaarschuwing met hoge belasting ontvangen", en het vervangen van "waarschuwing" door "melding" zal de betekenis van het bericht niet veranderen. In de wereld van beheersystemen is het echter belangrijk om het verschil te zien:waarschuwingen zijn gebeurtenissen die worden gegenereerd als gevolg van een systeemprobleem en meldingen worden gebruikt om informatie te verstrekken over de systeemstatus, inclusief problemen. Als voorbeeld bespreekt de blog van Verschillendenines Introducing the ClusterControl Alerting Integrations een van de integratiefuncties van ClusterControl, het meldingssysteem dat waarschuwingen kan leveren via e-mail, chatservices en incidentbeheersystemen. Zie ook PostgreSQL Wiki — Waarschuwingen en statusmeldingen.
Om de PostgreSQL-databaseactiviteit nauwkeurig te bewaken, vertrouwt een beheersysteem op de statistieken van de databaseactiviteit, aangepaste functies of monitoradviseurs en het bewaken van logbestanden.
In dit artikel bekijk ik de tools die worden vermeld in de PostgreSQL Wiki, de secties Monitoring en PostgreSQL GUI, waarbij ik de tools oversla die niet actief worden onderhouden, of die geen waarschuwingen en meldingen bieden, noch binnen het product, noch met een gratis proefaccount. Hoewel het geen uitputtende beoordeling is, is elke tool zodanig geïnstalleerd en geconfigureerd dat ik de waarschuwings- en meldingsmogelijkheden ervan begreep.
Nagios
Nagios is een populair on-premise monitoringsysteem voor algemene doeleinden dat een breed scala aan plug-ins biedt. Hoewel Nagios Core open source is, is Nagios XI de aanbevolen oplossing voor het bewaken van PostgreSQL.
Instellingen voor meldingen zijn per gebruiker, en om ze te wijzigen moet de beheerder "inloggen als" de gebruiker — Nagios gebruikt de term masquerade as . Eenmaal op de pagina met accountinstellingen kan de gebruiker ervoor kiezen om de meldingsmethoden in of uit te schakelen:

Ga naar de pagina "Meldingsmethoden" om de soorten meldingen te configureren:

Zie de Nagios XI Gebruikershandleiding voor meer details.
Om waarschuwingen te configureren, logt u in als beheerder en selecteert u de databaseconfiguratiewizard:

Eenmaal geconfigureerd, kunnen de waarschuwingen worden bekeken door een van de standaardweergaven, dashboards te selecteren, of we kunnen een aangepaste configureren. Standaard biedt Nagios XI de volgende PostgreSQL-monitoren:

Houd er rekening mee dat Nagios XI kant-en-klaar geen statistieken biedt op basis van de PostgreSQL Statistics Collector, maar dat elke metriek moet worden gedefinieerd met behulp van de configuratiewizard "Postgres Query":

Datadog
Datadog is een SaaS-monitoringtool voor algemeen gebruik met een zeer groot aantal integraties met een verscheidenheid aan services. Om te beginnen met monitoren, selecteert u de PostgreSQL-integratie en kiest u vervolgens de meldingsintegraties zoals e-mail, chat (bijv. Slack) of incidentresponssystemen zoals PagerDuty:

Om meldingen te ontvangen via de eerder geconfigureerde integratiekanalen, moeten we ten minste één Datadog-monitor maken, in het geval van PostgreSQL-monitoring een "integratie" -monitortype:

De eerste stap bij het configureren van de monitor is het selecteren van een waarschuwingstype:

Configureer vervolgens een of meer statistieken:

Configureer de voorwaarden voor het activeren van de waarschuwing:

Meldingen kunnen worden aangepast met behulp van sjabloonvariabelen:

Geef ten slotte een lijst met ontvangers om meldingen te ontvangen:

De gebeurtenissen waarop Datadog kan controleren, worden vermeld onder de sectie PostgreSQL-integratie "Metrieken" en zijn gebaseerd op de vooraf gedefinieerde weergaven van PostgreSQL Statistics Collector:

Om te controleren op gebeurtenissen die niet zijn voorzien van de standaardintegratie, biedt Datadog klanten de mogelijkheid om aangepaste statistieken te maken die beperkt zijn tot het Datadog-abonnement.
Okmeter
Okmeter maakt ook deel uit van de SaaS-monitoringfamilie voor algemene doeleinden en vereist, net als andere SaaS-tools, een agent op de bewaakte host. Nadat de agent is geïnstalleerd, wordt een reeks standaard gebeurtenistriggers ingeschakeld, inclusief een PostgreSQL-verbindingscontrole:

Om meer PostgreSQL-statistieken te krijgen, moet een PostgreSQL-"server" worden toegevoegd:

Om PostgreSQL-statistieken te controleren, net als bij Nagios en Datadog, moeten we aangepaste metrieken configureren zoals uitgelegd in de Okmeter-documentatie - Aangepaste metrieken verzenden. Of bewerk de 'PostgreSQL-server'-statistiek hierboven om voor weergaven op te nemen in de functie 'okmeter.pg_stats'.
Op de documentatiepagina van Okmeter-querystatistieken wordt uitgelegd hoe u het bijhouden van uitvoeringsstatistieken voor de SQL-instructies kunt inschakelen. Merk op dat er een paar beperkingen zijn bij het gebruik van de "pg_stat_statements"-weergaven, b.v. maximum aantal afzonderlijke statements dat door een module kan worden vastgelegd — zie de PostgreSQL-documentatie op pg_stat_statements voor details.
Op de pagina met contactpersonen voor meldingen worden meldingen voor elke gebruiker geconfigureerd:

Meldingsberichten kunnen verder worden aangepast met behulp van sjablonen:

Circonus
Circonus, een ander algemeen SaaS-monitoringproduct, beschikt over een PostgreSQL-controle die afzonderlijk kan worden ingeschakeld of kan worden toegevoegd als onderdeel van de installatie in één stap:

Volgens Circonus PostgreSQL-documentatie wordt de controle uitgevoerd vanaf een externe locatie via directe SQL-instructies. Na het configureren van de PostgreSQL-host om verbindingen van een Circonus-broker te accepteren, zal de wizard een lijst met beschikbare statistieken presenteren:

Om waarschuwingen te configureren, is elke statistiek gekoppeld aan een set regels en een lijst met contactpersonen die op de hoogte moeten worden gesteld.

Waarschuwingen worden gecategoriseerd op basis van ernstniveaus:

Meldingskanalen zijn onder meer SMS, OpsGenie, Slack, VictorOps en PagerDuty (geen e-mail). De onderstaande schermafbeelding toont een Slack-integratie:

Om meldingen te configureren, moet elke statistiek in de controle worden toegewezen aan regels en contacten. Houd er rekening mee dat contacten moeten worden gemaakt voordat de metriek kan worden bewerkt:

Nieuwe relikwie
New Relic is een ander algemeen SaaS-bewakingssysteem. Als het gaat om PostgreSQL zijn er (op het moment van schrijven) drie beschikbare plug-ins. De meest recente is de Blue Medora-plug-in:

Zodra de plug-in werkt, wordt deze zichtbaar op de pagina met plug-ins en zijn we klaar om waarschuwingen te configureren:

New Relic gebruikt het concept van waarschuwingsbeleid om waarschuwingen in incidenten te groeperen. Voordat we een beleid configureren, moeten we de meldingskanalen instellen. Out of the box, New Relic kan worden geïntegreerd met alle populaire incidentresponssystemen, evenals met e-mail:

Houd er rekening mee dat de integratie eerst moet worden ingeschakeld in de meldingstoepassing. Selecteer bijvoorbeeld Slack uit de lijst met kanaaltypes:

Maak vervolgens een "waarschuwingsbeleid":

Een waarschuwingsbeleid vereist een "waarschuwingsvoorwaarde". De volgende reeks schermafbeeldingen toont de stappen om precies dat te bereiken:



Selecteer ten slotte het tabblad meldingskanalen om de standaard te wijzigen:

Voeg optioneel de waarschuwingsvoorwaarde toe aan New Relic Insights (aanvullend abonnement vereist):

Postgres Enterprise Manager
PEM of Postgres Enterprise Manager is een hulpmiddel voor het beheren, afstemmen en bewaken van PostgreSQL.
Het wordt geleverd met een zeer uitgebreide reeks vooraf gedefinieerde statistieken:

Gebruik de waarschuwingssjablonen om de standaardwaarschuwingen te wijzigen of aangepaste waarschuwingen te maken:

PEM vertrouwt op e-mail en SNMP voor meldingen, dus het kan eenvoudig worden geïntegreerd met monitoringsystemen zoals Nagios, maar er zijn geen integraties met de populaire incidentbeheersystemen (PagerDuty, VictorOps, OpsGenie) of chatservices (Slack) die in de andere producten.

pgwatch2
pgwatch2 is een andere op PostgreSQL gerichte monitoringtool, zelf-gehoste oplossing.
Om waarschuwingen te definiëren, moeten we eerst een aangepast dashboard maken en de statistiek definiëren:

Configureer vervolgens de waarschuwing:

Eenmaal geconfigureerd, worden de waarschuwingen weergegeven op de pagina met de lijst met waarschuwingen:

pgwatch2 integreert met alle populaire meldingssystemen. Hier is een voorbeeld van het toevoegen van een Slack-kanaal:

Open de pagina "Meldingskanalen" om de meldingskanalen te bekijken die in het systeem zijn geconfigureerd:

Aanvullende statistieken kunnen worden toegevoegd zoals beschreven in de sectie pgwatch2 Functies.
Clusterbeheer
ClusterControl is een on-premise database-georiënteerd beheersysteem met ondersteuning voor PostgreSQL, MySQL, MariaDB en MongoDB.
De eerste stap is het toevoegen van een meldingsintegratie. Meer informatie over beschikbare integraties is beschikbaar op Introductie van de ClusterControl Alerting-integraties:

Voor deze demo heb ik Slack geconfigureerd:

ClusterControl biedt ook de mogelijkheid om via e-mail te informeren:

Zodra er meldingen zijn, kunt u aangepaste adviseurs maken om waarschuwingen te activeren op basis van specifieke criteria:

Conclusie
Het artikel was niet bedoeld om een diepgaande duik te nemen in de functionaliteit van elke tool, maar ik probeerde te schetsen wat ik beschouw als de belangrijke functies met betrekking tot waarschuwingen en meldingen voor PostgreSQL, in het bijzonder.
Een van de geleerde lessen is dat bij het selectieproces rekening moet worden gehouden met verschillende factoren:
- op locatie of SaaS
- agent-gebaseerde of externe controle
- integratie met incidentbeheersystemen en chatdiensten
- beschikbaarheid van gecontroleerde statistieken, kant-en-klaar en plug-ins
- mogelijkheid om aangepaste statistieken toe te voegen
- functies voor waarschuwingsbeheer (bijv. groeperen)
- complexiteit versus granulariteit in de gebruikersinterface
- extra functionaliteit (beheer, afstemming, API, etc.)
Ook als één oplossing niet aan alle zakelijke en/of technische eisen voldoet, is het altijd mogelijk om een combinatie van diensten te gebruiken.