Datenbanküberwachung · 5 min read · Sep 15, 2025

So überwachen Sie MySQL oder MariaDB mit Prometheus und Grafana

Um sicherzustellen, dass der MySQL/MariaDB-Server ordnungsgemäß funktioniert, müssen Sie das Monitoring in Ihrer Infrastruktur implementieren. Dies ermöglicht es Ihnen, die Leistung zu optimieren, Probleme/Engpässe zu identifizieren und sicherzustellen, dass Ihre Datenbank gesund ist. Mit Prometheus und Grafana können Sie dies erreichen und eine schöne Dashboard-Überwachung für MySQL-Server erstellen.

In diesem Leitfaden lernen Sie, wie Sie MySQL/MariaDB-Server mit Prometheus und Grafana überwachen. Sie richten den ‘prometheus-mysqld-exporter’ ein, um Metriken zu generieren und das Endpoint-Monitoring zum Prometheus-Server hinzuzufügen. Danach erstellen Sie ein neues Grafana-Dashboard für die MySQL-Überwachung.

Voraussetzungen

Um zu beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Einen installierten MySQL/MariaDB-Server
  • Einen Nicht-Root-Benutzer mit Administratorrechten
  • Prometheus und Grafana auf Ihrem Server installiert

MySQL/MariaDB-Benutzer einrichten

Um den MySQL/MariaDB-Server zu überwachen, müssen Sie einen neuen dedizierten MySQL-Benutzer erstellen. Dieser Benutzer hat die geringsten Berechtigungen, wie PROCESS, REPLICATION CLIENT und SELECT auf allen Ihren Datenbanken.

In diesem Abschnitt erstellen Sie einen neuen MySQL-Benutzer zur Überwachung Ihres MySQL-Servers.

Melden Sie sich bei Ihrem MySQL/MariaDB-Server mit Folgendem an. Geben Sie Ihr ‘root‘-Passwort ein, wenn Sie dazu aufgefordert werden.

sudo mysql -u root -p

Führen Sie nun die folgenden Abfragen aus, um einen neuen MySQL-Benutzer ‘prometheus‘ mit der Authentifizierung ‘unix_socket‘ zu erstellen. Dieser Benutzer hat Berechtigungen, um Prozesse, Replikationsclients und SELECT in allen Datenbanken im MySQL-Server zu sehen.

CREATE USER IF NOT EXISTS 'prometheus'@'localhost' IDENTIFIED WITH unix_socket;  
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'prometheus'@'localhost';  
FLUSH PRIVILEGES;

Führen Sie als Nächstes die Abfrage unten aus, um den MySQL-Benutzer ‘prometheus@localhost‘ zu überprüfen. Sie sehen den Benutzer ‘prometheus‘ mit den Berechtigungen SELECT, PROCESS und BINLOG MONITOR als Replikationsclient.

SHOW GRANTS FOR 'prometheus'@'localhost';

Geben Sie ‘quit‘ ein, um den MySQL/MariaDB-Server zu verlassen.

check mysql user

Installation von prometheus-mysqld-exporter

Der ‘prometheus-mysqld-exporter‘ ist ein Exporter für MySQL-Metriken. Er unterstützt MySQL >= 5.6 und MariaDB >= 10.3. Um den ‘prometheus-mysqld-exporter’ zu verwenden, müssen Sie ihn auf Ihrem MySQL-Server installieren.

In diesem Beispiel läuft der MySQL-Server auf dem Debian 12-Server. Und standardmäßig ist der ‘prometheus-mysqld-exporter’ im offiziellen Debian-Repository verfügbar, daher installieren wir ihn über APT. Wenn Sie eine andere Distribution verwenden, können Sie ihn manuell von GitHub herunterladen und installieren.

Führen Sie zuerst den folgenden Befehl aus, um Ihr Debian-Paket-Index zu aktualisieren.

sudo apt update

update repo

Sobald das Repository aktualisiert ist, installieren Sie das Paket ‘prometheus-mysqld-exporter‘ mit dem folgenden Befehl. Geben Sie ‘Y‘ ein, um die Installation zu bestätigen.

sudo apt install prometheus-mysqld-exporter

install prometheus-mysqld-exporter

Nachdem die Installation abgeschlossen ist, führen Sie den folgenden ‘systemctl‘-Befehl aus, um den systemd-Manager neu zu laden.

sudo systemctl daemon-reload

Dann können Sie den Dienst ‘prometheus-mysqld-exporter‘ mit dem folgenden Befehl starten und aktivieren. Damit sollte der Dienst ‘prometheus-mysqld-exporter’ auf Ihrem System laufen und aktiviert sein.

sudo systemctl enable --now prometheus-mysqld-exporter

MySQL-Benutzer zum prometheus-mysqld-exporter hinzufügen

Jetzt, da Sie einen MySQL-Benutzer erstellt und ‘prometheus-mysqld-exporter’ installiert haben. Der nächste Schritt besteht darin, Ihren MySQL in die Konfiguration des ‘prometheus-mysqld-exporter’ hinzuzufügen. Dadurch können Sie Metriken Ihres MySQL-Servers generieren und das Endpoint am Standardport ‘9104’ bereitstellen.

Öffnen Sie die Datei ‘/etc/default/prometheus-mysqld-exporter‘ mit dem folgenden ‘nano‘-Editor.

sudo nano /etc/default/prometheus-mysqld-exporter

Kommentieren Sie die Umgebungsvariable ‘DATA_SOURCE_NAME‘ aus, um MySQL mit dem ‘prometheus-mysqld-exporter‘ zu integrieren. In diesem Beispiel wird der MySQL-Benutzer ‘prometheus‘ verwendet, um den MySQL-Server über die Datei ‘mysqld.sock‘ zu überwachen.

DATA_SOURCE_NAME="prometheus@unix(/run/mysqld/mysqld.sock)/"

Speichern Sie die Datei und beenden Sie den Editor.

Führen Sie nun den ‘systemctl‘-Befehl unten aus, um den Dienst ‘prometheus-mysqld-exporter‘ neu zu starten und Ihre Änderungen anzuwenden. Überprüfen Sie dann seinen Status, um sicherzustellen, dass er läuft.

sudo systemctl restart prometheus-mysqld-exporter  
sudo systemctl status prometheus-mysqld-exporter

Sie können unten sehen, dass der ‘prometheus-mysqld-exporter’ läuft.

setup prometheus-mysql-exporter

Öffnen Sie schließlich Ihren Webbrowser und besuchen Sie http://192.168.10.41:9104/. Dies ist das Standard-Endpoint für den ‘prometheus-mysqld-exporter‘. Wenn Ihre Konfiguration erfolgreich ist, wird eine Metrik generiert und wie folgt angezeigt:

generated metric

Hinzufügen des prometheus-mysqld-exporter-Endpoints zu Prometheus

Jetzt, da die Konfiguration des ‘prometheus-mysqld-exporter‘ abgeschlossen ist und die Metrik generiert wurde. Jetzt müssen Sie den ‘prometheus-mysqld-exporter‘ als Endpoint zu Ihrem Prometheus-Server hinzufügen. Für diesen Leitfaden ist das Endpoint des ‘prometheus-mysqld-exporter‘ unter ‘192.168.10.41:9104‘ verfügbar.

Wenn Sie keinen Prometheus-Server haben, installieren Sie ihn über Wie man Prometheus und Node Exporter auf Debian 12 installiert.

Wechseln Sie zu Ihrem Prometheus-Server und öffnen Sie die Konfigurationsdatei ‘/etc/prometheus/prometheus.yml‘ mit dem ‘nano’-Editor.

sudo nano /etc/prometheus/prometheus.yml

Fügen Sie innerhalb der ‘scrape_configs‘ das Endpoint Ihres ‘prometheus-mysqld-exporter‘ wie folgt hinzu. In diesem Beispiel läuft der ‘prometheus-mysqld-exporter‘ auf dem ‘server1‘ mit der IP-Adresse und dem Port ‘192.168.10.41:9104‘.

scrape_configs:  
  
- job_name: server1  
  static_configs:  
  - targets: ['192.168.10.41:9104']  
    labels:  
      alias: db1

Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.

Führen Sie nun den folgenden ‘systemctl‘-Befehl aus, um den ‘prometheus‘-Dienst neu zu starten und Ihre Änderungen anzuwenden.

sudo systemctl restart prometheus

Öffnen Sie schließlich Ihr Prometheus-Server-Dashboard und wählen Sie das Menü ‘Status > Targets‘. Stellen Sie sicher, dass Sie den ‘server1‘ sehen, der das Endpoint Ihrer MySQL-Überwachung ist.

Grafana-Dashboard für den MySQL-Server einrichten

Nachdem Sie das Endpoint des ‘prometheus-mysqld-exporter’ zum Prometheus-Server hinzugefügt haben, sind Sie nun bereit, das Grafana-Dashboard für die MySQL-Serverüberwachung zu erstellen. In diesem Abschnitt importieren Sie das Dashboard-Überwachung für MySQL über GrafanaLabs.

Wenn Sie Grafana nicht installiert haben, installieren Sie es mit Wie man Grafana und Prometheus auf Ubuntu 24.04 installiert.

Klicken Sie in Ihrem Grafana-Dashboard auf das Menü ‘Dashboard > Neu > Importieren‘. In diesem Beispiel verwenden wir Grafana-Vorlagen von GrafanaLabs zur Überwachung des MySQL-Servers.

Kopieren Sie die Grafana-ID-Nummer und fügen Sie sie ein, und klicken Sie dann auf ‘Laden‘, um zu bestätigen.

import dashboard

Wählen Sie nun ‘Prometheus‘ als Ihre Datenquelle und klicken Sie auf ‘Importieren‘.

import dashboard

Wenn erfolgreich, sehen Sie das Dashboard für Ihre MySQL/MariaDB-Überwachung mit Prometheus und Grafana.

mysql monitoring dashboard

Fazit

Herzlichen Glückwunsch! Sie haben die Überwachung des MySQL/MariaDB-Servers mit Prometheus und Grafana abgeschlossen. Sie haben den MySQL-Server mit dem ‘prometheus-mysqld-exporter’ überwacht und Metriken für MySQL generiert. Sie haben auch den ‘prometheus-mysqld-exporter’ als Endpoint zu Ihrem Prometheus-Server hinzugefügt. Schließlich haben Sie ein Grafana-Dashboard erstellt, um Ihren MySQL-Server zu überwachen.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.