Als Teil ihres Unternehmensüberwachungssystems verlassen sich Unternehmen auf Warnungen und Benachrichtigungen als erste Verteidigungslinie, um eine hohe Verfügbarkeit zu erreichen und folglich Ausfallkosten zu senken.
Warnungen und Benachrichtigungen werden manchmal synonym verwendet, zum Beispiel können wir sagen „Ich habe eine Systemwarnung mit hoher Last erhalten“, und das Ersetzen von „Warnung“ durch „Benachrichtigung“ ändert nichts an der Bedeutung der Nachricht. In der Welt der Managementsysteme ist es jedoch wichtig, den Unterschied zu beachten:Warnungen sind Ereignisse, die als Ergebnis einer Systemstörung generiert werden, und Benachrichtigungen werden verwendet, um Informationen über den Systemstatus, einschließlich Störungen, zu liefern. Als Beispiel erläutert der Blog von Multiplenines Introducing the ClusterControl Alerting Integrations eine der Integrationsfunktionen von ClusterControl, das Benachrichtigungssystem, das Warnungen per E-Mail, Chat-Dienste und Incident-Management-Systeme senden kann. Siehe auch PostgreSQL-Wiki — Warnungen und Statusbenachrichtigungen.
Um die PostgreSQL-Datenbankaktivität genau zu überwachen, stützt sich ein Verwaltungssystem auf die Datenbankaktivitätsmetriken, benutzerdefinierte Funktionen oder Überwachungsratgeber und Überwachungsprotokolldateien.
In diesem Artikel überprüfe ich die Tools, die im PostgreSQL-Wiki, in den Abschnitten Überwachung und PostgreSQL-GUI aufgeführt sind, und überspringe diejenigen, die nicht aktiv gewartet werden oder keine Warnungen und Benachrichtigungen entweder innerhalb des Produkts oder mit einem kostenlosen Testkonto bereitstellen. Obwohl es sich nicht um eine vollständige Überprüfung handelt, wurde jedes Tool so weit installiert und konfiguriert, bis ich seine Warn- und Benachrichtigungsfunktionen verstehen konnte.
Nagios
Nagios ist ein beliebtes lokales Allzweck-Überwachungssystem, das eine große Auswahl an Plugins bietet. Während Nagios Core Open Source ist, ist die empfohlene Lösung für die Überwachung von PostgreSQL Nagios XI.
Benachrichtigungseinstellungen gelten pro Benutzer, und um sie zu ändern, muss sich der Administrator als der Benutzer „anmelden“ – Nagios verwendet den Begriff maskieren als . Auf der Kontoeinstellungsseite kann der Benutzer die Benachrichtigungsmethoden aktivieren oder deaktivieren:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444136.png)
Um die Arten von Benachrichtigungen zu konfigurieren, gehen Sie zur Seite „Benachrichtigungsmethoden“:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444259.png)
Weitere Einzelheiten finden Sie im Nagios XI-Benutzerhandbuch.
Um Warnmeldungen zu konfigurieren, melden Sie sich als Administrator an und wählen Sie den Datenbankkonfigurationsassistenten aus:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444255.png)
Nach der Konfiguration können die Warnungen angezeigt werden, indem Sie eine der Standardansichten oder Dashboards auswählen, oder wir können eine benutzerdefinierte Ansicht konfigurieren. Standardmäßig bietet Nagios XI die folgenden PostgreSQL-Monitore:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444382.png)
Beachten Sie, dass Nagios XI standardmäßig keine Metriken basierend auf dem PostgreSQL Statistics Collector bereitstellt, stattdessen muss jede Metrik mit dem Konfigurationsassistenten „Postgres Query“ definiert werden:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444341.jpg)
Datenhund
Datadog ist ein Allzweck-SaaS-Überwachungstool mit einer sehr großen Auswahl an Integrationen mit einer Vielzahl von Diensten. Um die Überwachung zu starten, wählen Sie die PostgreSQL-Integration und dann die Benachrichtigungsintegrationen wie E-Mail, Chat (z. B. Slack) oder Incident-Response-Systeme wie PagerDuty:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444449.png)
Um Benachrichtigungen über die zuvor konfigurierten Integrationskanäle zu erhalten, müssen wir mindestens einen Datadog-Monitor erstellen, im Fall der PostgreSQL-Überwachung einen „Integrations“-Monitortyp:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444410.png)
Der erste Schritt bei der Konfiguration des Monitors ist die Auswahl eines Alarmtyps:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444582.png)
Konfigurieren Sie als Nächstes eine oder mehrere Metriken:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444517.png)
Konfigurieren Sie die Bedingungen für das Auslösen der Warnung:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444654.png)
Benachrichtigungen können mithilfe von Vorlagenvariablen angepasst werden:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444724.jpg)
Geben Sie schließlich eine Liste von Empfängern an, die Benachrichtigungen erhalten sollen:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444796.png)
Die Ereignisse, die Datadog überwachen kann, sind im Abschnitt „Metriken“ der PostgreSQL-Integration aufgeführt und basieren auf den vordefinierten Ansichten des PostgreSQL Statistics Collector:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444836.png)
Um Ereignisse zu überwachen, die nicht mit der Standardintegration bereitgestellt werden, bietet Datadog Kunden die Möglichkeit, benutzerdefinierte Metriken zu erstellen, die auf den Datadog-Plan beschränkt sind.
Okmeter
Okmeter ist auch Teil der SaaS-Überwachungsfamilie für allgemeine Zwecke und erfordert wie andere SaaS-Tools einen Agenten auf dem überwachten Host. Sobald der Agent installiert ist, wird eine Reihe von standardmäßigen Ereignisauslösern aktiviert, einschließlich einer PostgreSQL-Verbindungsprüfung:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444802.png)
Um mehr PostgreSQL-Metriken zu erhalten, muss ein PostgreSQL-„Server“ hinzugefügt werden:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444957.png)
Um PostgreSQL-Statistiken zu überwachen, müssen wir, ähnlich wie bei Nagios und Datadog, benutzerdefinierte Metriken konfigurieren, wie in der Okmeter-Dokumentation – Senden benutzerdefinierter Metriken erläutert. Oder bearbeiten Sie die Metrik „PostgreSQL-Server“ oben, um sie für Ansichten in die Funktion „okmeter.pg_stats“ aufzunehmen.
Auf der Dokumentationsseite zu Okmeter-Abfragestatistiken wird erläutert, wie Sie die Verfolgung von Ausführungsstatistiken für die SQL-Anweisungen aktivieren. Beachten Sie, dass es einige Einschränkungen bei der Verwendung der „pg_stat_statements“-Ansichten gibt, z. Maximale Anzahl unterschiedlicher Anweisungen, die von einem Modul aufgezeichnet werden können — Einzelheiten finden Sie in der PostgreSQL-Dokumentation zu pg_stat_statements.
Auf der Seite Benachrichtigungskontakte werden Benachrichtigungen für jeden Benutzer konfiguriert:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445068.jpg)
Benachrichtigungsmeldungen können mithilfe von Vorlagen weiter angepasst werden:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445117.png)
Zirkonus
Circonus, ein weiteres allgemeines SaaS-Überwachungsprodukt, verfügt über einen PostgreSQL-„Check“, der einzeln aktiviert oder als Teil der Installation in einem Schritt hinzugefügt werden kann:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445175.jpg)
Laut Circonus PostgreSQL-Dokumentation wird die Überprüfung von einem entfernten Standort aus über direkte SQL-Anweisungen durchgeführt. Nachdem Sie den PostgreSQL-Host so konfiguriert haben, dass er Verbindungen von einem Circonus-Broker akzeptiert, zeigt der Assistent eine Liste der verfügbaren Metriken an:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445287.png)
Um Benachrichtigungen zu konfigurieren, wird jeder Metrik ein Satz von Regeln und eine Liste von zu benachrichtigenden Kontakten zugeordnet.
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445297.png)
Warnungen werden nach Schweregrad kategorisiert:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445349.png)
Zu den Benachrichtigungskanälen gehören SMS, OpsGenie, Slack, VictorOps und PagerDuty (keine E-Mail). Der folgende Screenshot zeigt eine Slack-Integration:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445408.png)
Um Benachrichtigungen zu konfigurieren, müssen jeder Metrik im Check Regeln und Kontakte zugeordnet werden. Beachten Sie, dass Kontakte erstellt werden müssen, bevor die Metrik bearbeitet werden kann:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445434.png)
Neues Relikt
New Relic ist ein weiteres allgemeines SaaS-Überwachungssystem. Wenn es um PostgreSQL geht, gibt es (zum jetzigen Zeitpunkt) drei verfügbare Plugins. Das neueste ist das Blue Medora-Plugin:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445595.png)
Sobald das Plugin funktioniert, wird es auf der Plugins-Seite sichtbar und wir sind bereit, Benachrichtigungen zu konfigurieren:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445536.png)
New Relic verwendet das Konzept der Warnungsrichtlinien, um Warnungen in Vorfällen zu gruppieren. Vor dem Konfigurieren einer Richtlinie müssen wir die Benachrichtigungskanäle einrichten. New Relic lässt sich standardmäßig in alle gängigen Incident-Response-Systeme sowie in E-Mail integrieren:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445655.jpg)
Beachten Sie, dass die Integration zuerst in der Benachrichtigungsanwendung aktiviert werden muss. Wählen Sie beispielsweise Slack aus der Liste der Kanaltypen aus:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445770.png)
Erstellen Sie als Nächstes eine „Warnrichtlinie“:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445722.png)
Eine Alarmrichtlinie erfordert eine „Alarmbedingung“. Die nächsten Screenshots zeigen die Schritte, um genau das zu erreichen:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445884.png)
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445882.png)
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445936.png)
Wählen Sie schließlich die Registerkarte Benachrichtigungskanäle aus, um die Standardeinstellung zu ändern:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445942.png)
Fügen Sie optional die Alarmbedingung zu New Relic Insights hinzu (erfordert zusätzliches Abonnement):
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450043.png)
Postgres Enterprise Manager
PEM oder Postgres Enterprise Manager ist ein Tool zum Verwalten, Optimieren und Überwachen von PostgreSQL.
Es kommt mit einem sehr reichhaltigen Satz vordefinierter Metriken:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450062.jpg)
Um die Standardwarnungen zu ändern oder benutzerdefinierte zu erstellen, verwenden Sie die Warnungsvorlagen:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450195.jpg)
PEM ist für Benachrichtigungen auf E-Mail und SNMP angewiesen, sodass es problemlos in Überwachungssysteme wie Nagios integriert werden kann, aber es gibt keine Integrationen mit den gängigen Incident-Management-Systemen (PagerDuty, VictorOps, OpsGenie) oder Chat-Diensten (Slack), die darin zu finden sind die anderen Produkte.
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450287.jpg)
pgwatch2
pgwatch2 ist ein weiteres PostgreSQL-zentriertes Überwachungstool, eine selbst gehostete Lösung.
Um Warnungen zu definieren, müssen wir zuerst ein benutzerdefiniertes Dashboard erstellen und die Metrik definieren:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450297.jpg)
Als nächstes konfigurieren Sie die Warnung:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450320.png)
Nach der Konfiguration werden die Warnungen auf der Seite „Warnungsliste“ angezeigt:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450364.jpg)
pgwatch2 lässt sich in alle gängigen Benachrichtigungssysteme integrieren. Hier ist ein Beispiel für das Hinzufügen eines Slack-Kanals:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450484.jpg)
Um die im System konfigurierten Benachrichtigungskanäle anzuzeigen, öffnen Sie die Seite „Benachrichtigungskanäle“:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450490.jpg)
Zusätzliche Metriken können hinzugefügt werden, wie im Abschnitt Funktionen von pgwatch2 dokumentiert.
ClusterControl
ClusterControl ist ein datenbankorientiertes Verwaltungssystem vor Ort mit Unterstützung für PostgreSQL, MySQL, MariaDB und MongoDB.
Der erste Schritt ist das Hinzufügen einer Benachrichtigungsintegration. Weitere Informationen zu verfügbaren Integrationen finden Sie unter Introducing the ClusterControl Alerting Integrations:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450579.png)
Für diese Demo habe ich Slack konfiguriert:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450587.png)
ClusterControl bietet auch die Möglichkeit der Benachrichtigung per E-Mail:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450633.png)
Sobald Benachrichtigungen vorhanden sind, erstellen Sie benutzerdefinierte Ratgeber, um Benachrichtigungen basierend auf bestimmten Kriterien auszulösen:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450737.png)
Schlussfolgerung
Der Artikel sollte nicht tief in die Funktionalität der einzelnen Tools eintauchen, sondern ich habe versucht, die meiner Meinung nach wichtigen Funktionen in Bezug auf Warnungen und Benachrichtigungen speziell für PostgreSQL zu skizzieren.
Eine der gewonnenen Erkenntnisse ist, dass beim Auswahlprozess mehrere Faktoren berücksichtigt werden sollten:
- vor Ort oder SaaS
- agentenbasierte oder Remote-Prüfung
- Integration mit Incident-Management-Systemen und Chat-Diensten
- Verfügbarkeit von überwachten Metriken, Out-of-the-Box und Plugins
- Möglichkeit, benutzerdefinierte Metriken hinzuzufügen
- Alarmverwaltungsfunktionen (z. B. Gruppierung)
- Komplexität vs. Granularität in der Benutzeroberfläche
- zusätzliche Funktionalität (Verwaltung, Tuning, API usw.)
Auch wenn eine Lösung nicht alle geschäftlichen und/oder technischen Anforderungen erfüllt, ist es immer möglich, eine Kombination von Diensten zu verwenden.