Ungefähr zwei Jahre sind vergangen seit ich beschrieben habe, wie man Smokeping grundsätzlich konfiguriert. Und natürlich bin ich euch noch den Beitrag schuldig, wie man das Ookla speedtest.net Plugin mit einer Smokeping Instanz verheiratet.
Zu diesem Zweck habe ich mir eine neue Smokeping Instanz installiert und zu meiner Freude festgestellt, dass das Webinterface in den letzten zwei Jahren anscheinend gepolished wurde:

Das Ganze macht insgesamt einen modernen Eindruck, unter der Haube funktioniert alles aber wie gehabt.

Wenden wir uns nun dem eigentlichen Thema zu: Einem regelmäßigen Bandbreitencheck via speedtest.net.

Installation der speedtest.net CLI

Die Seite speedtest.net hat vermutlich jeder schon mal genutzt, um die Bandbreite eines Internetanschlusses zu testen. Die Website führt eine Latenzprüfung durch und testet danach die mögliche Bandbreite mittels HTTP Down- und Uploads von verschieden großen Paketen. Normalerweise läuft das Ganze im Browser ab, es gibt auch eine offizielle CLI Anwendung dafür.

Diese Anwendung benötigen wir als Grundlage für die Integration in Smokeping. Die Installation für verschiedene Betriebssysteme und Distributionen sind unter https://www.speedtest.net/apps/cli beschrieben. Für Debian 10, welches ich hier exemplarisch benutze, sieht die Installation folgendermaßen aus:

Nach erfolgreicher Installation kann man den Speedtest über den Command „speedtest“ ganz simpel aufrufen. Beim ersten Start muss man noch die Lizenzbestimmungen akzeptieren.

Der Output liefert dann die gemessenen Werte, ähnlich der http Anwendung:

Mit „speedtest –servers“ bekommt man die möglichen Testserver in der Nähe angezeigt, inklusive einer ID. Aus dieser Liste sucht man sich einen Server heraus und notiert sich die ID, da dieser Server später in Smokeping fest hinterlegt wird. Wir holen in unserem Beispiel den erst Besten, da dieser auch vermutlich der am nächsten gelegene ist:

Mit

kann man nun immer den gleichen Server zum Testen verwenden (z.B. „speedtest -s 4997“).

Integration in Smokeping

Um das Ganze nun in Smokeping zu integrieren benötigt man die entsprechende Check-Probe. Diese wurde erstellt vom User mad-ady und in Github abgelegt. Der Link zum Repository ist https://github.com/mad-ady/smokeping-speedtest

Entweder lädt man sich die .pm-Datei dort direkt herunter oder man klont sich das Repository auf die Smokeping Maschine. Ich klone mir das Repo mit einem

und kopiere danach die Datei „speedtestcli.pm“ in das Smokeping-Probeverzeichnis nach /usr/share/perl5/Smokeping/probes (Standardverzeichnis bei einer Installation von Smokeping via apt-get).

Nun muss die Probe noch in Smokeping angelegt werden. Dazu editiert man die Datei /etc/smokeping/config.d/Probes und fügt dort einen neuen Eintrag „speedtestcli“ hinzu mit dem Parameter „binary = /usr/bin/speedtest“ bzw. dem Verzeichnis wo die speedtest Anwendung hin installiert wurde. Der Probe-Name muss der .pm-Datei entsprechen, welche wir vorher ins Probe Verzeichnis kopiert hatten.

Hier sollten wir auch gleich den Step mitgeben, da die Standard Step-Zeit aus der Database Config vermutlich zu gering eingestellt ist.

Achtung: Jeder Speedtest belastet den Internetlink. Alle 5 Minuten zu prüfen hätte je nach Leitung Performanceeinbußen zur Folge.

Achtung 2: Man sollte bei der speedtest-Probe und auch bei der FPing-Probe den Parameter „offset = random“ einstellen, damit die Probes nicht parallel ausgeführt werden. Ein FPing während einer speedtest Probe würde den Ping verfälschen.

Außerdem konfigurieren wir gleich noch 2 Sub-Probes, um Up- und Download unterscheiden zu können. Die Sub-Probes erben die Settings der übergeordneten Probe und unterscheiden sich nur durch den „measurement“-Parameter.

Nun müssen nur noch die entsprechenden Targets konfiguriert werden:

Hier gibt man wie bekannt, die Probe an, die ausgeführt werden soll und die Server ID die wir weiter oben schon bestimmt haben. Außerdem muss man einen Dummy Host angeben, da Smokeping den Parameter benötigt. Für die Probe ist er aber eigentlich irrelevant.

Damit die Graphen in der Übersicht korrekt dargestellt werden sollte man noch den Parameter

In /etc/smokeping/config.d/Presentation einfügen.

Hat man alles korrekt gemacht sollte es zwei neue Graphen geben, die folgendermaßen aussehen (Die Step Value habe ich zu Demozwecken verkürzt):

Fazit:

Alles in allem ein nettes Tool, um die Bandbreite zu prüfen. Allerdings sollte man es mit Bedacht einsetzen, da während des Tests der Internetlink auch voll ausgelastet wird, um die größtmögliche Bandbreite zu messen. Während dem Schreiben dieses Beitrags ist mir zum Beispiel eine Beeinträchtigung von aktiven VoIP Anwendungen aufgefallen sobald eine Speedtest Probe ausgeführt wurde.

Denis Schubhan

Denis Schubhan

System Engineer

Fachinformatiker bei Tag, Weltraum-Schmuggler bei Nacht. Unklar, welche Sucht ihn mehr umtreibt: Schwarzer Kaffee oder Storm Trooper Merchandise. Nennt eine beachtliche Sammlung von fast noch funktionsfähiger Hardware sein eigen.

Gefällt dir der Artikel? Bitte teile ihn!
Share on Facebook
Facebook
0Share on LinkedIn
Linkedin
Email this to someone
email
Tweet about this on Twitter
Twitter