I file di log di MariaDB offrono fun­zio­na­li­tà avanzate per il mo­ni­to­rag­gio e l’ot­ti­miz­za­zio­ne delle istanze del database. In questa guida ti pre­sen­tia­mo i prin­ci­pa­li tipi di log di­spo­ni­bi­li, come con­fi­gu­rar­li e come attivarli.

Quali sono i file di log di­spo­ni­bi­li in MariaDB?

MariaDB include quattro prin­ci­pa­li tipi di log, ognuno dei quali registra un aspetto diverso del fun­zio­na­men­to 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 im­po­sta­zio­ne pre­de­fi­ni­ta ed è utile per dia­gno­sti­ca­re mal­fun­zio­na­men­ti del server.

General query log

Il registro generale delle query memorizza tutte le con­nes­sio­ni al server e ogni comando SQL eseguito. È indicato per in­di­vi­dua­re errori e mo­ni­to­ra­re le attività dell’utente.

Binary log

Il log binario traccia tutte le modifiche apportate al database, comprese le ope­ra­zio­ni sui dati e le modifiche alla struttura. È fon­da­men­ta­le per la replica e per i ri­pri­sti­ni point-in-time.

Slow query log

Il log delle query lente elenca le query SQL che superano un certo tempo di ese­cu­zio­ne. È un valido aiuto per iden­ti­fi­ca­re i colli di bottiglia nelle pre­sta­zio­ni e ot­ti­miz­za­re le query lente.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estre­ma­men­te van­tag­gio­se e potenti core dedicati
  • Massima fles­si­bi­li­tà senza periodo con­trat­tua­le minimo
  • Servizio di as­si­sten­za tecnica 24 ore su 24, 7 giorni su 7

Come con­fi­gu­ra­re e usare i registri di MariaDB: guida completa

Ora ti mostriamo come attivare, con­fi­gu­ra­re e con­sul­ta­re file di log: error log, general query log, binary log e slow query log, con in­di­ca­zio­ne della posizione dei file.

Requisiti

  • Un server con una versione ag­gior­na­ta di Ubuntu o altra di­stri­bu­zio­ne Linux
  • Un account utente con permessi sudo
  • Nessuna in­stal­la­zio­ne parallela di MySQL, per evitare conflitti di con­fi­gu­ra­zio­ne
  • Co­no­scen­ze di base in SQL

Primo passaggio: vi­sua­liz­za­re e con­fi­gu­ra­re il registro degli errori

Per prima cosa devi as­si­cu­rar­ti che MariaDB sia in­stal­la­to. 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 col­le­gar­ti al database MariaDB, esegui il seguente comando:

sudo mariadb
bash

Si apre così la console SQL con privilegi am­mi­ni­stra­ti­vi.

Nel prossimo passaggio occorre con­trol­la­re dove MariaDB scrive i messaggi di errore. A tale scopo si utilizza l’istru­zio­ne 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 vi­sua­liz­za­re questo registro, utilizza il seguente comando:

journalctl -u mariadb.service
bash

Questo fornisce un elenco cro­no­lo­gi­co dei messaggi di sistema generati dal servizio MariaDB. È utile per indagare su errori di avvio o altri eventi critici.

Se desideri uti­liz­za­re un file di log degli errori per­so­na­liz­za­to, è ne­ces­sa­rio mo­di­fi­ca­re il file di con­fi­gu­ra­zio­ne 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 è ne­ces­sa­rio as­si­cu­rar­si che la directory spe­ci­fi­ca­ta 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 re­gi­stra­zio­ne di MariaDB possa scrivere al suo interno.

Riavvia quindi il servizio MariaDB affinché le modifiche alla con­fi­gu­ra­zio­ne abbiano effetto:

sudo systemctl restart mariadb
bash

Infine, puoi vi­sua­liz­za­re il registro degli errori:

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

Qui trovi in­for­ma­zio­ni sugli orari di avvio, avvisi o problemi relativi ai plugin.

Secondo passaggio: attivare il general query log

Per ve­ri­fi­ca­re 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 per­ma­nen­te questi registri, modifica nuo­va­men­te il file di con­fi­gu­ra­zio­ne:

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 con­nes­sio­ni, con relative marche temporali. In questo modo puoi de­ter­mi­na­re quando sono state inviate le singole richieste.

Terzo passaggio: attivare il binary log

Per con­fi­gu­ra­re il log binario, apri lo stesso file di con­fi­gu­ra­zio­ne uti­liz­za­to in pre­ce­den­za:

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 è im­por­tan­te per la replica (ogni server necessita di un ID univoco). Con binlog_format = ROW, ogni modifica dei dati a livello di riga viene re­gi­stra­ta nei log MariaDB.

Riavvia il server:

sudo systemctl restart mariadb
bash

Per ve­ri­fi­ca­re se il log binario (binary log) è attivo, inserisci nella console SQL:

SHOW BINARY LOGS;
sql

Qui vengono vi­sua­liz­za­ti i file di log binari attivi con il nome del file e le di­men­sio­ni.

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

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

Qui sono elencati in ordine cro­no­lo­gi­co tutti i comandi SQL di modifica.

Quarto passaggio: re­gi­stra­re le query lente (slow query log)

Modifica ancora il file di con­fi­gu­ra­zio­ne:

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 ri­chie­do­no più di dieci secondi vengono re­gi­stra­te.

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 vo­lu­ta­men­te lenta:

SELECT SLEEP(12);
sql

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

Infine, è possibile vi­sua­liz­za­re il registro:

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

Al suo interno trovi in­for­ma­zio­ni su tempi di ese­cu­zio­ne, query coinvolte e marche temporali.

Se desideri ap­pro­fon­di­re l’argomento, consulta la nostra guida sull’analisi dei file di log.

Managed Database Services
Con­cen­tra­ti sul tuo progetto, noi pensiamo al resto
  • Partner IONOS Cloud
  • Soluzioni fles­si­bi­li e su misura
  • Data center situati in Europa
Vai al menu prin­ci­pa­le