Moodle ist ein Learning Management System (LMS), das entwickelt wurde, um Pädagogen, Administratoren und Lernenden ein einziges robustes, sicheres und integriertes System zur Schaffung personalisierter Lernumgebungen bereitzustellen. Es unterstützt verschiedene Datenbanktechnologien (z. B. MariaDB, MySQL, PostgreSQL usw.).
Aufgrund von COVID-19 hat das Arbeiten und Lernen von zu Hause aus in letzter Zeit exponentiell zugenommen, sodass die Verfügbarkeit und Leistung dieser Art von Lernplattform immer wichtiger wird. Der einzige Weg, um sicherzustellen, dass alles gut läuft, ist ein gutes Überwachungs- und Warnsystem, aber die Frage ist, was Sie überwachen müssen, um sicherzustellen, dass Ihre Systeme ordnungsgemäß funktionieren.
In diesem Blog werfen wir einen Blick darauf, was Sie in einer PostgreSQL-Moodle-Datenbank überwachen müssen und wie Sie es mit ClusterControl einfacher machen können.
Was in PostgreSQL überwacht werden soll
Bei der Überwachung eines Datenbankknotens oder -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.
Betriebssystemüberwachung
Eine wichtige Sache (die allen Datenbank-Engines gemeinsam ist und sogar allen systems) besteht darin, das Verhalten des Betriebssystems zu überwachen. Hier sind einige Punkte, die Sie hier überprüfen 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 diesen Messwert 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 mit Blick auf Kompatibilität und Stabilität konfiguriert, daher müssen Sie Ihre Abfragen und sein Muster kennen und Ihre Datenbanken entsprechend dem Datenverkehr konfigurieren, den Sie haben. 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.
Sperren
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
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.
Überwachung Ihrer PostgreSQL-Moodle-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. ClusterControl unterstützt die besten Open-Source-Datenbanktechnologien und Sie können viele der Datenbankaufgaben automatisieren, die Sie regelmäßig ausführen müssen, wie z. B. das Hinzufügen und Skalieren neuer Knoten, das Ausführen von Sicherungen und Wiederherstellungen und mehr.
Sie können Ihre Server in Echtzeit mit einem vordefinierten Satz von Dashboards überwachen, um einige der häufigsten Metriken zu analysieren.
Es ermöglicht Ihnen, die im Cluster verfügbaren Diagramme anzupassen, 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 integrieren Sie es mit verschiedenen Diensten wie PagerDuty oder Slack.
Im Abschnitt Abfrageüberwachung finden Sie die wichtigsten Abfragen, die running Abfragen, Abfrageausreißer und Abfragestatistiken zur Überwachung Ihres Datenbankverkehrs.
ClusterControl zentralisiert die Backup-Verwaltung, um Ihre Dateien zu schützen, zu sichern und wiederherzustellen Daten, und mit der Verifizierungssicherungsfunktion können Sie bestätigen, ob die Sicherung einsatzbereit 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.
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 genannten Dinge gleich handhaben zentrales System:ClusterControl.
Überwachung mit der ClusterControl-Befehlszeile
Für Skripterstellung und Automatisierung von Aufgaben oder auch wenn Sie einfach die Befehlszeile bevorzugen, verfügt ClusterControl über das s9s-Tool. Es ist ein Befehlszeilentool zum Verwalten Ihres Datenbank-Clusters.
Cluster-Liste
Knotenliste
Sie können alle Aufgaben ausführen, die Sie im ClusterControl sehen können UI (und noch mehr), und Sie können diese Funktion mit einigen externen Tools wie Slack integrieren, um sie von dort aus zu verwalten.
Fazit
Die Überwachung Ihrer Moodle PostgreSQL-Datenbank ist notwendig, aber auch eine zeitaufwändige Aufgabe, wenn Sie kein Tool haben, das Ihnen dabei hilft. In diesem Blog haben wir einige wichtige Metriken erwähnt, die Sie in Ihrer Moodle PostgreSQL-Datenbank überwachen sollten, und wie Sie Ihre Systeme mithilfe von ClusterControl unter Kontrolle halten können.