MariaDB-Logs – So funktioniert die Logging-Funktion
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.
- 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
bashDieser 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
bashSie ö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%';
sqlIst 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
bashDamit 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
bashSuchen 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
txtNun 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
bashDie 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
bashSchließlich können Sie das Fehlerprotokoll einsehen:
sudo cat /var/log/mariadb/error.log
bashDort 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%';
sqlDort 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
bashFügen Sie folgende Zeilen in den Abschnitt [mysqld]
ein:
general_log = 1
general_log_file = /var/log/mariadb/general-query.log
iniDanach starten Sie den Dienst neu:
sudo systemctl restart mariadb
bashUm die protokollierten Einträge anzusehen, nutzen Sie:
sudo cat /var/log/mariadb/general-query.log
bashSie 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
bashFügen Sie folgende Parameter im Abschnitt [mysqld]
hinzu:
log_bin = /var/log/mariadb/binary.log
server_id = 1
binlog_format = ROW
txtDie 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
bashUm zu prüfen, ob das Binärlog aktiv ist, geben Sie in der SQL-Konsole ein:
SHOW BINARY LOGS;
sqlDort 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
bashDarin 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
bashFügen Sie Folgendes ein:
slow_query_log = 1
slow_query_log_file = /var/log/mariadb/slow-query.log
long_query_time = 10
txtDabei 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%';
sqlFühren Sie eine Testabfrage aus, die absichtlich langsam ist:
SELECT SLEEP(12);
sqlDiese 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
bashSie finden dort Zeitstempel, Abfragezeit und die betroffene SQL-Anweisung.
Weitere Informationen zur Logfile-Analyse gibt es in unserem Ratgeber.
- 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