PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Die besten Warn- und Benachrichtigungstools für PostgreSQL

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:

Nagios XI-Benachrichtigungseinstellungen

Um die Arten von Benachrichtigungen zu konfigurieren, gehen Sie zur Seite „Benachrichtigungsmethoden“:

Nagios XI-Benachrichtigungsmethoden

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:

Nagios XI-Datenbankkonfigurationsassistent

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:

Nagios XI PostgreSQL-Monitore

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:

Nagios XI Postgres-Abfrage

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:

Datadog-Integrationen

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:

Datadog PostgreSQL-Integration

Der erste Schritt bei der Konfiguration des Monitors ist die Auswahl eines Alarmtyps:

Datadog-Erkennungsmethode

Konfigurieren Sie als Nächstes eine oder mehrere Metriken:

Daten- oder Metrikkonfiguration

Konfigurieren Sie die Bedingungen für das Auslösen der Warnung:

Datadog-Warnauslöser

Benachrichtigungen können mithilfe von Vorlagenvariablen angepasst werden:

Datadog Postgres-Integration

Geben Sie schließlich eine Liste von Empfängern an, die Benachrichtigungen erhalten sollen:

Empfänger von Datadog-Benachrichtigungen

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:

Datadog Postgres-Integrationsmetriken

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:

Okmeter Autotrigger

Um mehr PostgreSQL-Metriken zu erhalten, muss ein PostgreSQL-„Server“ hinzugefügt werden:

Okmeter – Hinzufügen eines Servers

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:

Okmeter-Kontaktbenachrichtigung

Benachrichtigungsmeldungen können mithilfe von Vorlagen weiter angepasst werden:

Okmeter-Benachrichtigungsvorlage

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:

Circonus Check-Setup

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:

Circonus PostgreSQL-Prüfung

Um Benachrichtigungen zu konfigurieren, wird jeder Metrik ein Satz von Regeln und eine Liste von zu benachrichtigenden Kontakten zugeordnet.

Circonus-Metrikdetails

Warnungen werden nach Schweregrad kategorisiert:

Schweregrad von Circonus-Regelsätzen

Zu den Benachrichtigungskanälen gehören SMS, OpsGenie, Slack, VictorOps und PagerDuty (keine E-Mail). Der folgende Screenshot zeigt eine Slack-Integration:

Circonus-Kontaktgruppen

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:

Circonus-Regelsätze

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:

New Relic PostgreSQL-Plugin von Blue Medora

Sobald das Plugin funktioniert, wird es auf der Plugins-Seite sichtbar und wir sind bereit, Benachrichtigungen zu konfigurieren:

Neue Relikt-Warnungen einrichten

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:

Neue Reliktkanaltypen

Beachten Sie, dass die Integration zuerst in der Benachrichtigungsanwendung aktiviert werden muss. Wählen Sie beispielsweise Slack aus der Liste der Kanaltypen aus:

New Relic Slack-Integration

Erstellen Sie als Nächstes eine „Warnrichtlinie“:

New Relic Alert Policy

Eine Alarmrichtlinie erfordert eine „Alarmbedingung“. Die nächsten Screenshots zeigen die Schritte, um genau das zu erreichen:

Neue Relikt-PostgreSQL-Bedingungskategorie Neue Relikt-PostgreSQL-Bedingungsentität New Relic PostgreSQL Bedingungsschwellenwert

Wählen Sie schließlich die Registerkarte Benachrichtigungskanäle aus, um die Standardeinstellung zu ändern:

New Relic PostgreSQL-Benachrichtigungskanäle

Fügen Sie optional die Alarmbedingung zu New Relic Insights hinzu (erfordert zusätzliches Abonnement):

Einblicke in New Relic

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:

Vordefinierte Metriken für Postgres Enterprise Manager

Um die Standardwarnungen zu ändern oder benutzerdefinierte zu erstellen, verwenden Sie die Warnungsvorlagen:

Benutzerdefinierte Benachrichtigungsvorlage für Postgres Enterprise Manager

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.

Postgres Enterprise Manager E-Mail- und SNMP-Warnungen

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:

pgwatch2 Dashboard-Metriken

Als nächstes konfigurieren Sie die Warnung:

pgwatch2 Dashboard Alert Config

Nach der Konfiguration werden die Warnungen auf der Seite „Warnungsliste“ angezeigt:

pgwatch2-Dashboard-Warnungsliste

pgwatch2 lässt sich in alle gängigen Benachrichtigungssysteme integrieren. Hier ist ein Beispiel für das Hinzufügen eines Slack-Kanals:

pgwatch2 Slack-Integration

Um die im System konfigurierten Benachrichtigungskanäle anzuzeigen, öffnen Sie die Seite „Benachrichtigungskanäle“:

pgwatch2-Benachrichtigungskanäle

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:

ClusterControl-Integrationen

Für diese Demo habe ich Slack konfiguriert:

ClusterControl-Slack-Integration

ClusterControl bietet auch die Möglichkeit der Benachrichtigung per E-Mail:

ClusterControl-Benachrichtigungen per E-Mail

Sobald Benachrichtigungen vorhanden sind, erstellen Sie benutzerdefinierte Ratgeber, um Benachrichtigungen basierend auf bestimmten Kriterien auszulösen:

ClusterControl Custom AdvisorsLaden Sie noch heute das Whitepaper herunter. PostgreSQL verwalten und skalierenLaden Sie das Whitepaper herunter

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.