MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Überwachung der MariaDB-Leistung in einer Hybrid Cloud

Die Leistung in unserer MariaDB-Datenbank ist einer der Bereiche, die wir in einer Produktionsumgebung und deren rechtzeitigen Betriebszustand genau überwachen und beobachten möchten. Es kann sehr zeit-, arbeits- und kostenintensiv sein, wenn das architektonische Setup eine Hybrid Cloud verwendet. Darüber hinaus gibt es so bestimmte Bereiche zu beachten, insbesondere den Netzwerkvermittler, der seine Konnektivität entweder als lokale oder private Cloud bereitstellt, die mit der öffentlichen Cloud (GCP, AWS, Azure usw.) und umgekehrt kommuniziert .

In diesem Blog dreht sich alles um die Überwachung der Leistung Ihrer MariaDB-Datenbanken in einer Hybrid-Cloud-Infrastruktur. Wir vermitteln Ihnen Grundlagen und die wichtigsten Schlüsselindikatoren für die Überwachung Ihrer MariaDB-Datenbankleistung in einem Hybrid-Cloud-Setup.

Warum brauchen Sie Leistungsüberwachung?

In einer Hybrid Cloud kann es kompliziert sein, jeden Dienst zu überwachen, den Sie in Anspruch nehmen. Im Gegensatz zu Ihrem eigenen Rechenzentrum oder Ihrer privaten Cloud haben Sie die volle Kontrolle über die Hardware- und Softwareinfrastruktur. Bei der öffentlichen Cloud gibt es Einschränkungen bei den von Ihnen angebotenen Diensten, und es können zusätzliche Kosten anfallen, wenn Sie andere Dienste wünschen, die Ihnen Metriken und Protokolle bereitstellen. Sicherheit ist auch ein Anliegen in Bezug auf Ihre vertraulichen Daten, die gesammelt werden.

Leistungsüberwachung hilft festzustellen, wie effizient und wie schnell Ihre Datenbanken in der Cloud, vor Ort oder in der privaten oder öffentlichen Cloud ausgeführt werden. In der Praxis eine Reihe getesteter und ergebnisbasierter Prozesse und Tools, die Ihnen Echtzeit- oder regelmäßige Metriken liefern.

Innerhalb einer Hybrid-Cloud sind nicht alle Software-Überwachungstools darauf ausgelegt, wichtige Metriken zu verwalten, die beobachtet und überwacht werden müssen. Sie sollten die Idee und das Wissen haben, um die erforderlichen Metriken und Anforderungen zu bestimmen, die das Tool bereitstellen kann. Bei einer Hybrid Cloud wird erwartet, dass die Art und Weise, wie eine Hybrid Cloud funktioniert, komplex sein kann. Die Dienste sind stark verteilt und mit anderen Diensten vermischt, die nicht nur an einen Anbieter gebunden sind.

In dieser Hinsicht hat Ihre Überwachungssoftware diese Besonderheiten und kann auch erkennen und entkoppeln, zu welcher Cloud sie gehört. Eine Überwachungssoftware oder -tools müssen in der Lage sein, Engpässe, Sicherheitsprobleme und Latenzen zu beheben, Skalierbarkeit bereitzustellen, über laufende Probleme zu informieren und Vorhersagen zu treffen. Die Vorhersage kann weitere Konsequenzen vermeiden, die zu einer Katastrophe führen oder die Effizienz Ihrer MariaDB-Datenbanken beeinträchtigen können. Dies hilft dem gesamten Team, einschließlich Infrastrukturingenieuren, Datenbankingenieuren, Serveradministratoren und Entwicklern, sicherzustellen, dass die Datenbankserver fehlerfrei sind und auf dem erwarteten Niveau laufen.

Dinge, die bei der Datenbanküberwachung zu beachten sind

Bei der Überwachung Ihres MariaDB-Datenbank-Clusters (Replikation oder Galera) oder -Knotens müssen zwei Hauptaspekte 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. Sie müssen die Metrik immer im Kontext Ihres Systems überwachen und nach Änderungen im Verhaltensmuster suchen.

In den meisten Fällen müssen Sie mehrere Tools verwenden (da es fast unmöglich ist, eines zu finden, das alle gewünschten Messwerte abdeckt.) 

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.

Überwachen Sie immer Ihre Serveraktivität (Netzwerk, Festplatte, Auslastung, Arbeitsspeicher und CPU)

Die Überwachung Ihrer Serveraktivität kann auch eine komplexe Aufgabe sein, wenn Sie einen sehr komplizierten Stack haben, der in Ihre Datenbankarchitektur eingebunden ist. Für eine MariaDB-Datenbank ist es jedoch immer am besten, Ihre Knoten immer als dedizierten Server einzurichten, um eine vollständige Selbstprüfung pro Knoten zu erhalten. Obwohl Sie dadurch nicht daran gehindert werden, alle freien Ressourcen zu nutzen, finden Sie unten die allgemeinen Schlüsselbereiche, die Sie sich ansehen müssen.

Netzwerk

Bei einer Hybrid-Cloud-Infrastruktur ist dies eines der wichtigsten Anliegen, das Sie untersuchen müssen, da Sie die Art des Designs und die Kommunikation zwischen der lokalen oder privaten Cloud und der öffentlichen Cloud berücksichtigen müssen und umgekehrt. In jedem Fall müssen Sie einen der Cluster oder Knoten auf seine Rolle spezialisieren, entweder als primärer Knoten für den Empfang von Schreibvorgängen oder als Notfallwiederherstellung. In diesem Zusammenhang möchten Sie nicht, dass Ihre Wiederherstellungsknoten Latenzen aufweisen, schlimmer noch, es kommt zu großen Replikationsverzögerungen. Wann immer es zu Verzögerungen kommt und wenn der primäre Cluster einer bestimmten Cloud (sagen wir Ihrer On-Prem) ausfällt, muss Ihre öffentliche Cloud übernehmen, soll aber in der Lage sein, die aktuellsten Daten bereitzustellen. Wann immer dies passieren kann, müssen Sie möglicherweise einen Pre-Failover-Mechanismus hinzufügen, der sich um inkrementelle Sicherungen oder PITR kümmert, falls einige Transaktionen oder Schreibvorgänge noch nicht in Ihrem Wiederherstellungscluster (oder in diesem Fall Ihrem öffentlichen Cloud-Cluster) angewendet wurden.

Wenn Sie Galera verwenden, wurde die Streaming-Replikation als eine der wichtigsten Funktionen und Änderungen gegenüber der vorherigen Version hinzugefügt, seit MariaDB Galera auf Version 4 aktualisiert hat. Da die Streaming-Replikation die Nachteile der vorherigen Versionen behebt, ermöglicht sie seit Galera Cluster 4 die Verwaltung von mehr als 2 GB Write-Sets. Dies ermöglicht die Fragmentierung großer Transaktionen und es wird dringend empfohlen, dies nur auf Sitzungsebene zu aktivieren. Das bedeutet, dass die Überwachung Ihrer Netzwerkaktivität sehr wichtig und entscheidend für die normale Aktivität Ihres MariaDB-Clusters ist. Auf diese Weise können Sie anhand des Zeitraums ermitteln, welcher Knoten den meisten oder höchsten Netzwerkverkehr hatte.

Ein gutes Beispiel für das Rendern der Netzwerküberwachung ist die Verwendung von ClusterControl. Es identifiziert jeden der Knoten und bietet einen Überblick über seine Netzwerkaktivität pro Knoten, unabhängig davon, in welcher Cloud sich der Knoten befindet. Siehe Screenshot unten:

CPU-, Speicher- und Lastaktivität

Lassen Sie mich kurz auf diese drei Bereiche eingehen, auf die Sie bei der Überwachung achten sollten. In diesem Abschnitt ist es immer am besten, wenn Sie die folgenden Bereiche gleichzeitig besser beobachten können. Es ist schnell und einfach zu verstehen und hilft beim Ausschließen eines Leistungsengpasses oder beim Identifizieren von Fehlern, die dazu führen, dass Ihre Knoten entweder ins Stocken geraten oder andere Knoten beeinträchtigen oder sogar die Möglichkeit haben, dass ein Cluster ausfällt.

Wie hilft also die CPU-, Speicher- und Ladeaktivität bei der Überwachung Ihrer MariaDB? Nun, wie ich oben erwähnt habe, sind dies eines der wenigen Dinge, die jedoch ein großer Faktor für die täglichen Routinekontrollen sind. Nun, dies hilft Ihnen auch zu erkennen, ob es sich um periodische oder zufällige Vorkommnisse handelt. Wenn dies regelmäßig geschieht, kann es sich um Sicherungen handeln, die in einem Ihrer MariaDB-Datenbankknoten ausgeführt werden, oder es handelt sich um eine umfangreiche Abfrage, die optimiert werden muss. Beispielsweise fehlerhafte Abfragen ohne ordnungsgemäße Indizes oder unausgeglichene Nutzung des Datenabrufs, z. B. das Durchführen eines Zeichenfolgenvergleichs für eine so große Zeichenfolge. Dies kann für Datenbanken vom Typ OLTP unbestreitbar unzutreffend sein, insbesondere wenn es sich wirklich um die Art und die Anforderungen Ihrer Anwendung handelt. Verwenden Sie besser andere Analysetools wie MariaDB Columnstore oder andere Analyseverarbeitungstools von Drittanbietern (Apache Spark, Kafka oder MongoDB usw.) für den Abruf großer Zeichenfolgendaten und/oder den Zeichenfolgenabgleich.

Da all diese Schlüsselbereiche überwacht werden, stellt sich die Frage, wie sie überwacht werden sollen. Es muss mindestens minütlich überwacht werden. Mit verfeinerter Überwachung, d. h. pro Sekunde kollektiver Metriken, kann dies ressourcenintensiv und sehr ressourcenintensiv sein. Obwohl eine halbe Minute Kollektivität akzeptabel ist, insbesondere wenn Ihre Daten und RPO (Recovery Point Objective) sehr niedrig sind, benötigen Sie granularere und Echtzeit-Datenmetriken. Es ist sehr wichtig, dass Sie das Gesamtbild Ihres Datenbankclusters überblicken können. Abgesehen davon ist es auch am besten und wichtig, dass Sie, wann immer Sie Metriken überwachen, das richtige Tool haben, um Ihre Aufmerksamkeit zu erregen, wenn Dinge in Gefahr sind, oder auch nur Warnungen. Die Verwendung des richtigen Tools wie ClusterControl hilft Ihnen bei der Verwaltung dieser wichtigen zu überwachenden Bereiche. Ich verwende eine kostenlose Version oder Community-Edition von ClusterControl, mit der ich meine Knoten problemlos von der Installation bis zur Überwachung der Knoten mit nur wenigen Klicks überwachen kann. Sehen Sie sich zum Beispiel die Screenshots unten an:

Es bietet auch eine Pro-Knoten-Basis mit einer einfachen Diagrammübersicht,

oder mit einem leistungsfähigeren und reichhaltigeren Datenmodell, das auch die Abfragesprache mit Prometheus unterstützt, kann Ihnen eine Analyse der Leistung Ihrer MariaDB-Datenbank basierend auf historischen Daten liefern, die ihre Leistung zeitnah vergleichen. Zum Beispiel

Das liefert Ihnen nur sichtbarere Metriken. Sie sehen also, wie wichtig es wirklich ist, das richtige Tool zu haben, wenn Sie Ihre MariaDB-Datenbank in einer Hybrid Cloud überwachen.

Kollektive Überwachung Ihrer MariaDB-Statistikvariablen

Von Zeit zu Zeit kann es nicht unvermeidlich sein, dass MariaDB-Datenbankversionen neue Statistiken zur Überwachung erstellen oder die Art der Überwachung der Datenbank verbessern, indem sie mehr Statusvariablen und verfeinerte Werte zur Verfügung stellen.

Gesendete/Empfangene Bytes

Die gesendeten oder empfangenen Bytes korrelieren mit der Netzwerkaktivität und sind einer der Schlüsselbereiche, die parallel betrachtet werden müssen, insbesondere in einer Hybrid-Cloud-Topologie. Auf diese Weise können Sie bestimmen, welcher Knoten am stärksten betroffen ist oder auf die Leistungsprobleme zurückzuführen ist, die in Ihrer MariaDB-Datenbank leiden. Dies ist sehr wichtig, da Sie überprüfen können, ob es eine Verschlechterung der Hardware wie Ihres Netzwerkgeräts oder des zugrunde liegenden Speichergeräts gibt, für die die Synchronisierung von schmutzigen Seiten zu viel Zeit in Anspruch nehmen kann.

Siehe Beispiel-Screenshot,

Cluster-Last

Dies ist eher die Datenbankaktivität, wie viele Änderungen oder Datenabrufe bisher seit der Betriebszeit des Servers abgefragt oder durchgeführt wurden. Es hilft Ihnen, auszuschließen, welche Art von Abfragen die Leistung Ihres Datenbank-Clusters am meisten beeinträchtigt. Dadurch können Sie insbesondere beim Lastausgleich Ihrer Datenbankanfragen Raum für Verbesserungen schaffen.

Als solches gibt es auf einem MariaDB-Datenbankserver unzählige Variablen, auf die man achten muss. Das Wichtigste, was Sie hier berücksichtigen müssen, ist das Tool, das Sie zum Überwachen Ihres Datenbank-Clusters verwenden. Mit ClusterControl (Community Edition) bietet es mir mehr Möglichkeiten mit der Flexibilität, in einer MariaDB-Datenbank nachzusehen. Siehe das Beispiel unten,

Dann können Sie auch aus dem Dropdown-Menü auswählen, welche anderen Variablen Sie sich ansehen möchten,

Dies ist sehr nützlich und hilft Ihnen beispielsweise bei einer Replikationstopologie in einer Hybrid Cloud herauszufinden. Sie können sich einen schnellen Überblick über den Status und die Leistung in Bezug auf das Netzwerk verschaffen, aber auch mit anderen variablen Hinweisen, um zu berücksichtigen und zu prüfen, welche Engpässe Ihre MariaDB-Leistung in einer Hybrid-Cloud-Topologie beeinträchtigen würden. Sie können feststellen, ob Ihre Anwendung schreibgierig ist, dann die Replikation und die Netzwerkübertragung beeinträchtigt werden, Sie können die Cluster-Interaktivität innerhalb von zwei oder mehr Cloud-Infrastrukturen abrufen. Am besten stellen Sie fest, wie gut Ihre Knoten mit der Belastung umgehen können. Besonders während Belastungstests, bevor bestimmte Änderungen in Ihrer Anwendung durchgeführt werden, ist es immer am besten, zu versuchen und zu testen, um das Kapazitätsmanagement Ihres Anwendungsprodukts zu bestimmen und festzustellen, ob Ihre aktuellen Datenbankknoten und Ihr Design die Last Ihrer Anwendungsanforderungen bewältigen können.

Für detailliertere und reichhaltigere Datenmetriken können Sie mithilfe der agentenbasierten Überwachung mehr Daten erhalten. Siehe unten,

So gehen Sie an die Überwachung Ihres MariaDB-Clusters heran. Eine perfekte Visualisierung ist immer einfacher und schneller zu handhaben. Wenn die Dinge schlecht laufen, können Sie es sich nicht leisten, Ihre Produktivität zu verlieren, und auch die Ausfallzeit kann sich auf Ihr Geschäft auswirken. Eine kostenlose Version bietet Ihnen zwar nicht den Luxus und Komfort bei der Verwaltung stark frequentierter Datenbanken; Alarme, Benachrichtigungen und Datenbankverwaltung in einem Bereich zu haben, ist ein einfaches Add-On, das ClusterControl ausführen kann.

Fazit

Die Überwachung Ihrer MariaDB-Datenbankserver in einer hybriden Cloud-Umgebung ist nicht einfach und auch kompliziert, insbesondere wenn es eine Vielzahl von Diensten und komplexe Beziehungen gibt, die den gesamten Stack Ihrer Technologie ausmachen. Die Verwendung der richtigen Überwachungstools hilft Ihnen, Ihre Anwendung effektiv zu verwalten und gleichzeitig die Produktivität zu steigern. Außerdem haben Sie mit den richtigen Überwachungstools mehr Zeit, sich auf die Verbesserung Ihrer Anwendungen und anderer Geschäftsprozesse zu konzentrieren.