Wie man MySQL oder MariaDB mit Prometheus und Grafana überwacht

Um sicherzustellen, dass der MySQL/MariaDB-Server ordnungsgemäß funktioniert, musst du eine Überwachung deiner Infrastruktur einrichten. So kannst du die Leistung optimieren, Probleme/Engpässe erkennen und sicherstellen, dass deine Datenbank gesund ist. Mit Prometheus und Grafana kannst du diese Ziele erreichen und ein schönes Dashboard für die Überwachung von MySQL-Servern erstellen.

In diesem Leitfaden erfährst du, wie du MySQL/MariaDB-Server mit Prometheus und Grafana überwachen kannst. Du richtest „prometheus-mysqld-exporter“ ein, um Metriken zu generieren und die Endpunktüberwachung zum Prometheus-Server hinzuzufügen. Danach erstellst du ein neues Grafana-Dashboard für die MySQL-Überwachung.

Voraussetzungen

Um loszulegen, stelle sicher, dass du Folgendes hast:

  • Einen installierten MySQL/MariaDB-Server
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten
  • Prometheus und Grafana sind auf deinem Server installiert

MySQL/MariaDB-Benutzer einrichten

Um den MySQL/MariaDB-Server zu überwachen, musst du einen neuen MySQL-Benutzer einrichten. Dieser Benutzer hat die geringsten Rechte, wie PROCESS, REPLICATION CLIENT und SELECT auf all deinen Datenbanken.

In diesem Abschnitt wirst du einen neuen MySQL-Benutzer für die Überwachung deines MySQL-Servers erstellen.

Melde dich mit den folgenden Angaben bei deinem MySQL/MariaDB-Server an. Gib dein„root„-Passwort ein, wenn du dazu aufgefordert wirst.

sudo mysql -u root -p

Führe nun die folgenden Abfragen aus, um einen neuen MySQL-Benutzer„prometheus“ mit der Authentifizierung„unix_socket“ zu erstellen. Dieser Benutzer hat die Berechtigung, Prozesse, Replikationsclients und Select in allen Datenbanken des MySQL-Servers zu sehen.

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

mysql-Benutzer anlegen

Als Nächstes führst du die folgende Abfrage aus, um den MySQL-Benutzer„prometheus@localhost“ zu überprüfen. Du siehst den Benutzer„prometheus“ mit den Rechten SELECT, PROCESS und BINLOG MONITOR als Replikationsclient.

SHOW GRANTS FOR 'prometheus'@'localhost';

Gib‚quit‚ ein, um den MySQL/MariaDB-Server zu verlassen.

mysql-Benutzer prüfen

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, musst du ihn auf deinem MySQL-Server installieren.

In diesem Beispiel läuft der MySQL-Server auf einem Debian 12-Server. Und standardmäßig ist der „prometheus-mysqld-exporter“ im offiziellen Debian-Repository verfügbar, also installieren wir ihn über APT. Wenn du eine andere Distribution verwendest, kannst du ihn auch manuell für GitHub herunterladen und installieren.

Führe zunächst den unten stehenden Befehl aus, um deinen Debian-Paketindex zu aktualisieren.

sudo apt update

Repo aktualisieren

Sobald das Repository aktualisiert ist, installierst du das Paket„prometheus-mysqld-exporter“ mit dem folgenden Befehl. Gib„Y“ ein, um die Installation zu bestätigen.

sudo apt install prometheus-mysqld-exporter

prometheus-mysqld-exporter installieren

Nachdem die Installation abgeschlossen ist, führe den Befehl„systemctl“ aus, um den systemd Manager neu zu laden.

sudo systemctl daemon-reload

Dann kannst du den Dienst„prometheus-mysqld-exporter“ mit dem unten stehenden Befehl starten und aktivieren. Damit sollte der Dienst „prometheus-mysqld-exporter“ auf deinem System laufen und aktiviert sein.

sudo systemctl enable --now prometheus-mysqld-exporter

Hinzufügen des MySQL-Benutzers zum prometheus-mysqld-exporter

Jetzt hast du einen MySQL-Benutzer angelegt und „prometheus-mysqld-exporter“ installiert. Im nächsten Schritt fügst du deinen MySQL-Benutzer zur „prometheus-mysqld-exporter“-Konfiguration hinzu. Dadurch kannst du Metriken deines MySQL-Servers erstellen und den Endpunkt auf dem Standardport „9104“ bereitstellen.

Öffne die Datei„/etc/default/prometheus-mysqld-exporter“ mit dem folgenden„nano„-Editor.

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

Entferne das Kommentarzeichen in der Umgebungsvariablen„DATA_SOURCE_NAME„, 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)/"

Speichere die Datei und beende den Editor.

Führe nun den Befehl„systemctl“ aus, um den Dienst„prometheus-mysqld-exporter“ neu zu starten und deine Änderungen zu übernehmen. Überprüfe dann seinen Status, um sicherzustellen, dass er läuft.

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

Unten siehst du, dass „prometheus-mysqld-exporter“ läuft.

prometheus-mysql-exporter einrichten

Öffne deinen Webbrowser und rufe http://192.168.10.41:9104/ auf. Dies ist der Standardendpunkt für den „prometheus-mysqld-exporter„. Wenn deine Konfiguration erfolgreich war, wird eine Metrik erstellt, die wie folgt angezeigt wird:

erzeugte Metrik

Hinzufügen des Endpunkts prometheus-mysqld-exporter zum Prometheus

Die Konfiguration von„prometheus-mysqld-exporter“ ist nun abgeschlossen und die Metrik wurde erstellt. Jetzt musst du den„prometheus-mysqld-exporter“ als Endpunkt zu deinem Prometheus-Server hinzufügen. In diesem Leitfaden ist der Endpunkt„prometheus-mysqld-exporter“ unter der Adresse„192.168.10.41:9104“ verfügbar.

Wenn du keinen Prometheus-Server hast, installiere ihn über Wie man Prometheus und Node Exporter unter Debian 12 installiert

Gehe zu deinem Prometheus-Server und öffne die Konfigurationsdatei„/etc/prometheus/prometheus.yml“ mit dem Editor „nano“.

sudo nano /etc/prometheus/prometheus.yml

Füge in„scrape_configs“ den Endpunkt deines„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

Speichere die Datei und beende den Editor, wenn du fertig bist.

Führe nun den folgenden„systemctl„-Befehl aus, um den„prometheus„-Dienst neu zu starten und deine Änderungen zu übernehmen.

sudo systemctl restart prometheus

Öffne schließlich dein Prometheus-Server-Dashboard und wähle das Menü„Status > Targets„. Vergewissere dich, dass du den„server1“ sehen kannst, der der Endpunkt deines MySQL-Monitorings ist.

prometheus mit mysqld exporter endpint

Grafana Dashboard für den MySQL-Server einrichten

Nachdem du den Endpunkt „prometheus-mysqld-exporter“ zum Prometheus-Server hinzugefügt hast, kannst du nun das Grafana-Dashboard für die Überwachung des MySQL-Servers einrichten. In diesem Abschnitt importierst du das Dashboard-Monitoring für MySQL über GrafanaLabs.

Wenn du Grafana noch nicht installiert hast, installiere es mit How to Install Grafana and Prometheus on Ubuntu 24.04

Klicke in deinem Grafana-Dashboard auf das Menü„Dashboard > Neu > Importieren„. In diesem Beispiel verwenden wir Grafana-Vorlagen von GrafanaLabs für die Überwachung des MySQL-Servers.

Kopiere die Grafana ID-Nummer und füge sie ein, dann klicke zur Bestätigung auf„Laden„.

Dashboard importieren

Wähle nun„Prometheus“ als Datenquelle aus und klicke auf„Importieren„.

Dashboard importieren

Wenn du erfolgreich warst, siehst du das Dashboard für dein MySQL/MariaDB-Monitoring mit Prometheus und Grafana.

Dashboard zur Überwachung von mysql

Fazit

Herzlichen Glückwunsch! Du hast die Überwachung des MySQL/MariaDB-Servers mit Prometheus und Grafana abgeschlossen. Du hast den MySQL-Server mit dem „prometheus-mysqld-exporter“ überwacht und Metriken für MySQL erstellt. Außerdem hast du den „prometheus-mysqld-exporter“ als Endpunkt zu deinem Prometheus-Server hinzugefügt. Und schließlich hast du ein Grafana-Dashboard erstellt, um deinen MySQL-Server zu überwachen.

Das könnte dich auch interessieren …