Überwachung der verfügbaren Internetbandbreite

Hallo zusammen,

ich möchte gern die verfügbare Internetbandbreite überwachen, also nicht das as derzeit genutzt wird (das kann ich ja aus den Interfacestatistiken der Firewall/Router auslesen), sondern das was an Bandbreite zur Verfügung steht (quasi ein Speedtest).

Hat jemand schon mal eine Check für sowas gebaut oder eine gute Idee wie man das umsetzen könnte?

Grüße
Daniel

Hi @dpa,
da gibt es ein Plugin für, dass die Speedtest-cli verwendet (Speedtest.net). Ich habe mir das damals mal Testweise eingerichtet und bis jetzt noch keine Probleme damit bekommen.

Hier geht’s zum Plugin: https://github.com/jas31085/CheckMK-plugin/blob/master/speedtest

Wichtig! Du musst das Paket speedtest-cli installieren, sonst funktioniert das Plugin nicht. Außerdem stelle sicher, dass das Plugin nicht minütlich ausgeführt wird! Das kann sonst ganz schnell nach hinten losgehen :wink: . In meinem Setup prüfe ich jede halbe Stunde und finde, dass dies auch ausreicht.

Das Plugin muss hier installiert/abgelegt werden: /usr/lib/check_mk_agent/plugins

Hier gibt’s noch einen Screenshot wie es dann aussieht, wenn man es benutzt. Man bekommt einen Performance-Graphen für den Download, Ping und Upload.

Vielleicht gibt es ja noch bessere Lösungen, aber ich empfinde diese als angenehm und pflegeleicht.

4 Likes

Ahh sehr gut, so in der Art hab ich mir das vorgestellt.

:smiley: Ja ich denke 1x pro Stunde sollte ausreichen.

Vielen Dank, werd ich morgen testen und berichten.

1 Like

Cool Sache - danke! :slight_smile:

Edit:
Ok hab doch zwei Fragen:

  1. Kann man festlegen, dass er immer ein und denselben Server prüft? Hab im Script --server xxxx eingefügt, das wird aber ignoriert. Komischerweise haben meine Linux Systeme in meinem Netzwerk einen miesen Upload - bis auf einen Server.

  2. Unter “Normal check interval for service checks” hab ich eingefügt, dass er das stündlich machen soll - aber er macht es weiterhin minütlich - muss man das woanders konfigurieren?

Greetz
Ovrld

Das Plugin nutzt die speedtest-cli. Die speedtest-cli wählt automatisch (based on ping) einen Speedtest Server aus. Das lässt sich ganz einfach nachvollziehen, wenn man die speedtest-cli von Hand ausführt. Anbei ein Example Output:

Retrieving speedtest.net configuration…
Testing from Hetzner Online GmbH (XXX.XXX.XXX.XXX)…
Retrieving speedtest.net server list…
Selecting best server based on ping…
Hosted by Jakob Rzymann (Kassel) [1.64 km]: 2.612 ms
Testing download speed…
Download: 489.11 Mbit/s
Testing upload speed…
Upload: 4.17 Mbit/s

Du testest immer den Server auf dem das Plugin liegt und ausgeführt wird.

Und zur zweiten Frage:

Du musst das beim Checkmk Agenten konfigurieren und nicht auf dem Checkmk Server. Ich habs mir in meinem Fall einfach gemacht und war zu faul die Konfigdatei zu schreiben. Du kannst mithilfe von Ordnern den Check Intervall festlegen. (Ordnername in Sekunden = Intervall) Bedeutet im Klartext. Das Speedtest Plugin legst du wie folgt ab um alle 30min zu prüfen:
/usr/lib/check_mk_agent/plugins/1800/speedtest

Sobald das Skript dann in dem Ordner liegt wird es nur noch alle 1800 Sekunden ausgeführt (30min). Danach ist keine weitere Konfiguration auf dem Checkmk Server notwendig. Natürlich kann man das auch in “schön” in der Config machen.

@Norm
Genau - man kann aber die zu prüfenden Server von Hand auswählen. Hab für Berlin z.B. eine Hand voll Server und nur einer davon gibt mir korrekte Werte beim Upload aus. Ich muss mal gucken wo da das Problem ist (nutze Speedtest-Cli in einigen anderen Scripts seit Jahren).

Ich seh gerade, dass bei dir derselbe “Fehler” ist. Dein Upload ist sicherlich größer als 4 MBit :wink: Auch bei mir dasselbe Problem:

Retrieving speedtest.net configuration…
Testing from Provider (xx.xx.xx.xx)…
Retrieving speedtest.net server list…
Selecting best server based on ping…
Hosted by DNS:NET Internet Service GmbH (Berlin) [2.20 km]: 1.02 ms
Testing download speed…
Download: 981.48 Mbit/s
Testing upload speed…
Upload: 4.14 Mbit/s

Der Upload sollte aber auch um die 1 GBit sein.

Hier z.B. mit einem Server wo der Upload korrekt ermittelt wird:

root@nms:/home/nutzer# speedtest-cli --server 28622
Retrieving speedtest.net configuration…
Testing from Provider (xx.xx.xx.xx)…
Retrieving speedtest.net server list…
Retrieving information for the selected server…
Hosted by Consultix 10G (Berlin) [2.20 km]: 2.718 ms
Testing download speed…
Download: 993.94 Mbit/s
Testing upload speed…
Upload: 979.88 Mbit/s

1 Like

@Overlord

Da hast du recht. Ich habe es mir mal angeguckt. Es ist ein Bug. Der Bug wurde bereits gefixt aber das APT Package wurde noch nicht geupdated. -> https://bugs.launchpad.net/ubuntu/+source/speedtest-cli/+bug/1828929
Somit ist der Bugfix noch nicht da, wenn man sich die Speedtest-cli per APT installiert hat.

Ich habe mir die Speedtest-cli vom Github Repo geladen und manuell installiert. Das ganze geht wohl auch per pip install speedtest-cli

Hier gibt’s auch ein Tutorial zum manuell installieren -> https://www.howtoforge.com/tutorial/check-internet-speed-with-speedtest-cli-on-ubuntu/

Damit klappt jetzt auch der Upload :sweat_smile:

2 Likes

Hallo

Wäre es auch möglich den Check am Satelite auszuführen ?

Wir haben einen Master Server und einige Sateliten.
und möchte den Speedtest gerne am Sateliten ausführen.

mfg

Hallo @blacktux88,

der Check läuft als local Check auf irgendeinem Host den du mit Checkmk überwachst. Das kann der Checkmk Server selber sein (wird ja im normalfall ebenfalls als Client mit eingebunden) oder auch irgendein anderes System.
Damit kannst Du das auch auf einem Satelite-System laufen lassen.

Gruß
Daniel

Spitze , danke dir

Agent habe ich installiert und das Skript abgelegt

Einmal steht das man es unter

/usr/lib/check_mk_agent/plugins Kopieren muss und wo anders steht wider dass es unter
/usr/lib/check_mk_agent/local kopiert werden soll.

Ich bekomme noch einen Fehler.
das ihm eine Klammer nicht passt , wenn ich das Script in der bash ausführe

Chmod 755 und exexuteable muss es auch haben oder ?

In der readme steht auch dass man einen User anlegen muss …

Danke Lg