Internet Geschwindigkeit überwachen mit Speedtest Tracker
Mit Speedtest Tracker kannst du die Internetgeschwindigkeit deines Anschlusses überwachen.
Inhaltsverzeichnis
Seit Dezember 2021 gewährt § 57 Abs. 4 TKG Verbrauchern das Recht auf eine Minderung des monatlichen Entgelts oder sogar eine außerordentliche Kündigung des Vertrags “im Falle einer erheblichen, kontinuierlichen oder regelmäßig wiederkehrenden Abweichung” zwischen der versprochenen und der tatsächlichen Leistung. Um dies zu belegen, stellt die Bundesnetzagentur eine Desktop-App bereit, mit der die Geschwindigkeit offiziell gemessen werden kann.
Doch was ist, wenn man seine Internetverbindung dauerhaft im Auge behalten möchte? Hier kommt Speedtest Tracker ins Spiel. Mit dieser Open-Source-Anwendung kann man seine Internetgeschwindigkeit automatisch und kontinuierlich überwachen – perfekt für die persönliche Dokumentation und Analyse. Für offizielle Beschwerden sollte die App der Bundesnetzagentur verwendet werden, aber für die eigene Transparenz und Kontrolle schauen wir uns an, wie wir Speedtest Tracker einrichten können.
Vorbereitung
Zunächst benötigt man ein Gerät, auf dem Docker und Docker-Compose installiert sind. Idealerweise ist das ein Server, der direkt und drahtgebunden mit dem Router verbunden ist. Auf diesem Server erstellen wir drei Ordner für die Konfiguration und die Datenbank, außerdem eine docker-compose.yml Datei.
mkdir speedtest-tracker
cd speedtest-tracker
mkdir data
mkdir keys
mkdir db
touch docker-compose.yml
Docker Compose Datei
In der docker-compose.yml
definieren wir die Dienste für den Speedtest Tracker und die Datenbank:
networks:
proxy:
external: true
name: proxy
internal:
external: false
services:
speedtest-tracker:
container_name: speedtest-tracker
environment:
- PUID=1000
- PGID=1000
- DB_CONNECTION=pgsql
- DB_HOST=db
- DB_PORT=5432
- DB_DATABASE=speedtest_tracker
- DB_USERNAME=speedy
- DB_PASSWORD=password
- TZ=Europe/Berlin
volumes:
- ./data:/config
- ./keys:/config/keys
image: lscr.io/linuxserver/speedtest-tracker:latest
restart: unless-stopped
networks:
- internal
- proxy
depends_on:
- db
db:
image: postgres:15
restart: always
environment:
- POSTGRES_DB=speedtest_tracker
- POSTGRES_USER=speedy
- POSTGRES_PASSWORD=password
volumes:
- ./db:/var/lib/postgresql/data
networks:
- internal
Die PUID und PGID sollten auf den eigenen Benutzer und die Gruppe gesetzt werden. Dazu einfach id
im Terminal eingeben, um die Werte zu ermitteln. Die Zeitzone kann geändert werden. Das Passwort der Datenbank sollten bei DB_PASSWORD und POSTGRES_PASSWORD geändert werden.
Reverse Proxy
Hat man keinen Reverse Proxy auf dem Server, muss die Netzwerk Konfiguration angepasst werden. In diesem Fall muss auch der Port 80 des Speedtest Trackers freigegeben werden.
Ansonsten kann man einen Proxy Host zum Container erstellen. Im Fall von Caddy würde das beispielsweise so aussehen, wenn man den Speedtest Tracker unter https://speedtest.domain.de
erreichen möchte und dieser nur intern erreichbar sein soll:
https://speedtest.domain.de {
@blocked not remote_ip private_ranges
respond @blocked 403
reverse_proxy speedtest-tracker:80
}
Einstellungen
Sobald die Container laufen, kann man sich im Speedtest Tracker mit dem Benutzernamen admin@example.com
und dem Passwort password
anmelden. Diese Anmeldeinformationen kann man in den Einstellungen ändern. In den “General”-Einstellungen findet man auch die Möglichkeit einen automatischen Zeitplan für die Geschwindigkeitsmessungen zu konfigurieren. Hierbei muss man das cron-Format beachten.
Ein paar Beispiele für Zeitpläne:
*/30 * * * * # alle 30 Minuten
0 * * * * # jede Stunde
0 0 * * * # jeden Tag um Mitternacht
0 22 * * 1-5 # Montag bis Freitag um 22 Uhr
0 0 * * 0 # jeden Sonntag um Mitternacht
0 0 1 * * # jeden Monat am ersten um Mitternacht
Beispieldaten
Die gesammelten Daten können als CSV-Datei exportiert werden. Dabei wählt man aus den Spalten:
- “ID”
- “IP address”
- “Service”
- “Service ID”
- “Server name”
- “Download”
- “Upload”
- “Ping”
- “Packet loss”
- “Download jitter”
- “Upload jitter”
- “Ping jitter”
- “Upload latency high”
- “Upload latency low”
- “Upload latency avg”
- “Download latency high”
- “Download latency low”
- “Download latency avg”
- “Comments”
- “Scheduled”
- “Created at” sowie
- “Uploaded at”
diejenigen aus, die man gerne exportieren möchte.
Hier ein Beispielversuch mit Vodafone Gigabit Kabelinternet (1000 Mbit/s Download, 50 Mbit/s Upload) in Berlin. Ich habe den Speedtest Tracker über zwei Monate lang jede Stunde laufen lassen (vom 27.07.2024 bis zum 27.09.2024) und die Ergebnisse (1512 Messungen) analysiert:
- 16 Messungen hatten keine Internetverbindung, das entspricht einer Verfügbarkeit von 98,94%
- Bei 206 Messungen sind Pakete verloren gegangen.
- Die durchschnittliche Downloadgeschwindigkeit lag bei 661,05 Mbit/s (Median 722,71 Mbit/s)
- Die durchschnittliche Uploadgeschwindigkeit lag bei 49,37 Mbit/s (Median 53,98 Mbit/s)
- Der durchschnittliche Ping lag bei 11,58ms (Median 9,99ms)
Die Auswertungen zeigen keine großen Unterschiede zwischen den Wochentagen:
Tag der Woche | Download | Upload | Ping |
---|---|---|---|
Montag | 624,66 | 49,52 | 11,43 |
Dienstag | 659,50 | 48,96 | 11,43 |
Mittwoch | 656,70 | 48,37 | 12,26 |
Donnerstag | 678,87 | 48,65 | 11,83 |
Freitag | 685,64 | 48,54 | 11,51 |
Samstag | 668,30 | 51,03 | 11,53 |
Sonntag | 653,65 | 50,52 | 11,09 |
Über den Tag hinweg sind leichte Schwankungen in der Downloadgeschwindigkeit erkennbar. Die höchste Geschwindigkeit wurde um 20 Uhr erreicht, die niedrigste um 3 Uhr morgens.
Stunde | Download | Upload | Ping |
---|---|---|---|
00 | 672,95 | 49,73 | 13,20 |
01 | 331,93 | 51,75 | 10,17 |
02 | 416,89 | 52,10 | 11,38 |
03 | 229,87 | 50,99 | 13,13 |
04 | 383,27 | 50,07 | 11,48 |
05 | 657,53 | 51,63 | 14,19 |
06 | 677,68 | 50,51 | 12,07 |
07 | 670,94 | 50,44 | 12,01 |
08 | 774,71 | 46,66 | 12,11 |
09 | 794,96 | 50,35 | 10,65 |
10 | 655,78 | 46,00 | 13,37 |
11 | 810,39 | 50,38 | 12,19 |
12 | 785,71 | 47,78 | 12,88 |
13 | 690,12 | 47,85 | 12,62 |
14 | 788,69 | 46,59 | 11,93 |
15 | 809,30 | 49,61 | 9,77 |
16 | 593,85 | 51,16 | 9,78 |
17 | 794,67 | 46,36 | 9,87 |
18 | 707,39 | 52,00 | 9,03 |
19 | 752,65 | 47,99 | 9,83 |
20 | 843,68 | 46,69 | 10,83 |
21 | 813,24 | 46,74 | 12,33 |
22 | 527,61 | 49,74 | 11,72 |
23 | 681,27 | 51,68 | 11,41 |
Hier kann man meine Rohdaten herunterladen
Fazit
Speedtest Tracker ist ein einfaches und effektives Tool, um die Internetgeschwindigkeit zu überwachen. Die Daten können einfach exportiert und ausgewertet werden. Die Installation ist einfach und schnell erledigt.