Come Utilizzare Grafana su Docker per Monitorare il Tuo SQL Server (Eventualmente Anche su Docker) con InfluxDB e Telegraf (2023)

Panoramica dell'Infrastruttura

Nell'era centrata sui container, per integrare la mia istanza SQL Server su Docker (articoli precedenti ) ho esaminato soluzioni di monitoraggio containerizzate e ho scelto Grafana come primo candidato. Spoiler: tutto diventa semplice una volta capito come funzionano queste cose, il che potrebbe non essere banale per un "Windows Guy" come me.

Elementi Principali

  1. Grafana: Una soluzione open source di analisi e monitoraggio per ogni tipo di database. Grafana consente di interrogare, visualizzare, impostare allarmi e capire le metriche ovunque siano memorizzate. Puoi creare, esplorare e condividere dashboard con il tuo team, promuovendo una cultura basata sui dati.

  2. InfluxDB: Un database di serie temporali programmabile e performante, con un'API comune tra le offerte open source, cloud e enterprise.

  3. Telegraf: Un agente server basato su plugin per la raccolta e la segnalazione di metriche. Telegraf raccoglie e invia dati di ogni tipo da database, sistemi e sensori IoT.

Panoramica del Processo

Telegraf si connette alle istanze SQL Server e inizia a leggere dalle DMV (Dynamic Management Views), senza richiedere o creare oggetti aggiuntivi. Il modo in cui i dati vengono raccolti è definito da Telegraf, che è un componente per InfluxDB con oltre 170 plugin per inglobare dati dalle fonti più disparate, inclusi SQL Server.

Vantaggi di Telegraf + InfluxDB:

  • I componenti di monitoraggio dell'istanza sono containerizzati, quindi nessuna modifica influisce sull'istanza SQL.
  • Gli stessi container possono essere utilizzati per monitorare più istanze SQL (o uno degli altri 170+ componenti che Telegraf può leggere).
  • Dashboards pronti all'uso su Grafana, evitando la necessità di reinventare la ruota.

Alternativa Considerata:

L'uso del primoresponderskit per salvare i dati storici delle DMV direttamente sull'istanza e generare query personalizzate per Grafana, eliminando i container InfluxDB ma aumentando la complessità delle interrogazioni.

Implementazione

Passo 1: Preparazione dell'ambiente Docker per SQL Server 2019

docker pull mcr.microsoft.com/mssql/server:2019-latest
docker network create localnet
docker run -v sqlvolume:/var/opt/mssql -v D:\SQL:/sql -i --name sql2019 --net localnet -p 1433:1433 -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=QuestaÈUnaPassword,ok?" -e MSSQL_AGENT_ENABLED=True -d mcr.microsoft.com/mssql/server:2019-latest
docker start sql2019

Passo 2: Creazione di una Rete Interna per i Container e Abilitazione dell'Agente SQL

docker network create localnet
-e MSSQL_AGENT_ENABLED=True

Passo 3: Configurazione di Grafana

docker volume create grafana-storagedocker
run -d -p 3000:3000 --name=grafana --net localnet -v grafana-storage:/var/lib/grafana grafana/grafana

Passo 4: Pull e Configurazione di InfluxDB

docker run -p 8086:8086 --name=influxdb --net localnet -v D:\SQL\Influx:/var/lib/influxdb influxdb

Passo 5: Pull e Configurazione di Telegraf

docker run --rm telegraf --net localnet telegraf config > telegraf.conf

Modificare telegraf.conf con l'indirizzo di InfluxDB e SQL Server, quindi avviare il container Telegraf:

docker run -v D:\SQL\telegraf.conf:/etc/telegraf/telegraf.conf:ro --name=telegraf --net localnet telegraf

Passo 6: Configurazione Finale di Grafana

Aprire il browser, accedere a localhost:3000, utilizzare le credenziali predefinite (admin/admin) e aggiungere InfluxDB come sorgente dati.

Utilizzo di Grafana

Se tutto è stato eseguito correttamente, aprendo le nuove dashboard importate, i dati inizieranno a comparire dopo pochi secondi. Ogni pannello può essere modificato, spostato o rimosso, e è possibile creare nuovi pannelli.

L'interrogazione di InfluxDB è semi-automatica grazie al menu a discesa nell'editor di query. Ora, le possibilità sono limitate solo dalla tua immaginazione!

Concludendo, l'utilizzo di Grafana su Docker con InfluxDB e Telegraf per monitorare il tuo SQL Server rappresenta un approccio flessibile e containerizzato che offre numerosi vantaggi in termini di gestione, scalabilità e personalizzazione delle dashboard. Seguendo i passi sopra descritti, potrai facilmente implementare questa soluzione nel tuo ambiente Docker, migliorando l'efficienza e la facilità di monitoraggio delle tue istanze SQL Server.

References

Top Articles
Latest Posts
Article information

Author: Duane Harber

Last Updated: 15/08/2023

Views: 6069

Rating: 4 / 5 (51 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Duane Harber

Birthday: 1999-10-17

Address: Apt. 404 9899 Magnolia Roads, Port Royceville, ID 78186

Phone: +186911129794335

Job: Human Hospitality Planner

Hobby: Listening to music, Orienteering, Knapping, Dance, Mountain biking, Fishing, Pottery

Introduction: My name is Duane Harber, I am a modern, clever, handsome, fair, agreeable, inexpensive, beautiful person who loves writing and wants to share my knowledge and understanding with you.