MariaDB-Logs verfügen über umfassende Funktionen, die Sie bei der Überwachung und Optimierung Ihrer Datenbankinstanzen unterstützen. Wir erklären Ihnen die verschiedenen Log-Typen und wie Sie sie konfigurieren und aktivieren.

Welche Logs gibt es in MariaDB?

MariaDB stellt vier zentrale Log-Typen bereit, die unterschiedliche Aspekte des Datenbankbetriebs protokollieren:

Error Log

Das Fehlerprotokoll dokumentiert kritische Ereignisse wie Start- und Stoppvorgänge des Servers, Abstürze oder andere schwerwiegende Fehler. Es ist standardmäßig aktiviert und hilft bei der Diagnose von Serverproblemen.

General Query Log

Dieses Log erfasst jede Verbindung zum Server sowie alle ausgeführten SQL-Befehle. Es eignet sich daher zur Fehleranalyse und zur Überwachung von Benutzeraktivitäten.

Binary Log

Ein Binary Log zeichnet alle Änderungen an der Datenbank auf, einschließlich Datenmanipulationen und Strukturänderungen. Es ist essenziell für Replikationen und Point-in-Time-Wiederherstellungen.

Slow Query Log

Dieses Log listet SQL-Abfragen auf, die eine bestimmte Ausführungszeit überschreiten. Es dient als wertvolle Hilfe zur Identifizierung und Optimierung von Performance-Engpässen.

Compute Engine
Die ideale IaaS für Ihre Workloads
  • Kostengünstige vCPUs und leistungsstarke dedizierte Cores
  • Höchste Flexibilität ohne Mindestvertragslaufzeit
  • Inklusive 24/7 Experten-Support

MariaDB-Logs konfigurieren und nutzen: Schritt-für-Schritt-Anleitung:

Im Folgenden zeigen wir Ihnen, wie Sie die vier wichtigsten Logfiles von MariaDB aktivieren, konfigurieren und auswerten. Dabei gehen wir auf das Fehlerprotokoll, das allgemeine Abfrageprotokoll, das Binary Log und das Slow Query Log und die MariaDB Log Location ein.

Voraussetzungen

  • Ein Server mit einer aktuellen Version von Ubuntu oder einer anderen Linux-Distribution
  • Ein Benutzerkonto mit sudo-Rechten
  • Kein parallel installiertes MySQL, da sich MySQL und MariaDB in Konfigurationsdateien und Ports überschneiden können
  • Basiswissen in SQL

Schritt 1: Fehlerprotokoll anzeigen und konfigurieren

Zunächst müssen Sie sicherstellen, dass MariaDB installiert ist. Führen Sie dazu den folgenden Befehl aus:

sudo apt update
sudo apt install mariadb-server
bash

Dieser Befehl aktualisiert zuerst die Paketliste Ihres Systems und installiert danach den MariaDB-Server.

Um sich mit der MariaDB-Datenbank zu verbinden, führen Sie das folgende Kommando aus:

sudo mariadb
bash

Sie öffnen damit die interaktive SQL-Konsole als Admin.

Im nächsten Schritt überprüfen Sie, wohin MariaDB-Logs wie Fehlermeldungen schreibt. Das tun Sie mit dieser SQL-Anweisung:

SHOW VARIABLES LIKE '%log_error%';
sql

Ist der Wert für log_error leer, dann werden Fehlermeldungen standardmäßig in das zentrale Systemlog (syslog) geschrieben.

Um dieses Protokoll einzusehen, nutzen Sie den folgenden Befehl:

journalctl -u mariadb.service
bash

Damit erhalten Sie eine chronologische Liste der Systemmeldungen, die vom MariaDB-Dienst generiert wurden. Dies ist hilfreich, wenn Sie Startup-Fehler oder andere kritische Ereignisse untersuchen.

Wenn Sie stattdessen ein eigenes Error Logfile verwenden möchten, müssen Sie die Konfigurationsdatei von MariaDB bearbeiten. Öffnen Sie sie mit einem Texteditor wie nano:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Suchen Sie den Abschnitt [mysqld] und fügen Sie dort folgende Zeile hinzu oder heben Sie deren Auskommentierung auf:

log_error = /var/log/mariadb/error.log
txt

Nun sollten Sie sicherstellen, dass das angegebene Verzeichnis existiert und die richtigen Zugriffsrechte hat. Führen Sie dazu diese Befehle aus:

sudo mkdir /var/log/mariadb
sudo chown mysql:mysql /var/log/mariadb
bash

Die Befehle erstellen das Verzeichnis und setzen es auf den Benutzer und die Gruppe mysql, damit die MariaDB-Logging-Funktion dort schreiben darf.

Starten Sie danach den MariaDB-Dienst neu, damit die Konfigurationsänderungen wirksam werden:

sudo systemctl restart mariadb
bash

Schließlich können Sie das Fehlerprotokoll einsehen:

sudo cat /var/log/mariadb/error.log
bash

Dort finden Sie Hinweise zu Startzeitpunkten, Warnungen oder Problemen mit Plugins.

Schritt 2: Allgemeines Abfrageprotokoll aktivieren (General Query Log)

Um den aktuellen Status zu überprüfen, rufen Sie die SQL-Konsole auf und geben Sie folgenden Befehl ein:

SHOW VARIABLES LIKE '%general%';
sql

Dort sehen Sie, ob das General Query Log aktiv ist (general_log = ON) und wo es gespeichert wird (general_log_file).

Um diese MariaDB-Logs dauerhaft zu aktivieren, bearbeiten Sie erneut die Konfigurationsdatei:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Fügen Sie folgende Zeilen in den Abschnitt [mysqld] ein:

general_log = 1
general_log_file = /var/log/mariadb/general-query.log
ini

Danach starten Sie den Dienst neu:

sudo systemctl restart mariadb
bash

Um die protokollierten Einträge anzusehen, nutzen Sie:

sudo cat /var/log/mariadb/general-query.log
bash

Sie finden dort alle Abfragen und Verbindungen inklusive Zeitstempel. Das hilft, um festzustellen, wann welche Anfragen abgesetzt wurden.

Schritt 3: Das Binary Log aktivieren

Öffnen Sie zur Konfiguration für das Binary Log die gleiche Konfigurationsdatei wie zuvor:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Fügen Sie folgende Parameter im Abschnitt [mysqld] hinzu:

log_bin = /var/log/mariadb/binary.log
server_id = 1
binlog_format = ROW
txt

Die server_id ist wichtig für die Replikation (jeder Server braucht eine eindeutige ID). Mit binlog_format = ROW wird jede Datenänderung auf Zeilenebene in den MariaDB-Logs protokolliert.

Starten Sie den Server neu:

sudo systemctl restart mariadb
bash

Um zu prüfen, ob das Binärlog aktiv ist, geben Sie in der SQL-Konsole ein:

SHOW BINARY LOGS;
sql

Dort erscheinen dann die aktiven Binary-Log-Dateien mit Dateinamen und Größenangabe.

Zum Auslesen des Inhalts einer Datei setzen Sie folgendes Kommando ein:

sudo mysqlbinlog /var/log/mariadb/binary.000001
bash

Darin sehen Sie alle Änderungsbefehle chronologisch gelistet.

Schritt 4: Langsame Abfragen protokollieren (Slow Query Log)

Bearbeiten Sie die Konfigurationsdatei:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Fügen Sie Folgendes ein:

slow_query_log = 1
slow_query_log_file = /var/log/mariadb/slow-query.log
long_query_time = 10
txt

Dabei bedeutet long_query_time = 10, dass alle Abfragen, die länger als zehn Sekunden dauern, geloggt werden.

Starten Sie danach den Dienst neu:

sudo systemctl restart mariadb
bash

Überprüfen Sie, ob das Log aktiv ist:

SHOW VARIABLES LIKE '%slow_query_log%';
sql

Führen Sie eine Testabfrage aus, die absichtlich langsam ist:

SELECT SLEEP(12);
sql

Diese Anweisung zwingt den Server, zwölf Sekunden zu warten. Damit sollte sie im Slow Query Log erscheinen.

Schließlich können Sie das Log anzeigen:

sudo cat /var/log/mariadb/slow-query.log
bash

Sie finden dort Zeitstempel, Abfragezeit und die betroffene SQL-Anweisung.

Weitere Informationen zur Logfile-Analyse gibt es in unserem Ratgeber.

Managed Database Services
Datenbanken – Auf´s Wesentliche konzentrieren
  • IONOS Cloud-Partner: Die Experten für Ihren Datenbank-Betrieb
  • Flexibel: Maßgeschneiderte Datenbank-Lösungen ganz auf Ihre Bedürfnisse
  • Rechenzentren in Deutschland: Ihre Daten sind sicher
War dieser Artikel hilfreich?
Zum Hauptmenü