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

Überwachung der Percona-Verteilung für PostgreSQL – Schlüsselmetriken

Überwachung ist die Grundlage, um zu wissen, ob Ihre Systeme ordnungsgemäß funktionieren, und ermöglicht es Ihnen, Probleme zu beheben oder zu verhindern, bevor sie Ihr Geschäft beeinträchtigen. Selbst in einer robusten Technologie wie PostgreSQL ist die Überwachung ein Muss, und das Hauptziel besteht darin, zu wissen, was überwacht werden soll. Andernfalls könnte es keinen Sinn machen oder nicht nützlich sein, falls Sie es verwenden müssen. In diesem Blog werden wir sehen, was Percona Distribution für PostgreSQL ist und welche Schlüsselmetriken darauf überwacht werden müssen.

Percona-Distribution für PostgreSQL

Es ist eine Sammlung von Tools, die Sie bei der Verwaltung Ihres PostgreSQL-Datenbanksystems unterstützen. Es installiert PostgreSQL und ergänzt es durch eine Auswahl an Erweiterungen, die es ermöglichen, wesentliche praktische Aufgaben effizient zu lösen, darunter:

  • pg_repack :Es baut PostgreSQL-Datenbankobjekte neu auf.
  • pgaudit :Es bietet eine detaillierte Sitzungs- oder Objekt-Audit-Protokollierung über die standardmäßige PostgreSQL-Protokollierungsfunktion.
  • pgBackRest :Es ist eine Sicherungs- und Wiederherstellungslösung für PostgreSQL.
  • Patroni :Es ist eine Hochverfügbarkeitslösung für PostgreSQL.
  • pg_stat_monitor :Es sammelt und aggregiert Statistiken für PostgreSQL und stellt Histogramminformationen bereit.
  • Eine Sammlung zusätzlicher PostgreSQL Contrib-Erweiterungen.

Die Percona-Distribution für PostgreSQL wird auch mit der libpq-Bibliothek ausgeliefert. Es enthält eine Reihe von Bibliotheksfunktionen, die es Client-Programmen ermöglichen, Abfragen an den PostgreSQL-Backend-Server weiterzuleiten und die Ergebnisse dieser Abfragen zu empfangen.

Was in der Percona-Distribution für PostgreSQL überwacht werden soll

Bei der Überwachung eines Datenbank-Clusters müssen zwei Dinge berücksichtigt werden:das Betriebssystem und die Datenbank selbst. Sie müssen definieren, welche Metriken Sie von beiden Seiten überwachen und wie Sie dies tun werden.

Beachten Sie, dass eine Beeinträchtigung einer Ihrer Metriken auch andere betreffen kann, wodurch die Fehlerbehebung des Problems komplexer wird. Ein gutes Überwachungs- und Warnsystem ist wichtig, um diese Aufgabe so einfach wie möglich zu gestalten.

Betriebssystemüberwachung

Eine wichtige Sache ist es, das Verhalten des Betriebssystems zu überwachen. Sehen wir uns einige Punkte an, die hier überprüft werden sollten.

CPU-Nutzung

Ein übermäßiger Prozentsatz der CPU-Auslastung könnte ein Problem darstellen, wenn es sich nicht um ein normales Verhalten handelt. In diesem Fall ist es wichtig, die Prozesse zu identifizieren, die dieses Problem verursachen. Wenn das Problem der Datenbankprozess ist, müssen Sie überprüfen, was in der Datenbank vor sich geht.

RAM-Speicher oder SWAP-Nutzung

Wenn Sie einen hohen Wert für diese Metrik sehen und sich an Ihrem System nichts geändert hat, müssen Sie wahrscheinlich Ihre Datenbankkonfiguration überprüfen. Parameter wie shared_buffers und work_mem können dies direkt beeinflussen, da sie die Speichermenge definieren, die für die PostgreSQL-Datenbank verwendet werden kann.

Festplattennutzung

Eine ungewöhnliche Erhöhung der Nutzung von Festplattenspeicher oder ein übermäßiger Verbrauch des Festplattenzugriffs sind wichtige Dinge, die überwacht werden müssen, da möglicherweise eine große Anzahl von Fehlern in der PostgreSQL-Protokolldatei oder eine fehlerhafte Cache-Konfiguration protokolliert werden Generieren Sie einen erheblichen Plattenzugriffsverbrauch, anstatt Speicher zum Verarbeiten der Abfragen zu verwenden.

Ladungsdurchschnitt

Es hängt mit den drei oben genannten Punkten zusammen. Ein hoher Lastdurchschnitt kann durch eine übermäßige CPU-, RAM- oder Festplattennutzung erzeugt werden.

Netzwerk

Ein Netzwerkproblem kann alle Systeme betreffen, da die Anwendung keine Verbindung zur Datenbank herstellen kann (oder verlorene Pakete verbinden kann), daher ist dies eine wichtige Metrik, die es zu überwachen gilt. Sie können Latenz oder Paketverlust überwachen, und das Hauptproblem könnte eine Netzwerksättigung, ein Hardwareproblem oder einfach nur eine schlechte Netzwerkkonfiguration sein.

PostgreSQL-Datenbanküberwachung

Die Überwachung Ihrer PostgreSQL-Datenbank ist nicht nur wichtig, um zu sehen, ob Sie ein Problem haben, sondern auch um zu wissen, ob Sie etwas ändern müssen, um Ihre Datenbankleistung zu verbessern, das ist wahrscheinlich eines der wichtigsten Dinge in einer Datenbank zu überwachen. Sehen wir uns einige Metriken an, die dafür wichtig sind.

Anfrageüberwachung

Standardmäßig ist PostgreSQL im Hinblick auf Kompatibilität und Stabilität konfiguriert, daher müssen Sie Ihre Abfragen und sein Muster kennen und Ihre Datenbanken je nach vorhandenem Datenverkehr konfigurieren. Hier können Sie den Befehl EXPLAIN verwenden, um den Abfrageplan für eine bestimmte Abfrage zu überprüfen, und Sie können auch die Anzahl von SELECT, INSERT, UPDATE oder DELETEs auf jedem Knoten überwachen. Wenn Sie eine lange Abfrage haben oder viele Abfragen gleichzeitig ausgeführt werden, kann dies ein Problem für alle Systeme darstellen.

Aktive Sitzungen überwachen

Sie sollten auch die Anzahl der aktiven Sitzungen überwachen. Wenn Sie sich dem Limit nähern, müssen Sie überprüfen, ob etwas nicht stimmt oder ob Sie nur den Wert max_connections erhöhen müssen. Der Unterschied in der Anzahl kann eine Zunahme oder Abnahme der Verbindungen sein. Schlechte Nutzung des Verbindungspools, Sperren oder ein Netzwerkproblem sind die häufigsten Probleme im Zusammenhang mit der Anzahl der Verbindungen.

Datenbanksperren

Wenn Sie eine Abfrage haben, die auf eine andere Abfrage wartet, müssen Sie überprüfen, ob diese andere Abfrage ein normaler Prozess oder etwas Neues ist. In einigen Fällen, wenn beispielsweise jemand eine Aktualisierung an einer großen Tabelle vornimmt, kann diese Aktion das normale Verhalten Ihrer Datenbank beeinträchtigen und eine große Anzahl von Sperren erzeugen.

Replikation überwachen

Die Schlüsselmetriken, die für die Replikation überwacht werden müssen, sind die Verzögerung und der Replikationsstatus. Die häufigsten Probleme sind Netzwerkprobleme, Hardwareressourcenprobleme oder Unterdimensionierungsprobleme. Wenn Sie mit einem Replikationsproblem konfrontiert sind, müssen Sie dies so schnell wie möglich wissen, da Sie es beheben müssen, um die Hochverfügbarkeitsumgebung sicherzustellen.

Überwachung von Backups

Das Vermeiden von Datenverlust ist eine der grundlegenden DBA-Aufgaben, daher müssen Sie nicht nur das Backup erstellen, Sie sollten auch wissen, ob das Backup abgeschlossen und verwendbar ist. Normalerweise wird dieser letzte Punkt nicht berücksichtigt, aber es ist wahrscheinlich die wichtigste Überprüfung in einem Backup-Prozess.

Datenbankprotokolle überwachen

Sie sollten Ihr Datenbankprotokoll auf Fehler wie FATAL oder Deadlock oder sogar auf häufige Fehler wie Authentifizierungsprobleme oder lang andauernde Abfragen überwachen. Die meisten Fehler werden in die Protokolldatei mit detaillierten nützlichen Informationen zur Behebung geschrieben.

Dashboards

Sichtbarkeit ist nützlich für die schnelle Erkennung von Problemen. Es ist definitiv eine zeitaufwändigere Aufgabe, eine Befehlsausgabe zu lesen, als nur eine Grafik anzusehen. Die Verwendung eines Dashboards könnte also den Unterschied zwischen der Erkennung eines Problems jetzt oder in den nächsten 15 Minuten ausmachen, wobei die meisten sicher sind, dass Zeit für das Unternehmen wirklich wichtig sein könnte.

Warnung

Ein System nur zu überwachen, macht keinen Sinn, wenn Sie nicht zu jedem Problem eine Benachrichtigung erhalten. Ohne ein Warnsystem sollten Sie zum Überwachungstool gehen, um zu sehen, ob alles in Ordnung ist, und es könnte möglich sein, dass Sie seit vielen Stunden ein großes Problem haben.

Überwachung Ihrer PostgreSQL-Datenbank mit ClusterControl

Es ist wirklich schwierig, ein Tool zu finden, um alle notwendigen Metriken für PostgreSQL zu überwachen, im Allgemeinen müssen Sie mehr als eines verwenden und es müssen sogar einige Skripte erstellt werden. Eine Möglichkeit, die Überwachungs- und Warnaufgaben zu zentralisieren, ist die Verwendung von ClusterControl, das Ihnen Funktionen wie Sicherungsverwaltung, Überwachung und Warnung, Bereitstellung und Skalierung, automatische Wiederherstellung und weitere wichtige Funktionen bietet, die Sie bei der Verwaltung Ihrer Datenbanken unterstützen. Alle diese Funktionen auf demselben System.

ClusterControl hat einen vordefinierten Satz von Dashboards für Sie, um einige der gängigsten Metriken zu analysieren.

Sie können damit die im Cluster verfügbaren Diagramme anpassen, und das können Sie Aktivieren Sie die agentenbasierte Überwachung, um detailliertere Dashboards zu erstellen.

Sie können auch Benachrichtigungen erstellen, die Sie über Ereignisse in Ihrem Cluster informieren, oder mit verschiedenen Diensten wie PagerDuty oder Slack integrieren.

Sie können auch den Abschnitt zur Abfrageüberwachung überprüfen, in dem Sie die Top-Abfragen, die laufenden Abfragen, Abfrageausreißer und die Abfragestatistiken.

Mit diesen Funktionen können Sie sehen, wie Ihre PostgreSQL-Datenbank läuft.

ClusterControl zentralisiert das Backup-Management, um Ihre Daten zu schützen, zu sichern und wiederherzustellen, und mit der Verifizierungs-Backup-Funktion können Sie bestätigen, ob das Backup in Ordnung ist.

Dieser Überprüfungssicherungsjob stellt die Sicherung auf einem separaten eigenständigen Host wieder her, also Sie können sich vergewissern, dass die Sicherung funktioniert.

Überwachung mit der ClusterControl-Befehlszeile

Für Skripterstellung und Automatisierung von Aufgaben, oder auch wenn Sie einfach die Befehlszeile bevorzugen, hat ClusterControl das s9s-Tool. Es ist ein Befehlszeilentool zum Verwalten Ihres Datenbankclusters.

Cluster-Liste

Knotenliste

Fazit

Überwachung ist absolut notwendig, und die beste Vorgehensweise hängt von der Infrastruktur und dem System selbst ab. In diesem Blog stellen wir Ihnen Percona Distribution für PostgreSQL vor und haben einige wichtige Metriken erwähnt, die Sie in Ihrer PostgreSQL-Umgebung überwachen sollten. Wir haben Ihnen auch gezeigt, wie ClusterControl für diese Aufgabe nützlich ist.