Suche
Close this search box.
Suche

Erfahrungen bei der Implementierung von Percona Monitoring and Management (PMM) als Datenbank-Monitoringsystem bei Thalia

Einleitung

Datenbanksysteme gehören zu den wichtigsten Systemen in unserer E-Commerce-Landschaft. Sie sind das Rückgrat unserer Anwendungen und tragen maßgeblich zur Leistung, Verfügbarkeit und Skalierbarkeit unserer Plattform bei. Für einen performanten Betrieb ist das Monitoring ein wichtiger Baustein. Bei Thalia haben wir vor kurzem unser Monitoring für Datenbanksysteme von SQL Diagnostic Manager for MySQL (früher MONyog) auf Percona Monitoring and Management (PMM) umgestellt. Dieser Artikel beschreibt unsere Erfahrungen, die Gründe für den Wechsel und die Vorteile, die wir durch die Implementierung von PMM erzielen konnten.

Ursprüngliches System: SQL Diagnostic Manager for MySQL (früher MONyog)

SQL Diagnostic Manager for MySQL (früher MONyog) war seit mehreren Jahren unser Hauptwerkzeug zur Überwachung unserer MySQL-Datenbanksysteme. Es bot eine benutzerfreundliche Oberfläche und grundlegende Monitoring-Funktionen, die für unseren ursprünglichen Bedarf ausreichend waren. Mit dem Wachstum unseres Unternehmens und der zunehmenden Komplexität unserer Datenbankinfrastruktur stießen wir jedoch auf verschiedene Einschränkungen:

  • Skalierbarkeit: MONyog konnte mit der zunehmenden Anzahl von Datenbankinstanzen nicht effizient skalieren.
  • Erweiterte Funktionen: Moderne Anforderungen an die Überwachung erforderten detailliertere Metriken und tiefere Einblicke in die Leistung und Verfügbarkeit.
  • Kosten: Die Lizenzkosten für MONyog stiegen mit der Anzahl der zu überwachenden Datenbankinstanzen erheblich.

Der Wechsel auf Percona Monitoring and Management (PMM)

Vor dem Hintergrund der Probleme mit SQL Diagnostic Manager haben wir unter Einbindung der Nutzergruppen eine umfassende Evaluierung verschiedener Monitoring-Lösungen gestartet. Am Ende haben wir uns für PMM aus den folgenden Gründen entschieden:

  • Open Source: PMM ist eine Open-Source-Lösung, die lizenzkostenfrei genutzt werden kann. Dies war ein wichtiger Faktor bei der Kostenoptimierung.
  • Umfassende Metriken: PMM bietet eine breite Palette von Metriken und Dashboards für die Überwachung von MySQL, MongoDB und PostgreSQL-Datenbanken.
  • Integration: PMM integriert sich nahtlos mit anderen Percona-Produkten und Open-Source-Werkzeugen wie Grafana und Prometheus.
  • Skalierbarkeit: Die Architektur von PMM ermöglicht eine effiziente Überwachung großer und komplexer Datenbanklandschaften.
  • Monitoring und Logging: PMM bietet integrierte Tools für das Monitoring und Logging, die uns helfen, die Systemleistung zu überwachen und Probleme schnell zu identifizieren und zu beheben.
PMM Test Dashboard

Implementierungserfahrungen PMM

Vorbereitung und Planung

Die Migration zu PMM erforderte eine sorgfältige Planung und Vorbereitung. Zu den wichtigsten Schritten gehörten:

  • Bedarfsermittlung: Analyse unserer aktuellen und zukünftigen Überwachungsanforderungen.
  • Architekturdesign: Entwurf einer skalierbaren Architektur für PMM, einschließlich der Konfiguration von Prometheus und Grafana.
  • Testumgebung: Einrichtung einer Testumgebung, um die Funktionen und die Leistung von PMM zu evaluieren.

Implementierungsprozess

  • Installation: Die Installation von PMM verlief reibungslos, dank der ausführlichen Dokumentation und der Unterstützung der Percona-Community.
  • Datenmigration: Übertragung der bestehenden Überwachungsdaten von MONyog zu PMM war nicht direkt möglich, daher konzentrierten wir uns auf die Einrichtung neuer Dashboards und Metriken.
  • Konfiguration: Anpassung der PMM-Einstellungen an unsere spezifischen Bedürfnisse, einschließlich Alarmierung, Benachrichtigungen und Dashboards.
  • Schulung: Schulung unseres Teams im Umgang mit den neuen Werkzeugen und Dashboards.

Betrieb von PMM als Docker Container

Ein wesentlicher Teil unserer Implementierungsstrategie war der Betrieb von PMM als Docker-Container. Dies brachte mehrere Vorteile mit sich:

  • Einfache Bereitstellung: Mit Docker konnten wir PMM schnell und einfach bereitstellen, indem wir vordefinierte Container-Images nutzten.
  • Isolierung: Die Containerisierung ermöglichte eine klare Trennung der PMM-Umgebung von anderen Anwendungen, was die Stabilität und Sicherheit erhöhte.
  • Portabilität: Docker-Container können problemlos zwischen verschiedenen Umgebungen migriert werden, was die Flexibilität bei der Verwaltung unserer Infrastruktur erhöhte.
  • Automatisierte Updates: Mit Docker können wir PMM-Updates automatisieren und somit sicherstellen, dass wir stets die neuesten Funktionen und Sicherheitsupdates nutzen.
  • Einfache Skalierung: Dank der containerisierten Architektur können wir PMM-Instanzen bei Bedarf einfach skalieren, ohne umfangreiche manuelle Konfigurationsänderungen vornehmen zu müssen.

Blick auf unsere bestehende MySQL-Server-Umgebung

Unsere MySQL-Server-Umgebung bei Thalia ist umfangreich und komplex. Hier ein kurzer Überblick:

  • Anzahl Server: Mehrere hundert virtuelle Maschinen (kleine bis mittlere Datenbanken) und mehrere dutzend Hardware-Server (große Datenbanken).
  • Speichernutzung: Rund mehrere dutzend Terabyte liegen über alle Server hinweg in den MySQL-Datenverzeichnissen. Insgesamt halten wir über hundert Terabyte an Plattenplatz für die Datenverzeichnisse vor.
  • Tabellen / Views: Mehrere zehntausend Tabellen und mehrere tausend Views gesamt über alle DB-Server.
  • Schemata / Datenbanken: Mehrere tausend Schemata über alle DB-Server hinweg.

Herausforderungen

Während der Implementierung stießen wir auf einige Herausforderungen:

  • Komplexität: Die Vielzahl der verfügbaren Metriken und Konfigurationsoptionen erforderte eine steile Lernkurve.
  • Integration: Die Integration von PMM mit unseren bestehenden Systemen und Prozessen erforderte Anpassungen und zusätzliche Entwicklungsarbeit.

Ergebnisse und Vorteile

Seit der Umstellung auf Percona PMM haben wir mehrere signifikante Vorteile festgestellt:

  • Verbesserte Transparenz: Die umfassenden Dashboards und Metriken von PMM bieten tiefere Einblicke in die Performance unserer Datenbanksysteme. Dadurch konnten wir beispielsweise langsamere Queries identifizieren und optimieren.
  • Proaktive Überwachung: Die erweiterten Alarmierungs- und Benachrichtigungsfunktionen ermöglichen es uns, potenzielle Probleme frühzeitig zu erkennen und zu beheben.
  • Kostenreduktion: Durch den Wegfall der Lizenzkosten für MONyog konnten wir unsere Betriebskosten senken.
  • Skalierbarkeit: PMM skaliert effizient mit unserer wachsenden Datenbankinfrastruktur, ohne dass zusätzliche Lizenzkosten anfallen.
  • Leichte Wartbarkeit: Die Nutzung von Docker-Containern und die automatisierten Update-Mechanismen erleichtern die Wartung und sorgen für eine kontinuierlich hohe Verfügbarkeit und Leistung.

Fazit

Die Migration von MONyog zu PMM war ein strategisch wichtiger Schritt für Thalia. Die Implementierung von PMM hat es uns ermöglicht, eine robustere und skalierbarere Überwachungslösung für unsere umfangreiche und komplexe MySQL-Datenbankumgebung zu realisieren. Trotz der anfänglichen Herausforderungen, wie der Komplexität der neuen Metriken und der Integration in unsere bestehenden Systeme, haben sich die Vorteile deutlich durchgesetzt.

PMM hat uns tiefere Einblicke in die Leistung unserer Datenbanksysteme ermöglicht und durch seine umfangreichen Dashboards und Metriken die Transparenz erheblich verbessert. Die proaktive Überwachung und die erweiterten Alarmierungs- und Benachrichtigungsfunktionen haben uns geholfen, potenzielle Probleme frühzeitig zu erkennen und zu beheben, was zu einer höheren Verfügbarkeit und Zuverlässigkeit unseres Gesamtsystems geführt hat. Die bereits vordefinierten Dashboards in PMM ermöglichen uns eine bessere Visualisierung und ein tieferes Verständnis der InnoDB Engines. Dank der integrierten Grafana Dashboards in PMM ist die Bedienung für alle unsere Teammitglieder sehr einfach. Wir nutzen Grafana bereits seit Jahren, was die Integration und Nutzung von PMM für uns besonders komfortabel macht. Durch die in PMM gesicherten Metriken können wir das Verhalten von MySQL Group Replication Clustern sowie ReplicaSets sehr genau analysieren und auch nachträglich betrachten. Dies hilft uns, detaillierte Einblicke in die Funktionsweise und Performance unserer Datenbankinfrastruktur zu gewinnen.

Auch für unsere DevOps-Engineers, die hauptsächlich als Enabler in den einzelnen Dev-Teams unterwegs sind, hat sich der Nutzen und die Sichtbarkeit bei der Durchführung von Änderungen am Schema der Datenbanken deutlich erhöht. Dies liegt unter anderem daran, dass PMM alle relevanten Informationen einfach nachvollziehbar darstellt. Hinzu kommt, dass für alle Metriken sogenannte Hilfe-Texte standardmäßig eingebunden sind, was die Bedienung und das Verständnis weiter erleichtert.

Die Kosteneinsparungen durch den Wegfall der MONyog-Lizenzkosten waren erheblich und tragen zur Optimierung unseres IT-Budgets bei. Darüber hinaus ermöglicht die containerisierte Architektur von PMM eine einfache Skalierung und Wartung, was die Effizienz unseres Betriebs weiter steigert.

Zusammenfassend lässt sich sagen, dass PMM eine wertvolle Ergänzung unserer E-Commerce-Plattform ist und uns dabei unterstützt, die Leistung und Verfügbarkeit unserer Datenbanksysteme kontinuierlich zu überwachen und zu verbessern. Dank PMM können wir nun tiefere Einblicke in unsere Datenbankumgebung gewinnen, was uns hilft, potenzielle Probleme schneller zu identifizieren und zu beheben. Dies hat nicht nur die Stabilität und Leistung unserer Plattform verbessert, sondern auch die Arbeit unserer Entwickler und Nutzer erheblich erleichtert. Wir sind zuversichtlich, dass PMM auch in Zukunft ein wesentlicher Bestandteil unserer IT-Infrastruktur sein wird, um den wachsenden Anforderungen im Bereich Datenbank-Monitoring gerecht zu werden.

Ähnliche Beiträge