Monitoring einer FRITZ!Box 7390 mit check_nwc_health

Posted on January 22nd, 2013 by lausser

Mittlerweile ist check_nwc_health recht verbreitet und wird von vielen Admins dem Sammelsurium von Plugins vorgezogen, das man früher einsetzen musste, um unterschiedliche Typen von Netzwerkkomponenten zu überwachen. Doch nicht nur für die grossen Kisten kann man check_nwc_health einsetzen. Am Wochenende habe ich mir meine FRITZ!Box genauer angesehen.

Unverständlicherweise spricht die FRITZ!Box nicht SNMP, jedenfalls nicht im Originalzustand. Eine alternative Firmware, die das kann, wollte ich mir auch nicht installieren. Daher habe ich check_nwc_health beigebracht, über das UPnP-Protokoll (für interface-usage und uptime) und HTTP (für cpu-load und memory-usage) mit der FRITZ!Box zu kommunizieren und sich so die gewünschten Messwerte zu besorgen.

Herausgekommen ist die Version 1.9, mit der folgende Abfragen möglich sind:

check_nwc_health --hostname 192.168.1.1 --port 49000 --mode uptime 
OK - device is up since 146 minutes | 'uptime'=146.02;15:;5: 

check_nwc_health --hostname 192.168.1.1 --port 49000 --mode interface-usage
OK - interface WAN usage is in:0.08% (0.23KB/s) out:0.51% (0.28KB/s) | 'WAN_usage_in'=0.08%;80;90 'WAN_usage_out'=0.51%;80;90 'WAN_traffic_in'=0.23KB 'WAN_traffic_out'=0.28KB 

check_nwc_health --hostname 192.168.1.1 --port 49000 --mode cpu-load --community gehe1m
OK - cpu usage is 8.00% | 'cpu_usage'=8%;40;60 

check_nwc_health --hostname 192.168.1.1 --port 49000 --mode memory-usage --community gehe1m
OK - memory usage is 65.00% | 'memory_usage'=65%;80;90 


Zu beachten ist hier, dass –port 49000 angegeben wird. Auf diesem Port lauscht der UPnP-Server. Das Passwort der FRITZ!Box wird benötigt, um an die HTML-Seite mit CPU- und Memory-Messwerten zu kommen. Dafür wird der Parameter –community missbraucht.

Und so sieht’s dann in Thruk aus: service_detail_s

 

 

 

 

 

Achtung: das Plugin funktioniert hier bei mir mit einer FRITZ!Box Fon WLAN 7390 mit Firmware-Version 84.05.50
Andere Modelle oder ältere Firmwarestände werden nicht unterstützt.

Filed under Uncategorized |

22 Responses to “Monitoring einer FRITZ!Box 7390 mit check_nwc_health”

  1. Lars Urban Says:
    January 27th, 2013 at 16:33

    Danke schön für das Plugin ;-)

    Einen Fehler habe ich gehabt / gefunden

    Der uptime Befehl funktioniert nicht da die IP wohl Hardcoded ist. Meine Box hat 192.168.178.1, das gleiche beim interface-usage

    Habe es im Script angepasst, seitdem funktionierte es ;-)

    Kleiner Hint noch, damit es fehlerfrei funktioniert musste ich noch unter Debian folgende Pakete installieren:

    libsoap-lite-perl libxml-libxml-perl

    Danke schön !

    [Reply]

    lausser Reply:

    Danke, hab’s in https://github.com/lausser/check_nwc_health korrigiert.

    [Reply]

  2. Stef' Says:
    February 1st, 2013 at 16:08

    Hallo,

    erstmal DANKE für das coole Plugin! Hab’ mir eben die aktuelle Version vom git gezogen (-master als .zip) und gesehen, daß “interface-usage” für die Fritzbox 7390 immernoch hardcoded eine IP drinstehen hat, nur so zur Info…

    Grüße…

    [Reply]

    lausser Reply:

    Danke! Ich hab’s gerade zu github gepusht und jetzt sind meine IPs endgültig raus.

    [Reply]

  3. Mark Says:
    March 10th, 2013 at 17:46

    Trying … but cant get it to work ….

    /check_nwc_health –hostname 192.168.178.1 –port 49000 –mode interface-usage

    Can’t locate XML/LibXML.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at ./check_nwc_health line 786.

    what am I doing wrong here?

    [Reply]

  4. Mark Says:
    March 10th, 2013 at 18:41

    On step further …

    /check_nwc_health –hostname 192.168.178.1 –port 49000 –mode interface-usage CRITICAL – Can’t locate object method “new” via package “XML::LibXML::XPathContext” (perhaps you forgot to load “XML::LibXML::XPathContext”?) at ./check_nwc_health line 798.

    sigh ;)

    [Reply]

  5. Florian Says:
    May 14th, 2013 at 21:21

    Hi, leider funktioniert das Plugin bei mir nicht so ganz…

    ./check_nwc_health –hostname 192.168.29.1 –port 49000 –mode interface-usage Mode interface-usage is not implemented for this type of device

    folgende geht… ./check_nwc_health –hostname 192.168.29.1 –port 49000 –mode uptime OK – device is up since 983 minutes | ‘uptime’=983.03;15:;5:

    gibts da ggf. ne möglichkeit das zu korrigieren? Es ist jedenfalls ne Fritz!Box 7390 mit FRITZ!OS 05.50 Firmware-Version: 84.05.50

    Vielen Dank im Voraus! :) Florian

    [Reply]

    lausser Reply:

    Hi, please edit the plugin, search for: } elsif ($self->{productname} =~ /Fritz/i) { bless $self, 'UPNP::AVM'; $self->debug('using UPNP::AVM'); } else { $self->no_such_mode(); } Insert the line printf "productname %s\n", $self->{productname};just before the no_such_mode()-line.

    Gerhard

    [Reply]

  6. Roland Huber Says:
    May 22nd, 2013 at 18:09

    I tested it and got an issue with anything outside uptime. (I am using 84.05.50 on Fritz OS 05.50).

    “Mode interface-usage is not implemented for this type of device” is what I get when using: check_nwc_health –hostname myIP –port 49000 –mode interface-usage

    [Reply]

    lausser Reply:

    @Roland Huber, see my reply to the posting above

    [Reply]

  7. Florian Says:
    June 26th, 2013 at 21:31

    Hi, sorry for the late reply. I added the mentioned line and got the response: “productname chocolate”. That is the name I changed within the fritzbox settings (Home network => FritzBox Name).

    Best regards, Florian

    [Reply]

  8. Simon Says:
    November 3rd, 2013 at 14:15

    Hi, ich bekomme bei meiner 7390 beim Aufruf der modi cpu-load, memory-usage und interface-usage einen Fehler “Deep recursion on subroutine “UPNP::AVM::init” at ./check_nwc_health line 1139.” und dann einen Timeout.

    Der Aufruf der Uptime funktioniert allerdings einwandfrei.

    [Reply]

    lausser Reply:

    @Simon, Bitte mal wget http://<ip-der-fritzbox>:49000/igddesc.xml ausführen und die Datei hier posten.

    [Reply]

  9. Honkytonk Says:
    November 11th, 2013 at 14:57

    Hi bekomme beim Aufruf von

    ./check_nwc_health –hostname myip –port 49000 –mode uptime

    folgende Ausgabe:

    Use of uninitialized value in division (/) at ./check_nwc_health line 1187. CRITICAL – device is up since 0 minutes | ‘uptime’=0;15:;5:

    [Reply]

  10. phillip Says:
    November 27th, 2013 at 22:38

    I had the same problem as Simon. This is my igddesc.xml:

    http://pastebin.com/HfZ0vsUQ

    [Reply]

  11. Dirk Says:
    November 28th, 2013 at 23:18

    Ich bekomme bei meiner Fritzbox 7390 (DSL inaktiv, funktioniert nur als Router in einer Kaskade) folgende Info bei Uptime:

    Use of uninitialized value in division (/) at ./check_nwc_health line 1187. CRITICAL – device is up since 0 minutes | ‘uptime’=0;15:;5:

    Bei interface-usage:

    Argument “” isn’t numeric in multiplication (*) at ./check_nwc_health line 559. Illegal division by zero at ./check_nwc_health line 559.

    Bei mir läuft die neuste Firmware (6)

    Dirk

    [Reply]

  12. Michael Says:
    December 8th, 2013 at 14:50

    Habe die selben Fehler.

    ./check_nwc_health –hostname 192.168.42.1 –port 49000 –mode uptime Use of uninitialized value in division (/) at ./check_nwc_health line 1187. CRITICAL – device is up since 0 minutes | ‘uptime’=0;15:;5:

    ./check_nwc_health –hostname 192.168.42.1 –port 49000 –mode interface-usage Deep recursion on subroutine “UPNP::AVM::init” at ./check_nwc_health line 1139. UNKNOWN – check_nwc_health timed out after 15 seconds

    http://pastebin.com/LprSkZsu

    [Reply]

  13. Holger Says:
    December 15th, 2013 at 10:18

    Getting the same errors: :-( ./check_nwc_health –hostname fritz.box –port 49000 –mode interface-usage Deep recursion on subroutine “UPNP::AVM::init” at ./check_nwc_health line 1139. Using the Fritz!Box 6360 (cable).

    [Reply]

  14. Ralf Kleineisel Says:
    February 27th, 2014 at 22:15

    Auf meiner 7390 mit Software 06.03 bekomme ich:

    check_nwc_health –hostname 192.168.1.1 –port 49000 –mode uptime -v I am a upnp 500 Internal Server Error at check_nwc_health line 1209.

    Hier ist das igddesc.xml: http://www.kleineisel.de/igddesc.xml

    [Reply]

  15. RE Says:
    March 16th, 2014 at 22:34

    Hallo,

    habe gerade dein Eintrag entdeckt und es sieht so aus, als ob das Plugin genau das macht, was ich suche. (Git-Version von heute (2014-03-16)

    Allerdings erhalte ich immer Fehlermeldungen: /usr/lib/nagios/plugins/check_nwc_health –hostname 192.168.178.1 –port 49000 –mode cpu-load –community Public UNKNOWN – could not find JSON module

    Ich habe sowohl JSON::Parse wie auch JSON::XS installiert

    /usr/lib/nagios/plugins/check_nwc_health –hostname 192.168.178.1 –port 49000 –mode uptime Use of uninitialized value in division (/) at /usr/lib/nagios/plugins/check_nwc_health line 1215. CRITICAL – device is up since 0 minutes | ‘uptime’=0;15:;5:

    Vielleicht weiß jemand einen Rat

    [Reply]

  16. Uwe Says:
    March 17th, 2014 at 11:50

    Hallo, bei check meiner Fritz.Box 7390 funktionieren die Modi “cpu-load”, “memory-usage” und “interface-status”, nicht aber uptime. Bei letzterem kommt die Meldung:

    I am a upnp Use of uninitialized value in division (/) at /usr/local/lib/nagios/plugins/check_nwc_health line 1215. CRITICAL – device is up since 0 minutes | ‘uptime’=0;15:;5:

    Mach ich was falsch?

    [Reply]

  17. bill Says:
    March 31st, 2014 at 10:42

    Hi,

    i get a Illegal division by zero:

    root@monitoring:~/check_nwc_health-2.6.5# /opt/omd/sites/intern/lib/nagios/plugins/check_nwc_health –hostname 192.168.178.1 –port 49000 –mode interface-usage Illegal division by zero at /opt/omd/sites/intern/lib/nagios/plugins/check_nwc_health line 583.

    [Reply]

Leave a Reply