Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was in MySQL 8.0 überwacht werden soll

Überwachung ist in allen Umgebungen ein Muss, und Datenbanken sind da keine Ausnahme. Sobald Sie Ihre Datenbankinfrastruktur eingerichtet haben, müssen Sie die Vorgänge im Auge behalten. Überwachung ist ein Muss, wenn Sie sicher sein wollen, dass alles gut läuft, aber auch, wenn Sie notwendige Anpassungen vornehmen, während Ihr System wächst und sich weiterentwickelt. Auf diese Weise können Sie Trends erkennen, Upgrades oder Verbesserungen planen oder angemessen auf Probleme oder Fehler reagieren, die bei neuen Versionen, anderen Verwendungszwecken usw. auftreten können.

Für jede Datenbanktechnologie gibt es verschiedene Dinge zu überwachen. Einige davon sind spezifisch für die Datenbank-Engine, den Anbieter oder sogar die bestimmte Version, die Sie verwenden. Datenbank-Cluster hängen stark von der zugrunde liegenden Infrastruktur ab, daher sind Netzwerk- und Betriebsstatistiken auch für Datenbankadministratoren interessant.

Beim Betrieb mehrerer Datenbanksysteme kann die Überwachung dieser Systeme ziemlich lästig werden.

In diesem Blog werfen wir einen Blick darauf, was Sie zur Überwachung einer MySQL 8.0-Umgebung benötigen. Wir werden uns auch die Überwachungsfunktionen der Clustersteuerung ansehen, die Ihnen dabei helfen können, den Zustand Ihrer Datenbanken kostenlos zu verfolgen.

Betriebssystem- und Datenbanksystemüberwachung

Bei der Beobachtung eines Datenbankclusters oder -knotens sind zwei Hauptpunkte zu berücksichtigen:das Betriebssystem und die MySQL-Instanz selbst. Sie müssen definieren, welche Metriken Sie von beiden Seiten überwachen und wie Sie dies tun werden. Sie müssen die Parameter immer im Sinne Ihres Systems befolgen und nach Änderungen am Verhaltensmodell suchen.

Beachten Sie, dass, wenn einer Ihrer Parameter betroffen ist, dies auch andere beeinflussen kann, was die Fehlerbehebung des Problems komplizierter macht. Ein geeignetes Überwachungs- und Warnsystem ist unerlässlich, um diese Aufgabe so einfach wie möglich zu gestalten.

In den meisten Fällen müssen Sie einige Tools verwenden, da es schwierig ist, eines zu finden, das alle gewünschten Metriken abdeckt.

OS-Systemüberwachung

Eine wichtige Sache (die alle Datenbank-Engines und sogar alle Systeme gemeinsam haben) ist die Überwachung des Verhaltens des Betriebssystems. Hier sind einige Punkte, die Sie hier überprüfen sollten. Unten finden Sie die wichtigsten Systemressourcen, die Sie auf einem Datenbankserver beobachten können. Es ist eigentlich auch die Liste der allerersten Dinge, die überprüft werden müssen.

CPU-Nutzung

Eine hohe CPU-Auslastung ist keine schlechte Sache, solange Sie das Limit nicht erreichen. Ein übermäßiger Prozentsatz der CPU-Auslastung könnte ein Problem darstellen, wenn es sich nicht um ein übliches 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

Idealerweise sollte Ihre gesamte Datenbank im Hauptspeicher abgelegt werden, aber das ist nicht immer möglich. Geben Sie MySQL so viel, wie Sie sich leisten können, aber lassen Sie genug übrig, damit andere Prozesse funktionieren.

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 MySQL-Datenbank verwendet werden kann. Swap ist nur für Notfälle gedacht und sollte nicht verwendet werden. Stellen Sie sicher, dass Ihr Betriebssystem auch so eingestellt ist, dass MySQL über die Swap-Nutzung entscheidet.

Festplattennutzung 

Die Festplattennutzung ist eine der wichtigsten Metriken, die überwacht und gewarnt werden müssen. Stellen Sie sicher, dass Sie immer freien Speicherplatz für neue Daten, temporäre Dateien, Snapshots oder Backups haben.

Die Überwachung harter Metrikwerte ist nicht gut genug. Eine anormale Zunahme der Nutzung von Festplattenspeicher oder ein übermäßiger Verbrauch des Festplattenzugriffs sind wichtige Dinge, die Sie beobachten sollten, da Sie möglicherweise eine hohe Anzahl von Fehlern in der MySQL-Protokolldatei oder eine lausige Cache-Konfiguration haben, die stattdessen einen lebenswichtigen Verbrauch des Festplattenzugriffs erzeugen könnten Verwenden des Arbeitsspeichers zum Verarbeiten der Abfragen. Stellen Sie sicher, dass Sie abnormales Verhalten erkennen können, auch wenn Ihre Warn- und kritischen Messwerte noch nicht erreicht sind.

Neben der Überwachung des Speicherplatzes sollten wir auch die Festplattenaktivität überwachen. Die wichtigsten zu überwachenden Werte sind:

  • Lese-/Schreibanfragen
  • Länge der E/A-Warteschlange
  • Durchschnittliche E/A-Wartezeit
  • Durchschnittliche Lese-/Schreibzeit
  • Lese-/Schreibbandbreite

Sie können iostat oder pt-diskstats von Percona verwenden, um all diese Details anzuzeigen.

Dinge, die Ihre Festplattenleistung beeinträchtigen können, hängen oft mit der Datenübertragung von und zu Ihrer Festplatte zusammen, also überwachen Sie anormale Prozesse, die von anderen Benutzern gestartet werden können.

Lastdurchschnitt

Eine All-in-One-Leistungsmetrik. Das Verständnis von Linux Load ist ein Schlüssel zur Überwachung von OS- und datenbankabhängigen Systemen.

Lastmittelwert bezogen auf die drei oben genannten Punkte. Ein hoher Lastdurchschnitt kann durch eine übermäßige CPU-, RAM- oder Festplattennutzung erzeugt werden.

Netzwerk

Wenn Sie keine Backups erstellen oder große Datenmengen übertragen, sollte dies nicht der Engpass sein.

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

Während Überwachung ein Muss ist, ist sie normalerweise nicht kostenlos. Abhängig davon, wie viel Sie überwachen, entstehen immer Kosten für die Datenbankleistung. Daher sollten Sie es vermeiden, Dinge zu überwachen, die Sie nicht verwenden werden.

Im Allgemeinen gibt es zwei Möglichkeiten, Ihre Datenbanken zu überwachen, aus den Protokollen oder von der Datenbankseite durch Abfragen.

Im Fall von Protokollen benötigen Sie, um sie verwenden zu können, ein hohes Protokollierungsniveau, das einen hohen Festplattenzugriff erzeugt und die Leistung Ihrer Datenbank beeinträchtigen kann.

Für den Abfragemodus verbraucht jede Verbindung zur Datenbank Ressourcen, daher kann dies je nach Aktivität Ihrer Datenbank und den zugewiesenen Ressourcen auch die Leistung beeinträchtigen.

Natürlich gibt es viele Metriken in MySQL. Hier konzentrieren wir uns auf das Wichtigste.

Aktive Sitzungen überwachen

Sie sollten auch die Anzahl der aktiven Sitzungen und den DB-Up-Down-Status verfolgen. Um das Problem zu verstehen, müssen Sie häufig sehen, wie lange die Datenbank ausgeführt wird. damit wir dies verwenden können, um Respawns zu erkennen.

Das nächste wären mehrere Sitzungen. 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. Unsachgemäße Verwendung von Verbindungspooling, Sperren oder Netzwerkprobleme sind die häufigsten Probleme im Zusammenhang mit der Anzahl der Verbindungen.

Die Schlüsselwerte hier sind

  • Verfügbarkeit
  • Threads_connected
  • Max_used_connections
  • Abgebrochene_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. Nicht nur der Up-Down-Status, sondern auch die Verzögerung, denn ein kontinuierliches Ansteigen dieses Werts ist kein sehr gutes Zeichen, da es bedeutet, dass der Slave seinen Master nicht einholen kann.

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.

Die Replikation wird am besten überwacht, indem der SLAVE STATUS und die folgenden Parameter überprüft werden:

  • SLAVE_RUNNING
  • SLAVE_IO_Running
  • SLAVE_SQL_RUNNING
  • LAST_SQL_ERRNO
  • SECONDS_BEHIND_MASTER

Sicherungen

Leider enthält die Vanilla Community Edition keinen Backup-Manager. Sie sollten wissen, ob das Backup abgeschlossen wurde und ob es verwendbar ist. Normalerweise wird dieser letzte Punkt nicht berücksichtigt, aber es ist wahrscheinlich der kritischste Check in einem Backup-Prozess. Hier müssten wir auf externe Tools wie percona-xtrabackup oder ClusterControl zurückgreifen.

Datenbankprotokolle

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. Häufige Fehlerpunkte, die Sie im Auge behalten müssen, sind Fehler und Protokolldateigrößen. Den Speicherort des Fehlerprotokolls finden Sie unter der Variable log_error.

Externe Tools

Zu guter Letzt finden Sie hier eine Liste nützlicher Tools zur Überwachung Ihrer Datenbankaktivität.

Percona Toolkit - ist ein Satz von Linux-Tools von Percona zur Analyse von MySQL- und Betriebssystemaktivitäten. Sie finden es hier. Es unterstützt die beliebtesten 64-Bit-Linux-Distributionen wie Debian, Ubuntu und Redhat.

mysqladmin - mysqladmin ist ein Verwaltungsprogramm für den MySQL-Daemon. Es kann verwendet werden, um den Serverzustand zu überprüfen (Ping), die Prozesse aufzulisten, die Werte der Variablen anzuzeigen, aber auch einige Verwaltungsarbeiten wie das Erstellen/Löschen von Datenbanken, das Leeren (Zurücksetzen) von Protokollen, Statistiken und Tabellen, das Beenden laufender Abfragen, Stoppen Sie den Server und steuern Sie die Replikation.

innotop - bietet eine erweiterte Ansicht von SHOW-Anweisungen. Es ist sehr leistungsfähig und kann die Untersuchungszeit erheblich verkürzen. Neben der Vanilla-MySQL-Unterstützung können Sie die Galera-Ansicht und Details zur Master-Slave-Replikation sehen.

mtop - überwacht einen MySQL-Server und zeigt die Abfragen an, die am längsten dauern. Zu den Funktionen gehören das „Zoomen“ eines Prozesses, um die vollständige Abfrage anzuzeigen, das „Erklären“ der Informationen des Abfrageoptimierers für eine Abfrage und das „Beenden“ von Abfragen. Darüber hinaus werden Statistiken zur Serverleistung, Konfigurationsinformationen und Optimierungstipps bereitgestellt.

Mytop -  läuft in einem Terminal und zeigt Statistiken über Threads, Abfragen, langsame Abfragen, Betriebszeit, Auslastung usw. in tabellarischer Form an, ähnlich wie Linux

Fazit

Dieser Blog ist nicht als erschöpfender Leitfaden zur Verbesserung der Datenbanküberwachung gedacht, aber er gibt hoffentlich ein klareres Bild davon, welche Dinge wesentlich werden können, und einige der grundlegenden Parameter, die überwacht werden können. Zögern Sie nicht, uns in den Kommentaren unten mitzuteilen, ob wir wichtige vergessen haben.