Ricerca nel sito web

Monitoraggio delle droplet MySQL e MariaDB utilizzando Prometheus MySQL Exporter


Introduzione

Il monitoraggio efficace dei database MySQL e MariaDB è essenziale per mantenere prestazioni ottimali, identificare potenziali colli di bottiglia e garantire l'affidabilità complessiva del sistema. Prometheus MySQL Exporter è uno strumento affidabile che offre approfondimenti dettagliati sulle metriche del database fondamentali per la gestione proattiva e la risoluzione dei problemi.

In questo tutorial imparerai come configurare Prometheus MySQL Exporter per monitorare i database MySQL e MariaDB utilizzando la configurazione manuale e l'automazione basata su script. Questi metodi offrono flessibilità per selezionare la migliore strategia di distribuzione e l'approccio al flusso di lavoro operativo.

Alla fine, avrai un sistema di monitoraggio operativo che utilizza Prometheus e Grafana per l'analisi delle prestazioni in tempo reale.

Nota: il tempo di configurazione approssimativo per questo tutorial è di circa 25 minuti

Prerequisiti

Prima di iniziare, assicurati di disporre dei seguenti prerequisiti:

  • Avrai bisogno di avere server database MySQL o MariaDB configurati e in esecuzione su un Droplet Ubuntu. Puoi fare riferimento ai nostri tutorial su Come installare MariaDB su Ubuntu e Come installare MySQL su Ubuntu. I server che desideri monitorare devono essere accessibili dal computer su cui prevedi di installare Prometheus MySQL Exporter.

  • Avrai bisogno dell'accesso SSH ai droplet Ubuntu MySQL o MariaDB per installare e configurare Prometheus MySQL Exporter.

  • Prometheus MySQL Exporter si integra con Prometheus per lo scraping delle metriche e Grafana per la visualizzazione. Qui utilizzerai le immagini Prometheus e Grafana da DigitalOcean Marketplace per monitorare il database Droplet.

Metodo 1: configurazione manuale

Procediamo con il metodo di configurazione manuale in questa sezione.

Aggiungi utente e gruppo del sistema Prometheus

In questo passaggio configurerai le Droplet di destinazione. Creiamo un utente di sistema e un gruppo denominato "prometheus" per gestire il servizio di esportazione.

sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus

Scarica e installa Prometheus MySQL Exporter

In questo passaggio, scaricherai l'ultima versione di Prometheus MySQL Exporter da GitHub, estrarrai i file scaricati e sposterai il file binario nella directory /usr/local/bin/.

curl -s https://api.github.com/repos/prometheus/mysqld_exporter/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf mysqld_exporter*.tar.gz
sudo mv mysqld_exporter-*.linux-amd64/mysqld_exporter /usr/local/bin/
sudo chmod +x /usr/local/bin/mysqld_exporter

Creare un utente del database dell'esportatore Prometheus

Accedi a MySQL come root e crea un utente dedicato per l'esportatore con i privilegi necessari.

mysql -u root -p

Inserisci la password di root, se richiesta, e vedrai il prompt MySQL/MariaDB. Quindi esegui i seguenti comandi (sostituisci giveapassword nel comando seguente con una nuova password per l'utente del database mysqld_exporter).

Crea un nuovo utente MySQL denominato mysqld_exporter con una password giveapassword per le connessioni locali.

CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'giveapassword';

Concedi all'utente mysqld_exporter le autorizzazioni per visualizzare gli elenchi dei processi, lo stato della replica del client e interrogare i dati da tutti i database.

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost';

Ricaricare le tabelle di concessione per applicare le modifiche apportate alle autorizzazioni dell'utente.

FLUSH PRIVILEGES;

Esci dall'interfaccia della riga di comando di MySQL.

EXIT

Configurare le credenziali del database

Crea un file di configurazione per archiviare le credenziali dell'esportatore MySQL.

sudo vi /etc/.mysqld_exporter.cnf

Aggiungi le seguenti credenziali utente al file:

[client]
user=mysqld_exporter
password=giveapassword

Imposta le autorizzazioni di proprietà per il file di configurazione:

sudo chown root:prometheus /etc/.mysqld_exporter.cnf

Crea file di unità systemd

Crea un file di unità di servizio systemd per la gestione del servizio MySQL Exporter:

sudo vi /etc/systemd/system/mysql_exporter.service

Aggiungi i seguenti dati al file:

[Unit]
Description=Prometheus MySQL Exporter
After=network.target
User=prometheus
Group=prometheus

[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/mysqld_exporter \
--config.my-cnf /etc/.mysqld_exporter.cnf \
--collect.global_status \
--collect.info_schema.innodb_metrics \
--collect.auto_increment.columns \
--collect.info_schema.processlist \
--collect.binlog_size \
--collect.info_schema.tablestats \
--collect.global_variables \
--collect.info_schema.query_response_time \
--collect.info_schema.userstats \
--collect.info_schema.tables \
--collect.perf_schema.tablelocks \
--collect.perf_schema.file_events \
--collect.perf_schema.eventswaits \
--collect.perf_schema.indexiowaits \
--collect.perf_schema.tableiowaits \
--collect.slave_status \
--web.listen-address=0.0.0.0:9104

[Install]
WantedBy=multi-user.target

Ricarica systemd e avvia il servizio MySQL Exporter

Ricarica la configurazione di systemd e avvia il servizio MySQL Exporter:

sudo systemctl daemon-reload
sudo systemctl enable mysql_exporter
sudo systemctl start mysql_exporter

Configurazione della gocciolina di Prometeo

Iniziamo eseguendo un backup del file prometheus.yml:

cp /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml-$(date +'%d%b%Y-%H:%M')

Ora accedi al tuo server Prometheus e aggiungi gli endpoint MySQL Exporter da raschiare.

Sostituisci gli indirizzi IP e le porte con gli endpoint di MySQL Exporter (9104 è la porta predefinita per Prometheus MySQLd Exporter).

vi /etc/prometheus/prometheus.yml
scrape_configs:
  - job_name: server1_db
    static_configs:
      - targets: ['10.10.1.10:9104']
        labels:
          alias: db1

  - job_name: server2_db
    static_configs:
      - targets: ['10.10.1.11:9104']
        labels:
          alias: db2

Metodo 2: configurazione tramite script

Puoi anche ottenere questo risultato eseguendo due script: uno per i droplet di destinazione e l'altro per il droplet Prometheus.

Iniziamo configurando le Droplet di destinazione.

Passaggio 1: SSH nel droplet di destinazione.

Passaggio 2: scarica lo script di configurazione di destinazione utilizzando il seguente comando:

wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Target_Config.sh

Passaggio 3: una volta scaricato lo script, assicurati che disponga delle autorizzazioni eseguibili eseguendo:

chmod +x DO_MySQL_MariaDB_Target_Config.sh

Passaggio 4: esegui lo script eseguendo:

./DO_MySQL_MariaDB_Target_Config.sh

Passaggio 5: inserisci una nuova password per l'utente mysql_exporter, quindi inserisci la password root di MySQL:

La configurazione è completa.

Nota: lo script verrà terminato nei seguenti casi:

  • Se mysql_exporter esiste già sul Droplet di destinazione

  • Se inserisci la password mysql errata

Configurazione della droplet Prometheus (metodo script)

Passaggio 1: SSH nel Prometheus Droplet.

Passaggio 2: scarica lo script di configurazione Prometheus utilizzando il seguente comando:

wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Prometheus_Config.sh

Questo script bash automatizza l'aggiornamento del file di configurazione di Prometheus per aggiungere nuovi endpoint del server. Si inizia eseguendo il backup del file prometheus.yml corrente con un nome file con timestamp.

Lo script richiede quindi all'utente di specificare il numero di server da aggiungere e convalida questo input.

Per ciascun server richiede un nome host e un indirizzo IP, garantendo che ciascun indirizzo IP sia univoco all'interno del file di configurazione. Le configurazioni server valide vengono aggiunte al file prometheus.yml. Dopo aver aggiornato la configurazione, lo script riavvia il servizio Prometheus e ne controlla lo stato per confermare che le modifiche sono state applicate.

Infine, attende l'input dell'utente prima di uscire.

Passaggio 3: una volta scaricato lo script, assicurati che disponga delle autorizzazioni eseguibili eseguendo:

chmod +x DO_MySQL_MariaDB_Prometheus_Config.sh

Passaggio 4: esegui lo script eseguendo:

./DO_MySQL_MariaDB_Prometheus_Config.sh

Passaggio 5: inserisci il numero di Droplet da aggiungere al monitoraggio.

Passaggio 6: inserisci i nomi host e gli indirizzi IP.

Passaggio 7: la configurazione è completa.

Passaggio 8: una volta aggiunti, controlla se i target sono aggiornati accedendo all'URLprometheushostname:9090/targets.

Nota: se inserisci un indirizzo IP già aggiunto al monitoraggio, ti verrà chiesto di inserire nuovamente i dettagli. Inoltre, se non hai altri server da aggiungere, puoi inserire 0 per uscire dallo script.

Configurazione di Grafana

Passaggio 1: accedi alla dashboard di Grafana visitando Grafana-IP:3000 su un browser.

Passaggio 2: vai a Configurazione > Origini dati.

Passaggio 3: fai clic su Aggiungi origine dati.

Passaggio 4: cerca e seleziona Prometheus.

Passaggio 5: inserisci il nome Prometheus e l'URL (Prometheushostname:9090) e fai clic su Salva e prova. Se vedi "L'origine dati funziona ", hai aggiunto correttamente l'origine dati. Una volta terminato, vai su Crea > Importa.

Passaggio 6: puoi configurare manualmente la dashboard o importarla caricando il file JSON. Un modello JSON per il monitoraggio di MySQL e MariaDB può essere trovato nel collegamento seguente:

https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_Grafana-Mysql-MariaDB_Monitoring.json

Passaggio 7: compila i campi e importa.

Passaggio 8: la dashboard Grafana è pronta. Seleziona l'host e controlla se le metriche sono visibili. È possibile modificare e modificare la dashboard secondo necessità.

Conclusione

In questo tutorial hai imparato ad automatizzare il processo di configurazione per la distribuzione di Prometheus MySQL Exporter sui tuoi server. Seguendo i passaggi, puoi installare e configurare in modo efficiente l'esportatore per raccogliere i parametri MySQL per il monitoraggio.

Automatizzando questi passaggi, puoi semplificare il processo di distribuzione, ridurre il rischio di errore umano e garantire una configurazione coerente su più server. Questo tutorial è una soluzione affidabile ed efficiente per la distribuzione di Prometheus MySQL Exporter nella tua infrastruttura di monitoraggio.

Articoli correlati: