Se devi portare online Grafana su Ubuntu 20.04, il percorso più pulito è usare il repository ufficiale del vendor, non un pacchetto preso a caso dal mirror di turno. Ti eviti dipendenze vecchie, aggiornamenti incoerenti e una manutenzione più sporca del necessario. In pratica: aggiungi la sorgente APT corretta, installi il servizio, verifichi che ascolti sulla porta giusta e poi fai il primo accesso con credenziali temporanee da cambiare subito.
Qui non c’è solo l’installazione base: conviene fare anche due cose che in produzione fanno la differenza. La prima è controllare che il servizio parta davvero sotto systemd e non resti in uno stato ambiguo. La seconda è mettere almeno un minimo di disciplina sulla configurazione: accesso amministrativo, binding di rete, reverse proxy se serve, e un controllo rapido dei log quando qualcosa non torna.
Prerequisiti e scelta dell’architettura
Su Ubuntu 20.04 Grafana gira senza problemi su una VM piccola, ma la taglia della macchina dipende dall’uso reale. Per dashboard interne con pochi utenti bastano risorse modeste; se invece lo usi come piattaforma centrale di osservabilità, la CPU e soprattutto la RAM iniziano a contare. In ogni caso, prima di toccare il sistema verifica che APT funzioni, che l’orologio sia corretto e che la porta 3000 non sia già occupata da altro.
La strada più semplice è esporre Grafana direttamente su 3000 solo per test o laboratori. In ambiente serio, invece, conviene metterlo dietro Nginx o Apache come reverse proxy, con TLS e un hostname dedicato. Se hai già un proxy standard in casa, puoi riusarlo; altrimenti installa prima Grafana in modo nativo e poi aggiungi il front-end HTTP.
Installazione da repository ufficiale
La sequenza sotto aggiunge la chiave del repository, registra la sorgente APT e installa il pacchetto. Su Ubuntu 20.04 la base è solida e non richiede passaggi strani.
1. Aggiorna l’indice pacchetti e installa i prerequisiti minimi:
sudo apt update
sudo apt install -y apt-transport-https software-properties-common wget
2. Importa la chiave GPG del repository Grafana e crea la sorgente APT:
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
3. Ricarica gli indici e installa Grafana OSS:
sudo apt update
sudo apt install -y grafana
Nota pratica: il comando con apt-key è ancora comune in molte guide, ma è una strada che nel tempo è stata deprecata. Se vuoi essere più rigoroso sul lungo periodo, puoi usare il keyring dedicato in /usr/share/keyrings/ e una source list con signed-by. Se stai documentando un ambiente nuovo, vale la pena farlo subito.
Installazione con keyring moderno
Se preferisci evitare il vecchio flusso con apt-key, usa questo schema. È più pulito e più facile da auditare perché il trust è legato solo a quel repository.
sudo mkdir -p /usr/share/keyrings
curl -fsSL https://packages.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install -y grafana
Questo approccio non cambia il risultato finale, ma migliora la manutenibilità. In caso di audit o di rotazione della chiave, sai esattamente dove intervenire.
Avvio del servizio e verifica dello stato
Una volta installato il pacchetto, Grafana non sempre si avvia da solo in modo utile per te. Il controllo va fatto subito con systemd e con una prova HTTP locale. Se salti questo passaggio, rischi di scoprire un problema di bind, permessi o porta occupata solo quando provi ad aprire il browser.
1. Abilita il servizio all’avvio e avvialo adesso:
sudo systemctl enable --now grafana-server
2. Verifica stato e log recenti:
sudo systemctl status grafana-server --no-pager
sudo journalctl -u grafana-server -n 50 --no-pager
3. Controlla che la porta 3000 sia in ascolto:
sudo ss -ltnp | grep :3000
Se il servizio è attivo ma la porta non compare, il problema è quasi sempre in configurazione o nelle prime fasi di startup. I log di journalctl sono il primo posto da guardare: errori sul database SQLite, permessi errati sul path dei dati o conflitti di porta emergono lì in modo abbastanza chiaro.
Accesso iniziale e credenziali di default
Di default Grafana ascolta su http://SERVER-IP:3000. Il primo accesso usa in genere credenziali standard: admin come utente e admin come password. Al primo login il sistema ti obbliga a cambiarla, ed è una cosa da fare subito, non “più tardi”.
Se stai lavorando su una macchina remota, verifica prima l’esposizione della porta. Da una postazione esterna puoi fare un test semplice:
curl -I http://SERVER-IP:3000
Un risultato sano restituisce un HTTP/1.1 200 OK o una risposta di redirect coerente con la configurazione. Se invece ricevi timeout, rifiuto di connessione o un codice 5xx, il problema non è “Grafana in sé” ma il layer di rete, il firewall o il servizio che non è partito correttamente.
Configurazione base del file grafana.ini
Il file principale è /etc/grafana/grafana.ini. Non serve riscriverlo tutto: conviene lavorare per override minimi, perché il file è già abbastanza ricco e toccarlo senza criterio rende più difficile il confronto dopo un upgrade. Se vuoi fare una modifica pulita, salva prima una copia o usa un diff documentato.
Le opzioni più utili all’inizio sono queste:
[server]
http_addr = 0.0.0.0
http_port = 3000
domain = grafana.example.com
root_url = https://grafana.example.com/
[security]
admin_user = admin
admin_password = cambia_questa_password
[users]
allow_sign_up = false
Attenzione a due dettagli. Primo: http_addr su 0.0.0.0 espone il servizio su tutte le interfacce; va bene se la macchina è protetta da firewall e reverse proxy, male se la lasci aperta su una rete non fidata. Secondo: root_url deve riflettere davvero l’URL pubblico, altrimenti login, callback e link interni possono comportarsi in modo incoerente.
Dopo ogni modifica al file, riavvia il servizio:
sudo systemctl restart grafana-server
sudo systemctl status grafana-server --no-pager
Firewall e accesso alla porta 3000
Su Ubuntu 20.04, se usi UFW, devi consentire il traffico in ingresso sulla porta di Grafana oppure limitare l’accesso solo alla rete di amministrazione. Aprire tutto su Internet non è una buona idea se non hai un proxy davanti e regole di accesso ben definite.
Per un test rapido:
sudo ufw allow 3000/tcp
sudo ufw status verbose
In produzione, meglio usare una regola più stretta, per esempio consentendo solo da IP amministrativi o dalla subnet del reverse proxy. Se il servizio deve stare dietro Nginx, puoi anche non esporre affatto 3000 verso l’esterno e lasciare il binding solo su localhost.
Grafana dietro Nginx con TLS
Questa è la configurazione che ha più senso nella maggior parte degli ambienti. Grafana resta sul backend, Nginx gestisce il certificato, l’HTTP/2 se ti serve e l’eventuale terminazione TLS. È anche il punto giusto per applicare header di sicurezza di base e controlli di accesso aggiuntivi.
Un esempio minimale di virtual host Nginx:
server {
listen 80;
server_name grafana.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name grafana.example.com;
ssl_certificate /etc/letsencrypt/live/grafana.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/grafana.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
Se usi un proxy, non dimenticare di aggiornare root_url in grafana.ini. Senza questo allineamento puoi ritrovarti con redirect strani, link assoluti sbagliati o cookie non persistenti. È uno di quei bug che sembrano casuali ma in realtà sono solo incoerenza di contesto tra backend e front-end.
Per ottenere un certificato valido con Let’s Encrypt, puoi usare Certbot oppure il tuo flusso standard. L’importante è che il certificato sia installato prima di forzare il redirect HTTPS, così eviti di tagliarti fuori durante il collaudo.
Verifica funzionale dopo l’installazione
Il collaudo non si limita a “la pagina si apre”. Devi verificare almeno tre cose: accesso web, login amministrativo e scrittura su disco dei dati di Grafana. Se una di queste manca, il sistema è formalmente acceso ma non davvero operativo.
Una checklist semplice:
- Apri
http://SERVER-IP:3000o il dominio HTTPS configurato e verifica che compaia la schermata di login. - Accedi con admin/admin e cambia immediatamente la password.
- Crea una dashboard di prova con un pannello vuoto o una sorgente dati temporanea.
- Ricarica la pagina e controlla che la dashboard persista dopo il refresh.
- Controlla i log del servizio con
journalctl -u grafana-server -n 20 --no-pagerper escludere errori silenti.
Se vuoi verificare il backend in modo più diretto, osserva anche i file sotto /var/lib/grafana/. È lì che Grafana conserva i dati locali quando usi il database embedded predefinito. Permessi sbagliati su questa directory sono una causa classica di avvio fallito o scrittura incompleta.
Gestione del servizio e manutenzione ordinaria
Il servizio systemd si chiama grafana-server. Per l’operatività quotidiana bastano pochi comandi, ma conviene usarli sempre nello stesso modo per non confondere stato, restart e abilitazione all’avvio.
sudo systemctl status grafana-server
sudo systemctl restart grafana-server
sudo systemctl stop grafana-server
sudo systemctl start grafana-server
Quando aggiorni il pacchetto, fai sempre attenzione alla compatibilità con eventuali plugin. Grafana tende a essere abbastanza stabile, ma plugin di terze parti o datasource non standard possono richiedere verifiche aggiuntive dopo un upgrade. Se l’ambiente è importante, testa prima in una copia.
Se devi installare plugin, usa il comando dedicato e poi riavvia il servizio:
sudo grafana-cli plugins install NOME_PLUGIN
sudo systemctl restart grafana-server
Qui la prudenza è doppia: un plugin può introdurre funzionalità utili, ma anche superficie d’attacco e dipendenze extra. In un contesto esposto a utenti esterni, meglio installare solo ciò che serve davvero e tenere traccia della versione esatta.
Problemi comuni e lettura rapida dei sintomi
Se la pagina non si apre, il primo passo è capire dove si rompe la catena: DNS, rete, porta, servizio, proxy o applicazione. Un curl -I ti dice subito se il problema è lato HTTP; ss ti dice se la porta ascolta; i log di systemd ti dicono se Grafana è riuscito a partire.
Se vedi una pagina bianca o un login che non va avanti, controlla il browser e il proxy. Errori di root_url, cookie bloccati, HTTPS terminato male o header mancanti sono cause frequenti. Se invece il servizio parte ma si chiude subito, quasi sempre c’è un problema di permessi, database locale corrotto o configurazione non valida in grafana.ini.
Un controllo utile è anche la porta effettivamente usata da Grafana. Se hai cambiato http_port, il browser e il firewall devono riflettere quel valore, altrimenti stai cercando il servizio nel posto sbagliato. Sembra banale, ma è uno degli errori più frequenti quando si sposta una dashboard da laboratorio a server reale.
Hardening minimo consigliato
Per un’installazione seria, il minimo sindacale è questo: password admin forte cambiata subito, accesso esposto solo dove serve, TLS abilitato, plugin ridotti al necessario, e un backup della configurazione prima di ogni modifica. Se Grafana contiene dashboard operative o integrazioni con datasource sensibili, tratta il server come componente d’infrastruttura, non come semplice interfaccia web.
Un paio di accorgimenti aggiuntivi aiutano parecchio: disabilitare la registrazione libera se non serve, limitare chi può creare datasource e usare un reverse proxy con autenticazione aggiuntiva quando l’esposizione è ampia. Non sono dettagli cosmetici: riducono errori umani e superficie d’attacco reale.
Conclusione operativa: installazione pulita, verifica immediata, messa in sicurezza
Installare Grafana su Ubuntu 20.04 non è complicato, ma farlo bene richiede tre passaggi distinti: repository corretto, servizio verificato e accesso messo in sicurezza. Se ti fermi alla sola installazione del pacchetto, hai solo una parte del lavoro. Se invece controlli subito log, porta, login e reverse proxy, ti porti a casa una base solida e molto meno fragile nel tempo.
In sintesi: usa il repository ufficiale, preferisci il keyring moderno se stai creando un ambiente nuovo, verifica il servizio con systemd, esponi Grafana dietro TLS quando possibile e cambia subito le credenziali iniziali. È la differenza tra “è installato” e “è pronto per essere usato”.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.