Come monitorare MySQL o MariaDB con Prometheus e Grafana
In questa pagina
- Prerequisiti
- Configura l'utente MySQL/MariaDB
- Installazione di prometheus-mysqld-exporter
- Aggiunta dell'utente MySQL a prometheus-mysqld-exporter
- Aggiunta dell'endpoint prometheus-mysqld-exporter al file Prometheus
- Configurazione di Grafana Dashboard per il server MySQL
- Conclusione
Per garantire che il server MySQL/MariaDB funzioni correttamente, è necessario implementare il monitoraggio sulla propria infrastruttura. Ciò ti consente di ottimizzare le prestazioni, identificare problemi/colli di bottiglia e garantire che il tuo database sia integro. Con Prometheus e Grafana puoi raggiungere questi obiettivi e creare un bellissimo monitoraggio del dashboard per i server MySQL.
In questa guida imparerai come monitorare i server MySQL/MariaDB con Prometheus e Grafana. Configurerai "prometheus-mysqld-exporter" per generare parametri e aggiungere il monitoraggio degli endpoint al server Prometheus. Successivamente, creerai una nuova dashboard Grafana per il monitoraggio MySQL.
Prerequisiti
Per iniziare, assicurati di avere quanto segue:
- Un server MySQL/MariaDB installato
- Un utente non root con privilegi di amministratore
- Prometeo e Grafana installati sul tuo server
Configura l'utente MySQL/MariaDB
Per monitorare il server MySQL/MariaDB, è necessario creare un nuovo utente MySQL dedicato. Questo utente avrà i privilegi minimi, ad esempio PROCESS, REPLICATION CLIENT e SELECT su tutti i database.
In questa sezione creerai un nuovo utente MySQL per monitorare il tuo server MySQL.
Accedi al tuo server MySQL/MariaDB con quanto segue. 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à i 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 seguente per verificare l'utente MySQL 'prometheus@localhost'. Vedrai l'utente 'prometheus' con i privilegi di SELECT, PROCESS e BINLOG MONITOR come client di replica.
SHOW GRANTS FOR 'prometheus'@'localhost';
Digita 'quit' per uscire dal server MySQL/MariaDB.
Installazione di prometheus-mysqld-exporter
Il "prometheus-mysqld-exporter" è un esportatore di parametri MySQL. Supporta MySQL >= 5.6 e MariaDB >= 10.3. Per utilizzare "prometheus-mysqld-exporter", devi installarlo sul tuo server MySQL.
In questo esempio, il server MySQL è in esecuzione sul server Debian 12. E per impostazione predefinita, "prometheus-mysqld-exporter" è disponibile nel repository ufficiale Debian, quindi lo installeremo tramite APT. Se stai utilizzando un'altra distribuzione, puoi scaricarla e installarla manualmente per GitHub.
Innanzitutto, esegui il comando seguente per aggiornare l'indice del tuo pacchetto Debian.
sudo apt update
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
Una volta completata l'installazione, esegui il comando 'systemctl' di seguito per ricaricare il gestore systemd.
sudo systemctl daemon-reload
Quindi, puoi avviare e abilitare il servizio 'prometheus-mysqld-exporter' con il comando seguente. Con questo, il servizio "prometheus-mysqld-exporter" dovrebbe essere in esecuzione e abilitato sul tuo sistema.
sudo systemctl enable --now prometheus-mysqld-exporter
Aggiunta dell'utente MySQL a prometheus-mysqld-exporter
Ora che hai creato un utente MySQL e installato "prometheus-mysqld-exporter". Il passaggio successivo è aggiungere MySQL alla configurazione "prometheus-mysqld-exporter". In questo modo puoi generare parametri 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
Rimuovere il commento dalla variabile di ambiente 'DATA_SOURCE_NAME' per integrare MySQL con 'prometheus-mysqld-exporter'. In questo esempio, l'utente MySQL 'prometheus' verrà utilizzato per monitorare il server MySQL tramite il file 'mysqld.sock'.
DATA_SOURCE_NAME="prometheus@unix(/run/mysqld/mysqld.sock)/"
Salvare il file ed uscire dall'editor.
Ora esegui il comando 'systemctl' di seguito per riavviare il servizio 'prometheus-mysqld-exporter' e applicare le modifiche. Quindi, controlla il suo stato per assicurarti che sia in esecuzione.
sudo systemctl restart prometheus-mysqld-exporter
sudo systemctl status prometheus-mysqld-exporter
Di seguito puoi vedere che "prometheus-mysqld-exporter" è in esecuzione.
Infine, apri il tuo browser web e visita http://192.168.10.41:9104/. Questo è l'endpoint predefinito per 'prometheus-mysqld-exporter'. Se la configurazione ha esito positivo, verrà generata una metrica che verrà visualizzata come la seguente:
Aggiunta dell'endpoint prometheus-mysqld-exporter al file Prometheus
Ora che la configurazione di 'prometheus-mysqld-exporter' è completa e la metrica è generata. Ora devi aggiungere "prometheus-mysqld-exporter" come endpoint al tuo server Prometheus. Per quanto riguarda questa guida, l'endpoint 'prometheus-mysqld-exporter' è disponibile all'indirizzo '192.168.10.41:9104'.
Se non disponi di un server Prometheus, installalo tramite Come installare Prometheus e Node Exporter su Debian 12
Passa al 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. In questo esempio, "prometheus-mysqld-exporter" è in esecuzione sul "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
Salvare il file e uscire dall'editor una volta terminato.
Ora esegui il seguente comando 'systemctl' per riavviare il servizio 'prometheus' e applicare le modifiche.
sudo systemctl restart prometheus
Infine, apri la dashboard del server Prometheus e seleziona il menu "Stato > Destinazioni". Assicurati di poter vedere il "server1", che è l'endpoint del tuo monitoraggio MySQL.
Configurazione di Grafana Dashboard per il server MySQL
Dopo aver aggiunto l'endpoint "prometheus-mysqld-exporter" al server Prometheus, ora sei pronto per creare la dashboard Grafana per il monitoraggio del server MySQL. In questa sezione importerai il monitoraggio della dashboard per MySQL tramite GrafanaLabs.
Se non hai Grafana installato, installalo con Come installare Grafana e Prometheus su Ubuntu 24.04
Nella dashboard di Grafana, fai clic sul menu "Dashboard > Nuovo > Importa". Per questo esempio, utilizzeremo i modelli Grafana di GrafanaLabs per monitorare il server MySQL.
Copia il numero ID Grafana e incollalo, quindi fai clic su "Carica" per confermare.
Ora seleziona "Prometheus" come origine dati e fai clic su "Importa".
In caso di successo, vedrai la dashboard per il monitoraggio di MySQL/MariaDB con Prometheus e Grafana.
Conclusione
Congratulazioni! Hai completato il monitoraggio del server MySQL/MariaDB con Prometheus e Grafana. Hai monitorato il server MySQL con "prometheus-mysqld-exporter" e generato parametri per MySQL. Hai anche aggiunto "prometheus-mysqld-exporter" come endpoint al tuo server Prometheus. Infine, hai creato una dashboard Grafana per monitorare il tuo server MySQL.