I file di log di MariaDB offrono funzionalità avanzate per il monitoraggio e l’ottimizzazione delle istanze del database. In questa guida ti presentiamo i principali tipi di log disponibili, come configurarli e come attivarli.

Quali sono i file di log disponibili in MariaDB?

MariaDB include quattro principali tipi di log, ognuno dei quali registra un aspetto diverso del funzionamento del database:

Error log

L’error log, o registro degli errori, documenta eventi critici come l’avvio e l’arresto del server, arresti anomali o altri problemi gravi. È attivo per impostazione predefinita ed è utile per diagnosticare malfunzionamenti del server.

General query log

Il registro generale delle query memorizza tutte le connessioni al server e ogni comando SQL eseguito. È indicato per individuare errori e monitorare le attività dell’utente.

Binary log

Il log binario traccia tutte le modifiche apportate al database, comprese le operazioni sui dati e le modifiche alla struttura. È fondamentale per la replica e per i ripristini point-in-time.

Slow query log

Il log delle query lente elenca le query SQL che superano un certo tempo di esecuzione. È un valido aiuto per identificare i colli di bottiglia nelle prestazioni e ottimizzare le query lente.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estremamente vantaggiose e potenti core dedicati
  • Massima flessibilità senza periodo contrattuale minimo
  • Servizio di assistenza tecnica 24 ore su 24, 7 giorni su 7

Come configurare e usare i registri di MariaDB: guida completa

Ora ti mostriamo come attivare, configurare e consultare file di log: error log, general query log, binary log e slow query log, con indicazione della posizione dei file.

Requisiti

  • Un server con una versione aggiornata di Ubuntu o altra distribuzione Linux
  • Un account utente con permessi sudo
  • Nessuna installazione parallela di MySQL, per evitare conflitti di configurazione
  • Conoscenze di base in SQL

Primo passaggio: visualizzare e configurare il registro degli errori

Per prima cosa devi assicurarti che MariaDB sia installato. Per farlo, esegui il seguente comando:

sudo apt update
sudo apt install mariadb-server
bash

Questo comando aggiorna prima l’elenco dei pacchetti del sistema e poi installa il server MariaDB.

Per collegarti al database MariaDB, esegui il seguente comando:

sudo mariadb
bash

Si apre così la console SQL con privilegi amministrativi.

Nel prossimo passaggio occorre controllare dove MariaDB scrive i messaggi di errore. A tale scopo si utilizza l’istruzione SQL:

SHOW VARIABLES LIKE '%log_error%';
sql

Se il valore di log_error è vuoto, i messaggi di errore vengono scritti nel registro di sistema (syslog).

Per visualizzare questo registro, utilizza il seguente comando:

journalctl -u mariadb.service
bash

Questo fornisce un elenco cronologico dei messaggi di sistema generati dal servizio MariaDB. È utile per indagare su errori di avvio o altri eventi critici.

Se desideri utilizzare un file di log degli errori personalizzato, è necessario modificare il file di configurazione di MariaDB. È possibile aprirlo con un editor di testo come nano:

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

Cerca la sezione [mysqld] e aggiungi la seguente riga o rimuovi il commento:

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

Ora è necessario assicurarsi che la directory specificata esista e disponga dei permessi di accesso corretti. A tal fine, esegui i seguenti comandi:

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

I comandi creano la directory e la impostano sull’utente e sul gruppo mysql, in modo che la funzione di registrazione di MariaDB possa scrivere al suo interno.

Riavvia quindi il servizio MariaDB affinché le modifiche alla configurazione abbiano effetto:

sudo systemctl restart mariadb
bash

Infine, puoi visualizzare il registro degli errori:

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

Qui trovi informazioni sugli orari di avvio, avvisi o problemi relativi ai plugin.

Secondo passaggio: attivare il general query log

Per verificare lo stato attuale, apri la console SQL e inserisci il seguente comando:

SHOW VARIABLES LIKE '%general%';
sql

Qui puoi vedere se il registro delle query generali (general query log) è attivo (general_log = ON) e dove è salvato (general_log_file).

Per attivare in modo permanente questi registri, modifica nuovamente il file di configurazione:

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

Aggiungi le seguenti righe nella sezione [mysqld]:

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

Quindi riavvia il servizio:

sudo systemctl restart mariadb
bash

Consulta il registro con:

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

Qui trovi tutte le query e le connessioni, con relative marche temporali. In questo modo puoi determinare quando sono state inviate le singole richieste.

Terzo passaggio: attivare il binary log

Per configurare il log binario, apri lo stesso file di configurazione utilizzato in precedenza:

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

Aggiungi i seguenti parametri nella sezione [mysqld]:

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

Il server_id è importante per la replica (ogni server necessita di un ID univoco). Con binlog_format = ROW, ogni modifica dei dati a livello di riga viene registrata nei log MariaDB.

Riavvia il server:

sudo systemctl restart mariadb
bash

Per verificare se il log binario (binary log) è attivo, inserisci nella console SQL:

SHOW BINARY LOGS;
sql

Qui vengono visualizzati i file di log binari attivi con il nome del file e le dimensioni.

Per leggere il contenuto di un file, utilizza il seguente comando:

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

Qui sono elencati in ordine cronologico tutti i comandi SQL di modifica.

Quarto passaggio: registrare le query lente (slow query log)

Modifica ancora il file di configurazione:

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

Aggiungi quanto segue:

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

In questo caso, “long_query_time = 10” significa che tutte le query che richiedono più di dieci secondi vengono registrate.

Riavvia MariaDB:

sudo systemctl restart mariadb
bash

Controlla che il registro sia attivo:

SHOW VARIABLES LIKE '%slow_query_log%';
sql

Esegui una query di prova volutamente lenta:

SELECT SLEEP(12);
sql

Questo comando forza il server ad attendere dodici secondi. Dopodiché, dovrebbe comparire nel log delle query lente.

Infine, è possibile visualizzare il registro:

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

Al suo interno trovi informazioni su tempi di esecuzione, query coinvolte e marche temporali.

Se desideri approfondire l’argomento, consulta la nostra guida sull’analisi dei file di log.

Managed Database Services
Concentrati sul tuo progetto, noi pensiamo al resto
  • Partner IONOS Cloud
  • Soluzioni flessibili e su misura
  • Data center situati in Europa
Hai trovato questo articolo utile?
Vai al menu principale