Chiunque abbia sottoscritto un contratto con un provider per una connessione in fibra, si aspetta prestazioni elevate e costanti. Tuttavia, possono verificarsi fluttuazioni significative in termini di banda disponibile nell’arco della giornata. Eseguire uno speed test del collegamento Internet a intervalli regolari aiuta a verificare la larghezza di banda a disposizione nei vari momenti della giornata, notte compresa.
Nell’articolo contenente le indicazioni per procedere con uno speed test rapido, abbiamo condiviso una serie di consigli per effettuare test affidabili. Trasferimenti dati in corso (ad esempio applicazioni e servizi che inviano importanti moli di dati in upload e in download) possono influenzare significativamente (in negativo) il giudizio finale dello speed test.
Come tenere sotto controllo le prestazioni della connessione Internet con Speedtest Tracker
In un contesto in cui la stabilità e le prestazioni della connessione Internet sono fondamentali per tutte le attività personali e professionali, disporre di uno strumento affidabile per il monitoraggio continuo è essenziale. Speedtest Tracker si propone come una soluzione self-hosted, progettata per tenere sotto controllo l’affidabilità della rete nel tempo, grazie a un sistema automatizzato di analisi e notifica.
Cos’è Speedtest Tracker?
Speedtest Tracker è un’applicazione open source containerizzata, sviluppata per offrire un controllo costante della qualità della connessione Internet. Utilizza in background il celebre strumento speedtest-cli
per effettuare test di velocità periodici, raccogliere metriche dettagliate e presentarle in una dashboard intuitiva. È pensata per essere eseguita su qualsiasi sistema compatibile con Docker o su piattaforme NAS come Synology, QNAP e Unraid, garantendo massima flessibilità di deployment.
📊 Metriche dettagliate
Ogni test eseguito da Speedtest Tracker registra dati completi tra cui:
- Velocità di download e upload (in Mbps),
- Ping medio e jitter (in ms),
- Perdita di pacchetti (%),
- Identificativo del server utilizzato per il test.
Questi dati sono aggregati in grafici di facile lettura che aiutano a identificare tendenze e anomalie. Tutti i risultati sono salvati in un database e consultabili tramite visualizzazioni temporali.
È possibile filtrare per data, fascia oraria o evento, facilitando l’analisi delle performance a lungo termine e la diagnosi di problemi intermittenti.
🔔 Sistema di notifiche
Speedtest Tracker può essere configurato per inviare avvisi automatici quando la qualità della connessione scende sotto una soglia definita (es. download < 20 Mbps o ping > 100 ms). Le notifiche possono essere integrate con canali come email, Telegram, Discord, Slack e così via.
Gli sviluppatori possono eventualmente integrare e abilitare all’interno di Speedtest Tracker anche altri Webhook personalizzati.
Architettura e distribuzione
Speedtest Tracker si basa su un’architettura containerizzata, ed è distribuito come immagine Docker mantenuta da LinuxServer.io, noto gruppo di mantenitori di progetti self-hosted. Ciò assicura aggiornamenti regolari e una solida compatibilità con i più comuni ambienti di orchestrazione come:
- Docker standalone
- Docker Compose
- Portainer
- Sistemi NAS compatibili con i container
Come installare e configurare Speedtest Tracker
Trattandosi di un’immagine Docker, chi utilizza già la soluzione basata su container ha già tra le mani tutto il necessario per ospitare ed eseguire Speedtest Tracker in locale.
Le indicazioni per installare Docker e Docker Compose sono disponibili sul sito ufficiale del progetto. Di seguito proponiamo i passaggi per installare Docker su Ubuntu (sono validi anche per effettuare un test di installazione con WSL, Windows Subsystem for Linux, senza installare Docker Desktop).
Installazione di Docker su Ubuntu
Il primo passo consiste nell’aggiornamento dei pacchetti installati e nell’installazione dei componenti software necessari:
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
Si procede quindi con l’aggiunta della chiave GPG di Docker:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Il comando seguente provvede all’aggiunta del repository Docker:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Installazione di Docker Engine:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Abilitazione di Docker all’avvio ed esecuzione del servizio corrispondente:
sudo systemctl enable docker
sudo systemctl start docker
Infine, si può aggiungere l’utente in uso al gruppo Docker:
sudo usermod -aG docker $USER
newgrp docker
Come aggiungere il container Docker di Speedtest Tracker
Digitando i comandi seguenti, si può verificare che Docker e Docker Compose siano installati e perfettamente funzionanti:
docker --version
docker compose version
Prima di procedere con l’installazione di Speedtest Tracker, si deve creare una cartella dedicata:
mkdir -p ~/speedtest-tracker && cd ~/speedtest-tracker
A questo punto, si può digitare il comando seguente per ottenere una chiave personale:
echo -n 'base64:'; openssl rand -base64 32;
Come passo finale, si deve copiare e incollare quanto segue avendo cura di sostituire a CHIAVE_GENERATA
la chiave appena generata (completa del prefisso base64:
):
sudo docker run -d --name=speedtest \
-p 8999:80 \
-p 8443:443 \
-p 8995:9000 \
-e DB_CONNECTION=sqlite \
-e APP_KEY=CHIAVE_GENERATA \
-v /docker/speedtest:/config \
--restart always \
lscr.io/linuxserver/speedtest-tracker:latest
Maggiori informazioni sono reperibili in questa pagina di supporto.
Accesso al pannello di amministrazione di Speedtest Tracker
Dopo aver atteso alcuni minuti (il primo avvio può richiedere tempo…) si può digitare l’indirizzo localhost:8443/admin/login
preceduto dall’indicazione https://
. Cliccare sull’indicazione che consente di procedere anche in caso di “sito non sicuro” (il messaggio dipende dal mancato uso di un certificato digitale: si può procedere tranquillamente).
Le credenziali predefinite sono admin@example.com
e password
, da specificare negli appositi campi di login. Con un clic sull’icona in alto a destra quindi su Profile, è possibile modificare queste impostazioni.
Per avviare uno speed test, basta cliccare sul pulsante arancione Speedtest in alto a destra quindi scegliere un server o lasciare in bianco il campo di scelta. Speedtest tracker seleziona sempre e comunque i server di test geograficamente più vicini all’utente.
Con un clic su API Tokens nella colonna di sinistra quindi su Create API token, si può generare un token autorizzativo utilizzabile per interrogare Speedtest Tracker a distanza. Digitando Speedtest come nome quindi spuntando la casella Run speedtest, si può ottenere un token per richiedere a distanza l’avvio di uno speed test.
Digitando quanto segue, si programma uno speed test della connessione Internet ogni 60 minuti:
sudo -i
echo '*/60 * * * * root curl -k -X POST https://127.0.0.1:8443/api/v1/speedtests/run -H "Authorization: Bearer API_TOKEN"' >> /etc/crontab
exit
Al posto di API_TOKEN
va sostituto l’API token generato in precedenza dall’interfaccia Web di Speedtest Tracker. Qui maggiori informazioni sulla sintassi utilizzabile.
Installazione di Speedtest Tracker in un server NAS
Come accennato in precedenza, Speedtest Tracker può essere eseguito automaticamente anche da un server NAS facendo leva proprio sul fatto che questi dispositivi sono sempre connessi alla rete Internet. Nel caso dei NAS Synology più recenti, si deve installare Container Manager dal Centro pacchetti.
Con un clic su File Station, si deve creare una sottocartella chiamata speedtest
all’interno della directory /docker
.
Per configurare Speedtest Tracker suggeriamo quindi di aprire il Pannello di controllo del NAS, scegliere l’icona Terminale e SNMP quindi spuntare la casella Attiva servizio SSH.
Dopo aver stabilito una connessione SSH con il NAS Synology, servendosi ad esempio di un software come PuTTY, si possono impartire i comandi seguenti:
sudo -i
echo -n 'base64:'; openssl rand -base64 32;
Quindi sostituire a CHIAVE_GENERATA
la chiave appena generata (completa del prefisso base64:
):
sudo docker run -d --name=speedtest \
-p 8999:80 \
-p 8443:443 \
-p 8995:9000 \
-e DB_CONNECTION=sqlite \
-e APP_KEY=CHIAVE_GENERATA \
-v /volume1/docker/speedtest:/config \
--restart always \
lscr.io/linuxserver/speedtest-tracker:latest
Adesso è tutto pronto: digitando https://
seguito dall’indirizzo IP del NAS quindi da :8443
, si accede all’interfaccia di amministrazione di Speedtest Tracker attraverso il corrispondente container Docker (potrebbero essere necessari alcuni minuti affinché tutto funzioni).
Pianificare gli speed test automatici dal NAS Synology
Adesso, si può seguire la procedura descritta al precedente paragrafo “Accesso al pannello di amministrazione di Speedtest Tracker” per creare un API token.
Nel seguente comando, da impartire sempre via SSH, si deve indicare l’indirizzo IP del NAS Synology e l’API token appena generato tramite interfaccia Web:
echo '*/60 * * * * root curl -k -X POST https://IP_NAS:8443/api/v1/speedtests/run -H "Authorization: Bearer API_TOKEN"' >> /etc/crontab
Anche in questo caso, l’attività programmata provvede ad eseguire uno speed test ogni 60 minuti.
In qualunque momento, per eliminare la programmazione nel NAS Synology, basta digitare i seguenti comandi nella finestra SSH:
sudo -i
sed -i '/speedtest/d' /etc/crontab
Inoltre, non appena configurato il NAS, il consiglio è comunque quello di disattivare l’accesso via SSH disabilitando la casella corrispondente nella sezione Telnet e SNMP del Pannello di controllo.
Per approfondire, suggeriamo di visitare il repository GitHub del progetto.
Note finali
La modifica e la configurazione di sistemi, in particolare server NAS, tramite terminale (SSH) è un’operazione delicata che richiede attenzione e competenza. Qualsiasi comando errato potrebbe compromettere la stabilità o la sicurezza del dispositivo e dei dati in esso contenuti.
Per questo motivo, si raccomanda vivamente di effettuare sempre un backup completo di tutti i dati prima di procedere con modifiche o installazioni da terminale. Inoltre, è consigliabile eseguire tali operazioni solo se si ha familiarità con l’ambiente Linux e con i comandi da utilizzare, oppure sotto la supervisione di un tecnico specializzato.
Al fine di semplificare l’installazione e la configurazione di Speedtest Tracker, si può utilizzare il container da una macchina con CasaOS, utile soluzione che nasce proprio per ottimizzare il supporto per i container Docker e democratizzare l’accesso a questa tecnologia.