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

Überwachung von PostgreSQL in einer Hybridumgebung

Hybrid Cloud ist ein neueres Konzept, das seit einigen Jahren weiterentwickelt wird und heute in jedem Unternehmen eine gängige Topologie für einen Notfallwiederherstellungsplan (DRP) oder sogar für Redundanz auf Ihren Systemen ist.

Sobald Sie Ihre Hybrid Cloud-Umgebung eingerichtet haben, müssen Sie wissen, was die ganze Zeit passiert. Die Überwachung ist ein Muss, wenn Sie sicher sein wollen, dass alles in Ordnung ist oder wenn Sie möglicherweise etwas ändern müssen. Für jede Datenbanktechnologie müssen mehrere Dinge überwacht werden. Einige davon sind spezifisch für die Datenbank-Engine, den Anbieter oder sogar die spezifische Version, die Sie verwenden.

In diesem Blog werden wir sehen, was Sie in einer PostgreSQL-Datenbank überwachen müssen, die in einer Hybrid-Cloud-Umgebung ausgeführt wird, und wie ClusterControl Ihnen bei dieser Aufgabe helfen kann.

Was in PostgreSQL überwacht werden soll

Bei der Überwachung eines Datenbank-Clusters oder -Knotens 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 (die alle Datenbank-Engines und sogar alle Systeme gemeinsam haben) ist die Überwachung des Verhaltens des Betriebssystems. 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, den Prozess/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. Eine hohe durchschnittliche Auslastung kann durch ü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.

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

Im Allgemeinen werden die Datenbanken standardmäßig im Hinblick auf Kompatibilität und Stabilität konfiguriert, daher müssen Sie Ihre Abfragen und deren 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

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 maximalen Verbindungswert in der Datenbankkonfiguration erhöhen müssen. Der Unterschied in der Anzahl kann eine Zunahme oder Abnahme der Verbindungen sein. Schlechte Nutzung des Verbindungspools, Sperren oder Netzwerkprobleme 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.

Replikationsstatus

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.

Sicherungen

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

Sie sollten Ihr Datenbankprotokoll auf Fehler, Authentifizierungsprobleme oder sogar lange laufende Abfragen überwachen. Die meisten Fehler werden in die Protokolldatei mit detaillierten nützlichen Informationen zu ihrer Behebung geschrieben.

Benachrichtigungen und Warnungen

Ein System nur zu überwachen reicht nicht aus, wenn Sie nicht bei 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. Diese Benachrichtigungsaufgabe kann mithilfe von E-Mail-Benachrichtigungen, Textbenachrichtigungen oder anderen Tools wie Slack ausgeführt werden.

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.

Ein wichtiger Punkt hier ist, dass ClusterControl in der Cloud, On-Prem oder sogar einer Kombination aus beidem funktioniert. Die Anforderung hier ist, SSH-Zugriff auf die Knoten zu haben, und dann kümmert sich ClusterControl darum.

Überwachung Ihrer PostgreSQL-Datenbank mit ClusterControl

ClusterControl ist ein Verwaltungs- und Überwachungssystem, mit dem Sie Ihre Datenbanken über eine benutzerfreundliche Oberfläche bereitstellen, verwalten, überwachen und skalieren können. Es unterstützt die besten Open-Source-Datenbanktechnologien und Sie können viele der Datenbankaufgaben automatisieren, die Sie regelmäßig durchführen müssen, wie z. B. das Hinzufügen und Skalieren neuer Knoten, das Ausführen von Sicherungen und Wiederherstellungen und mehr.

ClusterControl ermöglicht es Ihnen, Ihre Server in Echtzeit mit einem vordefinierten Satz von Dashboards zu überwachen, um einige der häufigsten Metriken zu analysieren.

Es ermöglicht Ihnen, die im Cluster verfügbaren Diagramme anzupassen, und Sie können die agentenbasierte Überwachung aktivieren, um detailliertere Dashboards zu erstellen.

Sie können auch Benachrichtigungen erstellen, die Sie über Ereignisse in Ihrem Cluster informieren, oder sich in verschiedene Dienste wie PagerDuty oder Slack integrieren.

Im Bereich Abfrageüberwachung finden Sie die wichtigsten Abfragen, die laufenden Abfragen, Abfrageausreißer und Abfragestatistiken zur Überwachung Ihres Datenbankverkehrs.

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üfungs-Backup-Job stellt das Backup auf einem separaten eigenständigen Host wieder her, sodass Sie sicherstellen können, dass das Backup funktioniert.

Schließlich müssen Sie nicht auf Ihren Datenbankknoten zugreifen, um die Protokolle zu überprüfen, Sie können alle Ihre Datenbankprotokolle zentral im ClusterControl-Protokollabschnitt finden.

Wie Sie sehen können, können Sie alle erwähnten Dinge von demselben zentralisierten System aus handhaben:ClusterControl.

Ü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 oder Überwachen Ihres Datenbank-Clusters.

Cluster-Liste

Knotenliste

Sie können alle Aufgaben (und noch mehr) ausführen, die in der ClusterControl-Benutzeroberfläche verfügbar sind, und Sie können diese Funktion mit einigen externen Tools wie Slack integrieren, um sie von dort aus zu verwalten.

Fazit

Wie Sie sehen können, ist Überwachung absolut notwendig, egal ob es vor Ort, in der Cloud oder sogar auf einer Mischung davon läuft, und die beste Vorgehensweise hängt von der Infrastruktur und dem System selbst ab. In diesem Blog haben wir einige wichtige Metriken erwähnt, die Sie in Ihrer PostgreSQL-Umgebung überwachen sollten, und wie Sie ClusterControl verwenden, um die Arbeit zu erledigen.