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?
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.
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 . 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.
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.
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?
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 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
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.
Ich habe gesehen, dass das Plugin nicht mehr richtig funktioniert. Wollte mir Performance Daten angucken (die es seit über einem Monat nicht mehr gibt) weil:
@dpa
Danke Daniel Dein Input hat mich auf die richtige Spur gebracht.
Das Script arbeitet ja mit dem Nutzer cmkplugin - naja den gab es bei mir noch nicht.
# Modified by: Mike Hanby
# Email: mhanby@uab.edu
# The 'speedtest-cli' command comes from https://github.com/sivel/speedtest-cli
#
# Modifications from the original are as follows:
# I didn't want to run the 'speedtest-cli' Python script as root, so I
# modified it to run as a user named 'cmkplugin' (which has to be
# manually created on the host). The user doesn't need any special privileges.
#
# If the script is run as a user other than root, it will continue to run
# as that user (for testing from the command line)
Hallo zusammen,
ich möchte auch meine Bandbreite überwachen und habe das Skript installiert.
Beim Ausführen werden mir aber leider zwei Fehlermeldungen ausgegeben:
numfmt: ungültige Endung in Eingabe: „11716594.701343166“
numfmt: ungültige Endung in Eingabe: „2022825.0142647035“
Es liegt daran, dass ein Punk in der Zahl auftaucht. Gibt es eine Möglichkeit den Punkt bspw. durch ein Komma zu ersetzen oder die Zahlen dahinter abzuschneiden?