Installazione ed Utilizzo di Grafana

Una guida completa per installare e configurare Grafana su Ubuntu. Segui i passaggi dettagliati per collegare Prometheus e creare da zero la tua prima dashboard di monitoraggio, trasformando i dati grezzi in grafici chiari ed efficaci.

Condividi
Installazione ed Utilizzo di Grafana
Il logo di Grafana

Grafana è una piattaforma open-source usata per l'analisi e la visualizzazione interattiva dei dati. Il suo scopo principale è connettersi a svariate fonti di dati (come database, log e servizi di monitoraggio) e trasformare queste informazioni complesse in grafici, diagrammi e dashboard eleganti e facili da capire.

Grafana è ampiamente utilizzato in ambienti dove monitorare i dati ed il loro cambiamento nel tempo è di cruciale importanza, per esempio:

Monitorando i dati delle vetture nelle gare di Formula 1 (Ferrari)
Controllando lo stato delle missioni aerospaziali (SpaceX)
Nel corso del Tour de France

Se seguirete le mie guide relative allo stack Telegraf/Prometheus/Grafana, anche voi sarete in grado di monitorare il vostro Homelab, il DataCenter aziendale, o anche solo come si sentono oggi le piante del vostro giardino!

Prerequisiti

Per seguire questa guida avrete bisogno di:

  • Una macchina su cui installare la componente server di Grafana (gli step della guida sono relativi a Ubuntu Server)
  • Almeno una DataSource compatibile con Grafana (nella guida si fa riferimento a Prometheus)
  • Tanta voglia di sperimentare, che è il miglior modo per imparare ad usare Grafana

Vi consiglio, per motivi di linearità, di seguire prima le guide relative all'Installazione di Telegraf ed all'Installazione di Prometheus.

Installazione di Telegraf
Telegraf è un software open source di InfluxData che raccoglie metriche da servizi e sistemi (compresa la macchina su cui viene installato) per poi esporle tramite un webserver e farle utilizzare da altri servizi.
Installazione di Prometheus
Prometheus è un software open source (github) che immagazzina metriche in un Time-Series DataBase (TSDB) e permette di eseguire query sui dati.

In questa guida vedremo come installare Grafana OSS Stable su Ubuntu per chiudere il cerchio e visualizzare le metriche esposte da Telegraf e storicizzate da Prometheus.

Installazione

(testato su Ubuntu Server 24.04)
I seguenti passaggi sono rielaborati partendo dalla guida di installazione ufficiale.

  • Installate i prerequisiti
sudo apt-get install -y apt-transport-https software-properties-common wget
  • Importate la chiave GPG della repository di Grafana
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
❓
Cos'è la chiave GPG?
si tratta della firma digitale con cui Grafana firma i propri pacchetti, dobbiamo importarla per far sì che apt possa verificare l'originalità dei pacchetti che andremo ad installare.
  • Aggiungiamo ad apt la repository di Grafana relativa alle release stabili
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
  • Infine andiamo ad installare Grafana nella sua versione OSS (Open Source Software)
sudo apt update
sudo apt install grafana

Adesso dobbiamo abilitare il servizio di Grafana in modo che si avvii in automatico.

  • Abilitiamo il servizio di Grafana
sudo systemctl enable grafana-server.service
  • Facciamo leggere le modifiche a systemd ed avviamo il servizio di Grafana
sudo systemctl daemon-reload
sudo systemctl start grafana-server
  • Per verificare che il servizio sia attivo e funzionante, potete usare il comando:
sudo systemctl status grafana-server

Se tutto è andato bene, vedrete lo stato active (running) colorato di verde.

Grafana dovrebbe ora essere raggiungibile tramite browser sulla porta 3000 del nostro server.

Preferisci non doverti ricordare IP e Porta di Grafana?
Puoi risolvere creando un Reverse Proxy tramite NGINX!

Come creare un Reverse Proxy con NGINX
Un Reverse Proxy è un server che si frappone tra i client ed uno o più server. Fa letteralmente da intermediario ed ha un comportamento dettato da regole relative a varie caratteristiche delle richieste che riceve. Vediamo insieme come configurare NGINX come Reverse Proxy.

Configurazione

In questa sezione vedremo come effettuare il primo accesso a Grafana, collegarci a Prometheus e creare la nostra prima dashboard.

Primo accesso

Accedendo a http://indirizzo.IP.di.Grafana:3000 verremo accolti dalla schermata di login:

  • Per il primo accesso, possiamo usare le credenziali
    • username: admin
    • password: admin
  • Grafana ci intimerà di modificare la password, per ovvie ragioni. Procediamo e modifichiamo la password dell'account admin

Collegamento a Prometheus

Una volta arrivati sulla Homepage di Grafana, andiamo direttamente a collegare Prometheus:

  • Nella barra laterale, navigate in Connections → Data sources e premete su Add data source
  • Prometheus è la prima data source, in cima alla lista! Conveniente!

A seconda di come avete impostato Prometheus, dovrete indicare un po' di parametri. Dando per scontato che abbiate seguito la mia guida, e che abbiate una configurazione base di Prometheus, vediamo insieme i parametri strettamente necessari:

  • Name: indicate un nome che vi aiuti a riconoscere questa istanza di Prometheus, soprattutto se ne avete più di una.
  • Prometheus server URL: indicate l'URL di Prometheus, seguendo il formato protocollo://indirizzoIP:porta, ad esempio http://192.168.0.240:9090
❗
ATTENZIONE
Assicuratevi che il server su cui gira Grafana possa raggiungere questo indirizzo.
Se sono su macchine diverse, verificate che non ci siano regole firewall a bloccare la comunicazione sulla porta 9090.
  • Se avete impostato l'autenticazione su Prometheus, selezionate la voce corretta in Authentication method e valorizzate user e password

Non dovrebbe servirvi altro, quindi potete premere il tasto Save & test in fondo alla pagina, per salvare le impostazioni e testarne il funzionamento.

Creazione della prima Dashboard

Ora che abbiamo terminato gli step di configurazione iniziale, possiamo iniziare a divertirci con Grafana.

Vedremo insieme come creare una prima dashboard molto semplice, ma poi starà a voi esercitarvi e sperimentare fino a quando non avrete creato la vostra personalissima dashboard di Grafana!

Navigate nel menu laterale in Dashboards, poi premete su Create dashboard

Non ve ne siete accorti, ma tecnicamente avete appena creato la vostra prima dashboard, solo che è vuota!
Premete su Add visualization per aggiungere il vostro primo widget

Selezionate la nostra data source, Prometheus

Vi ritroverete ora nella pagina di modifica del vostro primo widget. Vediamo come procedere per step.

Step 1: Scegliere la metrica

Prima di tutto, scegliamo una metrica con cui giocare. Se avete seguito la mia guida di Telegraf e lo avete collegato a Prometheus, avrete a disposizione le metriche di tutte le macchine su cui avete installato Telegraf.
Prendiamo come esempio la percentuale di RAM utilizzata:

Concentriamoci su questa parte dell'editor: la Query

Ogni Widget può avere più di una Query.
Ogni Query può restituire più di un risultato.
Per esempio, adesso andremo a valorizzare una Query che andrà ad estrapolare il valore della RAM utilizzata di tutte le macchine monitorate.

Selezionate l'icona a forma di libro accanto a Select metric, e nella barra di ricerca inserite "mem_"

Ci sono molte metriche che contengono la stringa "mem_", ma a noi serve mem_used_percent. Selezionatela

Non si vede niente, vero? Non vi preoccupate.
Premete sul pulsante Run queries in alto a destra, nel riquadro della query, per aggiornare i valori.

Adesso nel riquadro del widget dovreste avere un grafico simile a questo:

Se siete soddisfatti, potete premere su Save Dashboard in alto a destra e godervi il vostro nuovo grafico

Potete ridimensionare e spostare il grafico nella dashboard (ma non potrete lasciare spazio vuoto sopra), e ricordatevi sempre di premere Save dashboard in alto a destra per non perdere le vostre modifiche.

Adesso torniamo a modificare il widget che abbiamo appena creato ed aggiustiamo un paio di cose.

Step 2: Modificare la label delle metriche

Premete sul pulsante in alto a destra sul grafico (compare solo al passaggio del mouse) e selezionate Edit

Siamo di nuovo nell'editor del widget!
Prima di procedere, modifichiamo le label delle series in modo che siano più leggibili.

  • Aprite la sezione Options
  • Impostate Legend a custom
  • Indicate tra doppie parentesi graffe il nome del valore da cui prendere la label (nel nostro caso, host che indica il nome della macchina a cui fa riferimento la metrica)

Appena apportata questa modifica, noterete che la Legenda risulta molto più leggibile

Step 3: Personalizzare il grafico

Adesso, concentriamoci sulla barra di destra.

Sperimentate liberamente coi valori di questa barra laterale.
Vi do qualche indicazione per completare il widget secondo i miei standard, ma sentitevi liberi di modificarlo come preferite.

  • Modificate il Title con "Utilizzo RAM%" per modificare il titolo visualizzato in alto a sinistra sul grafico.
  • Selezionate Tooltip mode → All per vedere i valori di tutte le metriche passando col mouse sul grafico.
  • Disattivate l'opzione Visibility sotto a Legend per nascondere la legenda
❓
Si ma... perchè?
Dato che abbiamo impostato il Tooltip mode su All, possiamo ora vedere il nome dell'host semplicemente passando il mouse sul grafico, rendendo la legenda permanente meno necessaria e il grafico più pulito.
  • Dentro a Graph styles selezionate la linea curva, impostate Fill opacity a 50 e Gradient mode a Opacity per avere un grafico più visivamente appagante
  • Sotto a Standard options modificate:
    • Unit: Misc / Percent (0-100) per visualizzare i valori come percentuale
    • Min e Max rispettivamente a 0 e 100 per fissare il minimo del grafico allo 0% ed il massimo al 100%
  • nella sezione Thresholds aggiungete più limiti a vostra scelta, coi relativi colori, ed impostate Show threshold a As lines (dashed) per visualizzare sul grafico i limiti impostati

Importare Dashboard già pronte

Per i più pigri, o per chi vuole sperimentare su una dashboard già fatta, è possibile consultare la sezione del sito di Grafana che contiene le Dashboard caricate dalla community.

Controllate sempre che il nome della Datasource sopra al nome della dashboard corrisponda alla vostra Datasource (nel nostro caso, Prometheus)

Questo perché tutte le dashboard sono legate ad un tipo di Datasource (infatti è la prima cosa che abbiamo scelto quando abbiamo creato una nuova dashboard) ed usare una Datasource diversa comporta il dover riscrivere tutte le query dei grafici

Una volta trovata una Dashboard da importare, premete su Copy ID to clipboard

Tornare su Grafana, premere su Dashboards nel menu laterale, poi su New ed infine su Import

Incollare l'ID copiato dal sito e premere su Load

Conclusioni

Ora che avete messo su l'intero stack composto da Telegraf, Prometheus e Grafana, il vostro limite è l'immaginazione.

Cimentatevi prima di tutto nel creare una Dashboard che contenga le metriche che volete tenere sotto controllo, e che avete già a disposizione.

Una volta che avrete preso dimestichezza con questo stack, potete approfondire installando exporter di Prometheus per integrare metriche di dispositivi di terze parti, come AdGuard, NUT o NGINX.

Monitorare AdGuard tramite Grafana e Prometheus
AdGuard espone di default le sue metriche di utilizzo alla pagina /metrics , ma questi dati non possono essere utilizzati da Prometheus così come sono. In questo articolo vedremo insieme come estrapolare i dati in modo da visualizzarli su Grafana.