Database Monitoring · 5 min read · Sep 15, 2025

Come Monitorare MySQL o MariaDB con Prometheus e Grafana

Per garantire che il server MySQL/MariaDB funzioni correttamente, è necessario implementare il monitoraggio sulla propria infrastruttura. Questo consente di ottimizzare le prestazioni, identificare problemi/gli strozzature e garantire che il database sia sano. Con Prometheus e Grafana, puoi raggiungere questi obiettivi e creare un monitoraggio del dashboard bello per i server MySQL.

In questa guida, imparerai come monitorare i server MySQL/MariaDB con Prometheus e Grafana. Configurerai ‘prometheus-mysqld-exporter’ per generare metriche e aggiungere il monitoraggio degli endpoint al server Prometheus. Dopo di che, creerai un nuovo dashboard Grafana per il monitoraggio di MySQL.

Requisiti

Per iniziare, assicurati di avere i seguenti:

  • Un server MySQL/MariaDB installato
  • Un utente non root con privilegi di amministratore
  • Prometheus e Grafana installati sul tuo server

Configurare l’utente MySQL/MariaDB

Per monitorare il server MySQL/MariaDB, è necessario creare un nuovo utente MySQL dedicato. Questo utente avrà i privilegi minimi, come PROCESS, REPLICATION CLIENT e SELECT su tutti i tuoi database.

In questa sezione, creerai un nuovo utente MySQL per monitorare il tuo server MySQL.

Accedi al tuo server MySQL/MariaDB con il seguente comando. Inserisci la tua password ‘ root ‘ quando richiesto.

sudo mysql -u root -p

Ora esegui le seguenti query per creare un nuovo utente MySQL ‘ prometheus ‘ con l’autenticazione ‘ unix_socket ‘. Questo utente avrà privilegi per vedere processi, client di replica e selezionare in tutti i database nel server MySQL.

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

Successivamente, esegui la query qui sotto per controllare l’utente MySQL ‘ prometheus@localhost ‘. Vedrai l’utente ‘ prometheus ‘ con privilegi di SELECT, PROCESS e BINLOG MONITOR come client di replica.

SHOW GRANTS FOR 'prometheus'@'localhost';

Digita ‘ quit ‘ per uscire dal server MySQL/MariaDB.

check mysql user

Installazione di prometheus-mysqld-exporter

Il ‘ prometheus-mysqld-exporter ‘ è un esportatore per le metriche MySQL. Supporta MySQL >= 5.6 e MariaDB >= 10.3. Per utilizzare il ‘prometheus-mysqld-exporter’, è necessario installarlo sul server MySQL.

In questo esempio, il server MySQL è in esecuzione su un server Debian 12. E per impostazione predefinita, il ‘prometheus-mysqld-exporter’ è disponibile nel repository ufficiale di Debian, quindi lo installeremo tramite APT. Se stai utilizzando un’altra distribuzione, puoi scaricarlo e installarlo manualmente da GitHub.

Prima, esegui il comando qui sotto per aggiornare l’indice dei pacchetti Debian.

sudo apt update

update repo

Una volta aggiornato il repository, installa il pacchetto ‘ prometheus-mysqld-exporter ‘ con il seguente comando. Inserisci ‘ Y ‘ per confermare l’installazione.

sudo apt install prometheus-mysqld-exporter

install prometheus-mysqld-exporter

Dopo che l’installazione è completata, esegui il comando ‘ systemctl ‘ qui sotto per ricaricare il gestore systemd.

sudo systemctl daemon-reload

Quindi, puoi avviare e abilitare il servizio ‘ prometheus-mysqld-exporter ‘ con il comando qui sotto. Con questo, il servizio ‘prometheus-mysqld-exporter’ dovrebbe essere in esecuzione e abilitato sul tuo sistema.

sudo systemctl enable --now prometheus-mysqld-exporter

Aggiungere l’utente MySQL al prometheus-mysqld-exporter

Ora che hai creato un utente MySQL e installato ‘prometheus-mysqld-exporter’. Il passo successivo è aggiungere il tuo MySQL alla configurazione di ‘prometheus-mysqld-exporter’. Fare ciò consente di generare metriche del tuo server MySQL ed esporre l’endpoint sulla porta predefinita ‘9104’.

Apri il file ‘ /etc/default/prometheus-mysqld-exporter ‘ con il seguente editor ‘ nano ‘.

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

Decommenta la variabile ambientale ‘ DATA_SOURCE_NAME ‘ per integrare MySQL con il ‘ prometheus-mysqld-exporter ‘. In questo esempio, l’utente MySQL ‘ prometheus ‘ sarà utilizzato per monitorare il server MySQL tramite il file ‘ mysqld.sock ‘.

DATA_SOURCE_NAME="prometheus@unix(/run/mysqld/mysqld.sock)/"

Salva il file e esci dall’editor.

Ora esegui il comando ‘ systemctl ‘ qui sotto per riavviare il servizio ‘ prometheus-mysqld-exporter ‘ e applicare le tue modifiche. E poi, controlla il suo stato per assicurarti che sia in esecuzione.

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

Puoi vedere qui sotto che il ‘prometheus-mysqld-exporter’ è in esecuzione.

setup prometheus-mysql-exporter

Infine, apri il tuo browser web e visita http://192.168.10.41:9104/. Questo è l’endpoint predefinito per il ‘ prometheus-mysqld-exporter ‘. Se la tua configurazione è riuscita, verrà generata una metrica e mostrata come segue:

generated metric

Aggiungere l’endpoint prometheus-mysqld-exporter al Prometheus

Ora che la configurazione di ‘ prometheus-mysqld-exporter ‘ è completa e la metrica è generata. Ora devi aggiungere il ‘ prometheus-mysqld-exporter ‘ come endpoint al tuo server Prometheus. Per questa guida, l’endpoint ‘ prometheus-mysqld-exporter ‘ è disponibile su ‘ 192.168.10.41:9104 ‘.

Se non hai un server Prometheus, installalo tramite Come Installare Prometheus e Node Exporter su Debian 12

Spostati sul tuo server Prometheus e apri il file di configurazione ‘ /etc/prometheus/prometheus.yml ‘ con l’editor ‘nano’.

sudo nano /etc/prometheus/prometheus.yml

All’interno di ‘ scrape_configs ‘, aggiungi l’endpoint del tuo ‘ prometheus-mysqld-exporter ‘ in questo modo. Per questo esempio, il ‘ prometheus-mysqld-exporter ‘ è in esecuzione su ‘ server1 ‘ con l’indirizzo IP e la porta ‘ 192.168.10.41:9104 ‘.

scrape_configs:  
  
- job_name: server1  
  static_configs:  
  - targets: ['192.168.10.41:9104']  
    labels:  
      alias: db1

Salva il file e esci dall’editor quando hai finito.

Ora esegui il seguente comando ‘ systemctl ‘ per riavviare il servizio ‘ prometheus ‘ e applicare le tue modifiche.

sudo systemctl restart prometheus

Infine, apri il dashboard del tuo server Prometheus e seleziona il menu ‘ Status > Targets ‘. Assicurati di poter vedere ‘ server1 ‘, che è l’endpoint del tuo monitoraggio MySQL.

Configurare il Dashboard Grafana per il server MySQL

Dopo aver aggiunto l’endpoint ‘prometheus-mysqld-exporter’ al server Prometheus, sei ora pronto per costruire il dashboard Grafana per il monitoraggio del server MySQL. In questa sezione, importerai il monitoraggio del dashboard per MySQL tramite GrafanaLabs.

Se non hai Grafana installato, installalo con Come Installare Grafana e Prometheus su Ubuntu 24.04

Sul tuo dashboard Grafana, fai clic sul menu ‘ Dashboard > New > Import ‘. Per questo esempio, utilizzeremo i modelli Grafana di GrafanaLabs per monitorare il server MySQL.

Copia il numero ID di Grafana e incollalo, quindi fai clic su ‘ Load ‘ per confermare.

import dashboard

Ora seleziona ‘ Prometheus ‘ come tua fonte di dati e fai clic su ‘ Import ‘.

import dashboard

Se tutto va a buon fine, vedrai il dashboard per il tuo monitoraggio MySQL/MariaDB con Prometheus e Grafana.

mysql monitoring dashboard

Conclusione

Congratulazioni! Hai completato il monitoraggio del server MySQL/MariaDB con Prometheus e Grafana. Hai monitorato il server MySQL con il ‘prometheus-mysqld-exporter’ e generato metriche per MySQL. Hai anche aggiunto il ‘prometheus-mysqld-exporter’ come endpoint al tuo server Prometheus. Infine, hai creato un dashboard Grafana per monitorare il tuo server MySQL.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.