[Tutorial] Monitoring mit MRTG + RRD Support auf Raspberry Pi (Debian Wheezy)

Hallo zusammen!

Wie der Name schon verrät möchte ich heute ein kleines Tutorial zum Thema MRTG mit RRD Support auf dem Raspberry Pi schreiben.

Nachdem mich das Thema Monitoring schon immer interessiert hat, und ich u.a. MRTG+RRD auf meinem Windows 7 x64 System zum laufen bekommen habe, habe ich nun endlich die perfekte Lösung für Monitoring Rund um die Uhr 24x7x365.

Sie heißt: Raspberry Pi!

Ein kleiner Linux Rechner mit 700MHz ARM Kern (Broadcom BCM2835) und 256MB Ram.

Der kleine Pi ist mit 35$ sagenhaft günstig und bietet alles was man sich wünscht – von HDMI Anschluss und HD Wiedergabe über USB und LAN bis hin zu GPIO Pins ist alles an Bord, und das bei einem max. Stromverbrauch von 3,5Watt die Stunde! Ein einfaches Handy-Ladegerät mit MicroUSB und mind. 1A Leistung reicht aus um den Winzling zu betreiben. Weitere Infos gibt es HIER.

Los gehts!

Nachdem mein MRTG Monitoring unter Windows 7 x64 doch eine recht schwere Geburt war, ging das ganze unter Debian Wheezy um einiges einfacher und schneller!

Zuerst aktualisieren wir die Paketquellen mit „aptitude“ oder „apt-get“, je nach Vorliebe. Allerdings sollte man dauerhaft das gleiche nutzen, da sonst die Paketverwaltung aus dem Tritt kommen kann.
sudo aptitude update

Falls Apache2 oder alternativ Lighttpd oder ein andere Webserver schon installiert ist, machen wir sofort mit den fehlenden MRTG und RRD Paketen weiter, wenn nicht dann installieren wir zuerst einmal Lighttpd mit den benötigten Paketen nach der Anleitung unter Punkt 11 von diesem [Tutorial] Raspberry Pi sauber installieren/aufsetzen.

Danach kommen die benötigten Pakete für MRTG und RRD.
sudo aptitude install mrtg mrtg-rrd rrdtool snmp snmpd

Bei der Abfrage, ob root der Eigentümer der Datei /etc/mrtg.cfg sein soll, wählen wir NEIN.

Nachdem wir nun alle benötigten Pakete beisammen haben, geht es mit der Konfiguration weiter.
Zuerst erstellen wir ein neues Verzeichnis im öffentlichen WWW Ordner, in dem später die RRD Datenbanken und die netten PNG Grafiken erzeugt werden.
sudo mkdir -p /var/www/mrtg

Nun erstellen wir das cgi-bin Verzeichnis, welches unter Lighttpd direkt im WWW Ordner liegt und erstellen einen Symlink zur mrtg-rrd.cgi mit der später die HTML Seite generiert wird.
sudo mkdir -p /var/www/cgi-bin
sudo ln -s /usr/lib/cgi-bin/mrtg-rrd.cgi /var/www/cgi-bin/mrtg-rrd.cgi

Da der Lighttpd Benutzer (und die Gruppe) noch keine Schreibrechte für alle Ordner und Dateien besitzen, ändern wir mit „chown“ die Berechtigungen.
sudo chown -R www-data:www-data /var/www/*

Und weil es noch ein Problem mit der SNMP_Session.pm gibt, müssen wir diese patchen:
sudo sed -i 's|import Socket6;|Socket6->import(qw(inet_pton getaddrinfo));|' /usr/share/perl5/SNMP_Session.pm

Mit diesem Befehl ersetzen wir in der Datei /usr/share/perl5/SNMP_Session.pmimport Socket6;“ durch „Socket6->import(qw(inet_pton getaddrinfo));„.

Damit wir unseren Raspberry monitoren können, müssen wir zuerst SNMP Zugriff für localhost erlauben. Dazu öffnen wir die Datei /etc/snmp/snmpd.conf und entfernen das ‚#‘ am Anfang von Zeile 49 (rocommunity public localhost). Im Anschluss wird der SNMP Daemon neu gestartet.

[Zur Info] Mit „i“ kommen wir bei vim, dem verwendeten Editor, in den Edit-Modus und mit der Taste [ESCAPE] verlassen wir diesen wieder, mit 2x schnell „d“ auf der Tastatur löschen wir eine Zeile und mit rechtsklick fügen wir kopierten Text ein.
sudo vim /etc/snmp/snmpd.conf
:49
[i]
[Entf]
[ESC]
[:wq]
sudo service snmpd restart

Jetzt wird es Zeit eine neue mrtg.cfg zu erstellen. Zuerst erstellen wir zur Sicherheit ein Backup der original Datei.
sudo mv /etc/mrtg.cfg /etc/mrtg.cfg.bak

Danach erstellen wir eine neue mrtg.cfg indem wir den cfgmaker benutzen und eine Configdatei für unseren Raspberry erstellen.
sudo cfgmaker --global "Options[_]: growright" --global "IconDir: /mrtg" --global "WriteExpires: Yes" --global "Language: german" --global "RunAsDaemon: yes" --global "EnableIPv6: no" --global "LogFormat: rrdtool" --global "Interval: 1" '--if-filter=$if_admin && $default_iftype' --output /etc/mrtg.cfg public@localhost

Da der Apache User Leseberechtigung für die mrtg.cfg benötigt, ändern wir die Rechte ab und kopieren die MRTG Icons ins WWW Dir.
sudo chmod 644 /etc/mrtg.cfg
sudo cp /usr/share/mrtg/* /var/www/mrtg/

Nun kommt der Test ob alles richtig konfiguriert ist.
sudo mrtg /etc/mrtg.cfg

Erhält man folgende Fehlermeldung:
-----------------------------------------------------------------------
ERROR: Mrtg will most likely not work properly when the environment
variable LANG is set to UTF-8. Please run mrtg in an environment
where this is not the case. Try the following command to start:
env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
-----------------------------------------------------------------------

Bedeutet dies, dass man den UTF-8 Zeichensatz verwendet. Es gibt nun zwei Möglichkeiten, entweder man startet MRTG auf die folgende Weise:
sudo env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

oder man stellt generell von UTF-8 auf de_DE ISO-8859-1 um. Das geht auch relativ einfach:
sudo raspi-config

Nun auf „change locale“ mit den Pfeiltasten navigieren und Enter. Nun wieder mit den Pfeiltasten nach unten gehen und „de_DE ISO-8859-1“ mit der Leertaste auswählen, mit TAB auf OK wechseln und Enter.
Im nächsten Fenster wählen wir nur „de_DE“ aus. Mit TAB wieder auf OK, Enter und fertig. Nun müssen wir kurz warten. Danach noch einmal mit TAB „Finish“ auswählen, Enter und im Anschluss den Raspberry neu starten.
sudo reboot

Je nach SSH-Programm muss nun auch dort das Character Set geändert werden. Bei Putty geht dies unter dem Menüpunkt „Translation„, hier auf „ISO-8859-1: 1998 (Latin-1, West Europe)“ umstellen. Nun werden alle Zeichen wieder richtig dargestellt.

Nach dem Neustart versuchen wir noch einmal den MRTG Daemon zu starten.
sudo mrtg /etc/mrtg

Wenn nun folgende Meldung erscheint habt ihr alles richtig gemacht und MRTG fragt jede Minute den Traffic des Pi ab und das auch nach einem reboot!
Daemonizing MRTG ...

Mit einem Browser könnt ihr nun auch unter http://localhost/cgi-bin/mrtg-rrd.cgi eine schöne grafische Übersicht der Statistiken aufrufen. Von anderen Geräten im Netzwerk muss „localhost“ natürlich durch die IP-Adresse des Raspberry ersetzt werden.

Nun könnt ihr anfangen auch andere Devices zu monitoren! Bei mir geschieht dies z.B. mit zwei Routern, meinem produktiven Pi und einem Temperatursensor. Eurer Fantasie sind so gut wie keine Grenzen gesetzt 😉

Falls dir/euch das Tutorial gefallen oder weiter gebracht hat, würde ich mich über einen kleinen Kommentar freuen – das gleiche gilt natürlich auch für Kritik oder Verbesserungsvorschläge 😀
Natürlich dürft ihr auch gerne euren Adblocker auf Kopfkino deaktivieren und den kleinen Banner am Ende des Posts klicken – ist aber natürlich absolut freiwillig 😉 Die Werbung ist dezent gehalten und es gibt keine nervigen Flashbanner oder ähnliches 🙂 Einnahmen kommen vollständig neuen Projekten zu Gute 😀

Gruß iro

 

[Nachtrag1]

Da mir die Anordnung der Grafiken auf den generierten HTML Seiten mit meiner Auflösung von 1920x1200px nicht sonderlich gefallen haben, hat mir gibbsnich netterweise geholfen die mrtg-rrd.cgi umzuschreiben. Nun gibt es drei Spalten mit Grafiken, und auf der Detailseite gibt es nun noch zusätzlich eine 6 Stunden Übersicht. So sieht man nun zusätzlich u.a. bei meinem Temperatursensor eine schöne 6 Stunden Kurve die um einiges besser lesbar ist als die Tages Grafik. Zusätzlich wurden auch hier Grafiken in 3er Spalten aufgeteilt um übermäßiges Scrollen zu vermeiden. Zu guter Letzt wurden die Grafiken um 25% vergrößert – von 400x100px auf 500x125px. Danke nochmal hier für gibbsnich!

Einen kleinen Eindruck liefern die folgenden Screenshots:

 

Wer gerne die veränderte mrtg-rrd.cgi hätte, findet sie HIER. Nach /var/www/cgi-bin kopieren und die alte überschreiben und am besten vorher noch ein Backup anlegen mit sudo mv /var/www/cgi-bin/mrtg-rrd.cgi /var/www/cgi-bin/mrtg-rrd.cgi.bak Allerdings ist fastCGI aktiviert. Da das bei euch vermutlich nicht der Fall ist, einfach ganz am Ende der Datei den Teil für fastCGI auskommentieren und vor dem CGI Teil die Kommentarzeichen entfernen ‚#‘. Dann läuft meine Version auch ohne dass man fastCGI aktivieren muss.

Falls man fastCGI doch aktivieren möchte, gibt es hier eine (fast fertige) Anleitung 😉

Zuerst muss noch ein Paket nachinstalliert werden, damit auch Perl fast-cgi unterstützt (danke Mario!):
sudo aptitude update
sudo aptitude install libfcgi-perl

Nun sollte Lighttpd ausreichend konfiguriert sein um auch fast-cgi Scripte unter Perl zu unterstützen!

 

[Nachtrag2]

Da ich festgestellt habe, dass MRTG nur unnötig jede Minute sein log mit der Nachricht füllt, dass es bereits läuft, empfehle ich die Datei /etc/cron.d/mrtg zu bearbeiten und den Inhalt in
*/5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg.cfg > /dev/null
zu ändern.

Das dürfte die Flashzellen eurer SD etwas entlasten 🙂

 

[Nachtrag3]

Mittlerweile habe ich ein zweites Tutorial zum Thema MRTG und Raspberry Pi geschrieben. Hier gibt es Infos wie man CPU, RAM, Temperatur und einen DS18S20 Temperatur Sensor monitored. Das Tutorial findet ihr HIER!

Und wie man einen DS18S20 Temperatur Sensor anschließt erfahrt ihr hier: DS18S20 Temperatur Sensor an einem Raspberry Pi

 

[Last Edit: 28.10.2013]

Getagged mit: , , , , , , , , , , , , ,
82 Kommentare zu “[Tutorial] Monitoring mit MRTG + RRD Support auf Raspberry Pi (Debian Wheezy)
  1. gibbsnich sagt:

    Nett 🙂 Wenn du das schon mal gemacht hast, musst das unbedingt auch mal auf meinem Pi einrichten ^^

    • irosaurus sagt:

      hrhr, ich habs sogar schon 3x gemacht 😉 erster versuch lief irgendwann, dann noch einmal sauber und einmal fürs tutorial 😉
      aber du darfst es gerne mal ausprobieren ob alles so tut wie beschrieben 😀
      sieht zwar viel aus, dürfte aber innerhalb von 15-20mins erledigt sein 🙂
      gruß iro

  2. Andi sagt:

    Perfekt, eine super Anleitung.

    habe aber noch einige Meldungen bekommen:

    beim Starten von mrtg:

    root@raspberrypi:/etc# mrtg /etc/mrtg.cfg
    Subroutine SNMPv1_Session::pack_sockaddr_in6 redefined at /usr/share/perl/5.14/Exporter.pm line 67.
    at /usr/share/perl5/SNMP_Session.pm line 608
    Subroutine SNMPv1_Session::unpack_sockaddr_in6 redefined at /usr/share/perl/5.14/Exporter.pm line 67.
    at /usr/share/perl5/SNMP_Session.pm line 608
    Subroutine SNMPv1_Session::sockaddr_in6 redefined at /usr/share/perl/5.14/Exporter.pm line 67.
    at /usr/share/perl5/SNMP_Session.pm line 608
    Daemonizing MRTG …

    und im Browser dann die Meldung:

    Error: Undefined statistics

    muss mal noch nachschauen, ob ich den Fehler finde…

    Gruß,
    Andi

    • irosaurus sagt:

      Hey Andi,
      erstmal danke 🙂
      Die Fehlermeldung taucht auf, wenn die SNMP_Session.pm nicht gepatched wurde. Schau am besten nochmal nach ob du wirklich an beiden Stellen „import Socket6;“ durch „Socket6->import(qw(inet_pton getaddrinfo));“ ersetzt hast. Falls es dann immer noch nicht gehen sollte, finden wir bestimmt eine Lösung 😀
      Gruß iro

    • Andi sagt:

      ok, wenn man die Anleitung richtig befolgen würde 😉

      habe die Änderung im File: /usr/share/perl5/SNMP_Session.pm in Zeile 608 vergessen, jetzt startet mrtg ohne Fehler, aber habe im Browser immer noch die Meldung: Error: Undefined statistics

      Gruß,
      Andi

      • irosaurus sagt:

        Na dann sind wir doch schon mal n Schritt weiter 🙂 Dein Fehler hatte ich auch an irgend einer Stelle… das muss mit den Rechten zu tun haben. Kann es sein, dass deine mrtg.cfg nicht für den www-data user lesbar ist? Versuch nochmal ein „sudo chmod 644 /etc/mrtg.cfg„. MRTG sollte an der Stelle schon sauber laufen und Daten aufzeichen, es liegt also nur noch an der Darstellung 😉
        Gruß iro

  3. Andi sagt:

    nein, die rechte waren es nicht, die hatte ich schon gesetzt.

    ich habe alles nochmal gelöscht dann noch den kompletten Raspi upgedatet, mit apt-get update und apt-get upgrade und nochmal alles nach deiner Anleitung durchgemacht, und dann lief es.
    Vielen Dank,
    Gruß,
    Andi

    • irosaurus sagt:

      Wunderbar, na dann viel Spaß mit dem weiteren mrtg.cfg basteln 😉 Denke ich werde demnächst auch noch ein kleines Tutorial schreiben wie man CPU, Ram und Temperatur des Raspberrys mit MRTG monitored. Darfst du dann auch gerne ausprobieren 🙂
      Gruß iro

  4. Lukas sagt:

    Hello,
    sorry for typing in English
    My problem is in don´t generation graphs and i haven´t index.html
    Can you write me simple guide how do it ?
    If I open mrtg-rrd.cgi in browser i see configuration this .cgi

    Thanks for your answer!
    Lukas

    • irosaurus sagt:

      Hey Lukas,
      do you mean you can see the textual content of the cgi file in your browser? if yes, then your apache is not configured to run cgi code. which means it is simply not enabled. there should be plenty of tutorials out there how to enable cgi support for apache 🙂 I didn’t explain that in my tutorial either. But try this and tell me if it works so I can update the tutorial:
      sudo a2enmod cgi
      cheers iro

      • Lukas sagt:

        Thanks for answer!
        I enable this and now i have problem with internal error 500.
        Internal Server Error

        „The server encountered an internal error or misconfiguration and was unable to complete your request.

        Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

        More information about this error may be available in the server error log.“

        I look to error.log and i find only this.
        „[Thu Nov 08 10:06:16 2012] [error] [client 192.168.1.100] Can’t locate FCGI.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /usr/lib/cgi-bin/mrtg-rrd.cgi line 1098.
        [Thu Nov 08 10:06:16 2012] [error] [client 192.168.1.100] BEGIN failed–compilation aborted at /usr/lib/cgi-bin/mrtg-rrd.cgi line 1098.
        [Thu Nov 08 10:06:16 2012] [error] [client 192.168.1.100] Premature end of script headers: mrtg-rrd.cgi“

        If i commented line 1098 in mrtg-rrd.cgi, error is this
        „[Thu Nov 08 10:12:06 2012] [error] [client 192.168.1.100] Undefined subroutine &FCGI::Request called at /usr/lib/cgi-bin/mrtg-rrd.cgi line 1101.
        [Thu Nov 08 10:12:06 2012] [error] [client 192.168.1.100] Premature end of script headers: mrtg-rrd.cgi“

        I really don´t know where is problem. It´s my beginning with linux 🙂 and with raspi.

        I´m using your mrtg-rrd.cgi.

        Thanks for your answer!

        • irosaurus sagt:

          Hey Lukas,
          if you use my mrtg-rrd.cgi you have to enable fastCGI:
          sudo a2enmod fcgid
          the alternative is to edit the mrtg-rrd.cgi. if you scroll to the end of the file, there is the cgi section, which is commented out. remove the hashes ‚#‘ at the beginning of each line and comment out the fastCGI part, as they cannot be active both at the same time.
          give it a try and enjoy your first steps with linux, I know it is hard some times, but keep on trying 😀
          cheers iro

          • Lukas sagt:

            Thanks man!
            But next problem 😀

            ERROR: Module fastcgi does not exist!

            I try

            sudo apt-get install fastcgi

            next error: E: Unable to locale package fastcgi

            🙁 🙁

            • irosaurus sagt:

              try

              sudo apt-get install php5-cgi libapache2-mod-fcgid
              sudo a2enmod fcgid
              sudo service apache2 restart

              cheers iro

              • Lukas sagt:

                sudo a2enmod fastcgi
                still error..

                I tried all your command. Now i can´t using php, hups 🙁
                But, still the same problem ..

                with error.log 🙁
                grrr, hate this problems.

                I think about new installation on second SD card and install first MRTG with all module and after this steps install php, mysql, phpmyadmin etc. 🙂

  5. MarioMM sagt:

    sudo apt-get install libfcgi-perl does the trick

    greetings from vienna
    mario

    • irosaurus sagt:

      Thx Mario 😀 I supposed it must be a perllib, but didn’t know which one 🙂 I already wrote Lukas an email an he did not reply anymore – guess he has figured it out.
      But anyway, will add this info soon in my tutorial, thx again!
      Cheers iro

  6. matrix1900 sagt:

    wie kann ich mit dem tutorial die sensor werte vom DS1820 der über 1wire bus angeschlossen ist darstellen?

    • irosaurus sagt:

      Hallo Matrix,
      da muss ich heute abend nachschauen wie ich das realisiert habe. Allerdings habe ich den Sensor nicht per 1-Wire angeschlossen, sondern habe ihm 3 Adern spendiert (+, GND, Data) und einen Widerstand eingelötet.
      Gruß iro

    • irosaurus sagt:

      Hallo Matrix,

      was länge währt wird endlich gut 😉 Siehe Trackbacks/Pingbacks unten!

      Gruß iro

  7. Marc sagt:

    Hallo
    bis zum ersten Mal http://localhost/cgi-bin/mrtg-rrd.cgi klapt alles.
    Ich sehe die Netzwerkauslastun und auch die Grafen bis zu einem Jahr.
    Wenn ich aber versuche den Nachtrag1 umzusetzen bekomme ich
    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Hat jemand den selben fehler gehabt und beheben können?
    Ich habe meinen RasPi gerade mit den aktuellsten Versionen installiert.
    Grüße
    Marc

    • irosaurus sagt:

      Hallo Marc,

      ich denke das liegt an deine Apache2 VirtualHost Konfig.

      Meine (gekürzte) VirtualHost:


      ServerAdmin your@email.com
      ServerName raspberry.pi
      ServerAlias localhost

      DocumentRoot /var/www


      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      allow from all

      ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all



      Options +ExecCGI
      AllowOverride All
      AddHandler fcgid-script .php
      FCGIWrapper /var/www/php-fcgi-scripts/php-fcgi-starter .php
      Order allow,deny
      Allow from all

      ErrorLog ${APACHE_LOG_DIR}/error.log

      # Possible values include: debug, info, notice, warn, error, crit,
      # alert, emerg.
      LogLevel warn

      CustomLog ${APACHE_LOG_DIR}/access.log combined

      Vergleich die bitte mit deiner VirtualHost (die Datei findest du unter /etc/apache2/sites-enabled). Ich denke der fastcgi Teil düfte bei dir fehlen. Falls ja, und es hinterher funktioniert, bitte Bescheid geben, damit ich das Tutorial anpassen kann. Danke! 🙂

      Gruß iro

      • Marc sagt:

        Ich besitze die nur die default Datei
        /etc/apache2/sites-enabled $ sudo nano 000-default
        Nachdem ich die fehlenden Teile eingefügt habe und Apatche durchgestartet bekomme ich die Meldung:
        Syntax error on line 28 of /etc/apache2/sites-enabled/000-default:
        Wrapper /var/www/php-fcgi-scripts/php-fcgi-starter cannot be accessed: (2)No such file or directory
        Action ‚configtest‘ failed.
        Das Verzeichnis /var/www beinhaltet nur das Verzeichnis mrtg

        Muss ich noch etwas installieren?
        Grüße
        Marc

        • irosaurus sagt:

          Hallo Marc,

          richtig, es fehlt doch noch etwas. Immer wieder faszinierend was man alles geändert hat 😉

          Zuerst den fehlenden Ordner erstellen:
          sudo mkdir /var/www/php-fcgi-scripts

          Dann eine neue Datei namens php-fcgi-starter erstellen
          touch /var/www/php-fcgi-scripts/php-fcgi-starter

          und folgenden Inhalt einfügen

          #!/bin/sh
          PHPRC=/etc/php5/cgi/
          export PHPRC
          export PHP_FCGI_MAX_REQUESTS=5000
          export PHP_FCGI_CHILDREN=8
          exec /usr/lib/cgi-bin/php

          Danach noch die Rechte anpassen
          sudo chmod +x /var/www/php-fcgi-scripts/php-fcgi-starter
          sudo chown -R www-data:www-data /var/www/php-fcgi-scripts

          Jetzt sollte es funktionieren!

          Gruß iro

          • Marc sagt:

            Danke
            Ein kleiner Fehler ist noch da:
            In der Datei mrtg-rrd.cgi ist in der Zeile 1084 ein # vor den Kommentar, dann erscheint das gewünschte auf dem Bildschirm
            Gruß
            Marc

            • irosaurus sagt:

              Hey Marc,

              das kann eigentlich nicht sein. Entweder Zeile 1079-1093 auskommentieren, und Zeile 1097-1113 einkommentieren, dann wird fastCGI deaktivert und man nutzt CGI. Oder eben umgekehrt, so wie bei mir.
              Einer von beiden Teilen MUSS auskommentiert bleiben.
              Als Workaround einfach den fastCGI auskommentieren und den CGI Teil einkommentieren. Dann sollte es auf jeden Fall laufen 🙂
              Leider habe ich meinen Test-Pi in das Weihnachtsgeschenk für meine Freundin verbaut, deshalb ist testen momentan schwierig und den produktiven Pi möchte ich ehrlich gesagt nicht anrühren 😉 Sobald ich der Sache auf den Grund gehen kann, werde ich auf jeden Fall das Tutorial anpassen. Solange gilt der Workaround ohne fastCGI 😉
              Gruß iro

              @Jan: Danke für die Rückmeldung, immer schön zu sehen wenn die Anleitung hilfreich war 😀

  8. Jan sagt:

    Hi!

    Ich hatte das Ganze vorgestern auch mal ausprobiert und bin nach dem Hinzufügen der Nachträge genau wie Marc an der letzten Hürde gescheitert!

    Und jetzt tickert der Monitor 🙂

    Vielen Dank für die tolle Anleitung!

  9. Marc sagt:

    Hi,
    ich probiere das ganze auch momentan allerdings hänge ich momentan an dieser Stelle und komm nicht weiter…. hast du eine Idee?

    sudo cfgmaker –global „Options[_]: growright“ –global „WorkDir: /var/www/mrtg“ –global „IconDir: /mrtg“ –global „WriteExpires: Yes“ –global „Language: german“ –global „RunAsDaemon: yes“ –global „EnableIPv6: no“ –global „LogFormat: rrdtool“ –global „Interval: 1“ ‚–if-filter=$if_admin && $default_iftype‘ –output /etc/mrtg.cfg public@localhost

    Ergebnis:

    Undefined subroutine &SNMP_Session::pack_sockaddr_in6 called at /usr/share/perl5/SNMP_Session.pm line 150.
    BEGIN failed–compilation aborted at /usr/share/perl5/SNMP_Session.pm line 154.
    Compilation failed in require at /usr/share/perl5/SNMP_util.pm line 44.
    BEGIN failed–compilation aborted at /usr/share/perl5/SNMP_util.pm line 44.
    Compilation failed in require at /usr/share/perl5/MRTG_lib.pm line 24.
    Compilation failed in require at /usr/bin/cfgmaker line 49.
    BEGIN failed–compilation aborted at /usr/bin/cfgmaker line 49.

    • irosaurus sagt:

      Moin Marc,
      hast du vorher Perl mit dem sed Befehl gepatched? Wenn ich mich richtig erinner, gabs allerdings auch nach dem Patch noch ein paar Perl Fehlermeldungen. Die mrtg.cfg sollte trotzdem erstellt werden und ohne Probleme funktionieren. Einfach mal mrtg starten und testen ob es läuft. Falls nicht müsste mrtg sich mit einer Fehlermeldung verabschieden und dann können wir weiter schauen.
      Gruß iro

      • Marc sagt:

        ———————————————————————–
        ERROR: Mrtg will most likely not work properly when the environment
        variable LANG is set to UTF-8. Please run mrtg in an environment
        where this is not the case. Try the following command to start:
        env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
        ———————————————————————–

        ich habe aber bei meinem Putty bereits auf ISO-8859-1: 1998 (Latin-1, West Europe) gestellt

        • irosaurus sagt:

          Mit patchen meinte ich den Befehl:
          sed -i 's|import Socket6;|Socket6->import(qw(inet_pton getaddrinfo));|' /usr/share/perl5/SNMP_Session.pm
          Aber wie schon geschrieben, ein paar Fehlermeldungen bleiben wenn ich mich richtig erinnere. Das macht aber nix und beeinflusst auch die erstellte mrtg.cfg in keinster weise.
          Gruß iro

          • Marc sagt:

            Diesen Befehl habe ich bereits verwendet aber er erstellt keine neue mrtg.cfg egal was ich mache….

            • irosaurus sagt:

              Das ist ja auch nur der Befehl um perl zu patchen. Eine neue mrtg.cfg erstellst du mit dem Befehl
              sudo cfgmaker --global "Options[_]: growright" --global "IconDir: /mrtg" --global "WriteExpires: Yes" --global "Language: german" --global "RunAsDaemon: yes" --global "EnableIPv6: no" --global "LogFormat: rrdtool" --global "Interval: 1" '--if-filter=$if_admin && $default_iftype' --output /etc/mrtg.cfg public@localhost
              Gruß iro

              • Marc sagt:

                Dann kommt diese Meldung 😀
                Undefined subroutine &SNMP_Session::pack_sockaddr_in6 called at /usr/share/perl5 /SNMP_Session.pm line 150.
                BEGIN failed–compilation aborted at /usr/share/perl5/SNMP_Session.pm line 154.
                Compilation failed in require at /usr/share/perl5/SNMP_util.pm line 44.
                BEGIN failed–compilation aborted at /usr/share/perl5/SNMP_util.pm line 44.
                Compilation failed in require at /usr/share/perl5/MRTG_lib.pm line 24.
                Compilation failed in require at /usr/bin/cfgmaker line 49.
                BEGIN failed–compilation aborted at /usr/bin/cfgmaker line 49.

                • irosaurus sagt:

                  Hey Marc,
                  da fällt mir eigentlich nur eins ein, am besten nochmal mit sudo aptitude purge mrtg mrtg-rrd rrdtool MRTG noch einmal komplett entfernen und das TUT von vorne beginnen. Ist aus der ferne leider immer etwas schwer den Fehler zu finden… und falls das nicht funktioniert, die SD Karte neu flashen 😉
                  Gruß iro
                  PS: Hab MRTG erst gestern neu auf einem 512er Pi installiert und es lief ohne Probleme. Die weiter oben bereits erwähnten Fehler beim erstellen der Konfig traten zwar auch auf, am am Ende wurde die mrtg.cfg erfolgreich nach /etc/mrtg.cfg geschrieben.
                  Gruß iro

  10. Zwergnase sagt:

    Sag mal wie kommst du denn an die daten der Fritzbox ran? Hast du die gefreetzt oder liest du das ganze per UPnP ?

  11. Chris sagt:

    Hi, danke für die tolle und ausführliche Anleitung. Ich habe alles befolgt und es hat auch alles geklappt, allerdings bekomme ich beim aufrufen von „*RaspberryPi IP*/cgi-bin/mrtg-rrd.cgi“ die Fehlermeldung „Error: Undefined statistics“
    Was habe ich falsch gemacht?

    Danke!

    • irosaurus sagt:

      Hey Chris,
      das klingt als wären die Rechte falsch gesetzt, überprüf nochmal das der www-data user auch die die von mrtg erstellten Daten lesen kann.
      Gruß iro

      • Chris sagt:

        Hi und danke für deine Antwort. Ich habe das Tutorial nochmal von Anfang an durch gearbeitet, un danach hat es funktioniert. Ich konnte die Statistik der eth0 Schnittstelle sehen.

        Dann habe ich deine mrtg Datei von deinem Nachtrag eingefügt und ersetzt, und den CGI Teil editiert und „aktiviert“.
        Allerdings habe ich jetzt keine Statistiken mehr, ich bekomme nur noch eine leere Seite ohne Fehlermeldung angezeigt.

        Was habe ich falsch gemacht?

        Danke.

        • irosaurus sagt:

          Hey Chris,
          wenn du den CGI Teil richtig auskommentiert und den davor wieder einkommentiert hast, dann liegts bestimmt wieder an den Rechten 😉 Prüf nochmal dass auch wirklich der www-user Besitzer der Datei ist und sie auch ausführbar ist.
          Gruß iro

          • Chris sagt:

            Hi iro,

            wenn ich wüsste wie das geht, würde ich das machen 😉

            Das Problem was ich hatte, lag an einer Zeile in der mrtg-rrd.cgi, im CGI Teil. Nämlich ###dump_targets();
            Ich hatte das auskommentiert, danach hatte ich das Problem mit der blanken Seite.
            Es funktioniert also soweit, ich habe danach noch dein anderes Tutorial gemacht, mit den verschiedenen Sensoren und bekomme auch fast alle angezeigt. Ich habe in der mrtg.cfg die eth0 komplett auskommentiert und wlan0 aktiviert (da ich wlan benutze).
            Allerdings bekomme ich keinen Graph angezeigt.
            Wenn ich eth0 wieder aktiviere, zusammen mit wlan0 bekomme ich einen Graphen angezeigt, aber der zeigt nichts an.

            Der einzige Graph, der zu funktionieren scheint, ist die CPU Auslastung:
            http://abload.de/img/unbenannttaswz.png

            Die CPU Temperatur zeigt 2.0°C an
            Die anderen zeigen entweder nichts an oder falsche Werte, und der Wlan Graph ist nicht vorhanden.

            Bezgl. des DS18S20 Sensors: Ja, ich habe die i2C Adresse ausgelesen und angepasst 😉

            Ich habe meine mrtg.cfg hochgeladen:
            http://www.file-upload.net/download-8003672/mrtg.cfg.html

            Vielleicht hast du ja mal Zeit drüber zu schauen 🙂

            PS:
            Ist das normal, dass die MRTG-Seite extrem lange immer braucht bis dass sie sich aufgebaut hat? Das ist ziemlich nervig 🙁

            Danke!

            Chris

            • Chris sagt:

              Nachtrag:
              Die CPU Temperatur funktioniert nun, beim kopieren vom CPU Temperatur Skript, scheint ein Fehler beim kopieren aufzutreten.
              Die Zeile „scale=2; $tempread / 1000“ wird als .scale=2; $tempread / 1000. kopiert. Also mit punkten anstelle von „.

              Ich vermute das liegt daran, dass ich den Rpi gemäß deines Vorschlages auf Iso 8859 umgestellt habe.

              Jedenfalls habe ich die Punkte durch die “ ersetzt. Jetzt wird die Zeile auch Gelb angezeigt. Die CPU Temp funktioniert. Der DS18S20 Sensor habe ich auch so angepasst, aber er liest mir immer noch keine Temperatur aus.

              MfG

  12. Torsten sagt:

    Hi iro,

    Habe folgendes Problem:
    MRTG läuft (Danke für das Super Tutorial.
    Wollte anstatt Interface 2 das I 3 aktivieren (Ich hab bei mir WLAN-Connect)
    Also I 2 auskommentiert u. das I 3 aktiviert.
    Leider kommt jetzt diese Errormeldung:
    Error: Undefined statistics

    Ich denke da fehlt wohl noch irgendwo ein Eintrag ?!

    Hier noch meine cfg Datei:

    # Created by
    # /usr/bin/cfgmaker –global „Options[_]: growright“ –global „IconDir: /mrtg“ –global „WriteExpires: Yes“ –global „Language: german“ –global „RunAsDaemon: yes“ –global „EnableIPv6: no“ –global „LogFormat: rrdtool“ –global „Interval: 1“ „–if-filter=$if_admin && $default_iftype“ –output /etc/mrtg.cfg public@localhost

    ### Global Config Options

    # for UNIX
    # WorkDir: /home/http/mrtg

    # for Debian
    WorkDir: /var/www/mrtg

    # or for NT
    # WorkDir: c:mrtgdata

    ### Global Defaults

    # to get bits instead of bytes and graphs growing to the right
    # Options[_]: growright, bits

    EnableIPv6: no
    Options[_]: growright
    WorkDir: /var/www/mrtg
    IconDir: /mrtg
    WriteExpires: Yes
    Language: german
    RunAsDaemon: yes
    EnableIPv6: no
    LogFormat: rrdtool
    Interval: 1

    ######################################################################
    # System: raspberrypi
    # Description: Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l
    # Contact: Me
    # Location: Sitting on the Dock of the Bay
    ######################################################################

    ### Interface 1 >> Descr: ‚lo‘ | Name: ‚lo‘ | Ip: ‚127.0.0.1‘ | Eth: ‚No Ethernet Id‘ ###
    ### The following interface is commented out because:
    ### * it is a Software Loopback interface
    ### * filter specified by –if-filter rejected the interface
    #
    # Target[localhost_1]: 1:public@localhost:
    # SetEnv[localhost_1]: MRTG_INT_IP=“127.0.0.1″ MRTG_INT_DESCR=“lo“
    # MaxBytes[localhost_1]: 1250000
    # Title[localhost_1]: Traffic Analysis for 1 — raspberrypi
    # PageTop[localhost_1]: Traffic Analysis for 1 — raspberrypi
    #
    #
    #
    # System:
    # raspberrypi in Sitting on the Dock of the Bay
    #
    #
    # Maintainer:
    # Me <me@example.org>
    #
    #
    # Description:
    # lo
    #
    #
    # ifType:
    # softwareLoopback (24)
    #
    #
    # ifName:
    # lo
    #
    #
    # Max Speed:
    # 1250.0 kBytes/s
    #
    #
    # Ip:
    # 127.0.0.1 (localhost)
    #
    #
    #

    ### Interface 2 >> Descr: ‚eth0‘ | Name: ‚eth0‘ | Ip: ‚No Ip‘ | Eth: ‚b8-27-eb-0c-58-69‘ ###

    #Target[localhost_2]: 2:public@localhost:
    #SetEnv[localhost_2]: MRTG_INT_IP=“No Ip“ MRTG_INT_DESCR=“eth0″
    #MaxBytes[localhost_2]: 1250000
    #Title[localhost_2]: Traffic Analysis for 2 — raspberrypi
    #PageTop[localhost_2]: Traffic Analysis for 2 — raspberrypi
    #
    #
    #
    # System:
    # raspberrypi in Sitting on the Dock of the Bay
    #
    #
    # Maintainer:
    # Me <me@example.org>
    #
    #
    # Description:
    # eth0
    #
    #
    # ifType:
    # ethernetCsmacd (6)
    #
    #
    # ifName:
    # eth0
    #
    #
    # Max Speed:
    # 1250.0 kBytes/s
    #
    #
    # Ip:
    # No Ip (No DNS name)
    #
    #
    #

    ##Interface 3 >> Descr: ‚wlan0‘ | Name: ‚wlan0‘ | Ip: ‚192.168.1.104‘ | Eth: ’80-1f-02-af-0f-78′ ###

    Target[localhost_3]: 3:public@localhost:
    SetEnv[localhost_3]: MRTG_INT_IP=“192.168.1.104″ MRTG_INT_DESCR=“wlan0″
    MaxBytes[localhost_3]: 0
    Title[localhost_3]: Traffic Analysis for 3 — raspberrypi
    PageTop[localhost_3]: Traffic Analysis for 3 — raspberrypi

    System:
    raspberrypi in Sitting on the Dock of the Bay

    Maintainer:
    Me <me@example.org>

    Description:
    wlan0

    ifType:
    ethernetCsmacd (6)

    ifName:
    wlan0

    Max Speed:
    0.0 Bytes/s

    Ip:
    192.168.1.104 (localhost)

    • irosaurus sagt:

      Hallo Torsten,
      beim schnellen drüber lesen ist mir folgendes aufgefallen:
      Max Speed:
      0.0 Bytes/s

      Das kann nicht sein 😉 Am besten ist, du verbindest dich per WLAN mit dem Pi und lässt das LAN ausgesteckt. Wenn du jetzt noch einmal den cfgmaker aufrufst, sollte MRTG automatisch das LAN Interface auskommentieren und statt dessen dein WiFi Interface mit der korrekten max. Speed anzeigen. Generell werden alle Interfaces angezeigt, die aktiv sind und inaktive auskommentiert.
      Gruß und gn8
      iro

      • Torsten sagt:

        Hallo iro. Genauso hab ich es gemacht. Per WLAN verbunden. LAN war nicht eingesteckt. Jedoch war dann in der conf die LAN aktiv u. WLAN aus kommentiert. Was nun ?
        Gruss Torsten

        • irosaurus sagt:

          Ok das ist seltsam 🙂 Dann noch einmal den wlan Teil einkommentieren und dabei darauf achten dass keine Formatierung geändert wird. MRTG reagiert da sehr allergisch drauf. Von Hand dann noch den Parameter „MaxBytes[localhost_3]:“ auf die Geschwindigkeit deines WLAN Adapters ändern.
          Nutzt du z.B. einen 150MBit Adapter, dann wäre der Wert 1875000.
          Gruß iro

          • Torsten sagt:

            Ok, Hab das jetzt alles auskommentiert. Aber wenn alles auskommentiert ist kann mrtg ja auch nix anzeigen. Also kommt die Meldung undefined statistics.
            Also hab ich die # Zeichen wieder rausgenommen (bei WLAN) Nun kommt:
            Error: RRDs::graph failed, opening ‚/var/www/mrtg/localhost_3.rrd‘: No such file or directory
            Da fehlt wohl noch eine Zuordnung zu Interface 3 Muss ich die in der mrtg.cfg machen.
            Gruß Torsten
            PS Du hast wohl die Kommentarfunktion unter dem WordPress Artikel abgeschalten ?

            Hier noch meine aktuelle mrtg.cfg:
            # Created by
            # /usr/bin/cfgmaker –global „Options[_]: growright“ –global „IconDir: /mrtg“ –global „WriteExpires: Yes“ –global „Language: german“ –global „RunAsDaemon: yes“ –global „EnableIPv6: no“ –global „LogFormat: rrdtool“ –global „Interval: 1“ „–if-filter=$if_admin && $default_iftype“ –output /etc/mrtg.cfg public@localhost

            ### Global Config Options

            # for UNIX
            # WorkDir: /home/http/mrtg

            # for Debian
            WorkDir: /var/www/mrtg

            # or for NT
            # WorkDir: c:mrtgdata

            ### Global Defaults

            # to get bits instead of bytes and graphs growing to the right
            # Options[_]: growright, bits

            EnableIPv6: no
            Options[_]: growright
            WorkDir: /var/www/mrtg
            IconDir: /mrtg
            WriteExpires: Yes
            Language: german
            RunAsDaemon: yes
            EnableIPv6: no
            LogFormat: rrdtool
            Interval: 1

            ######################################################################
            # System: raspberrypi
            # Description: Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l
            # Contact: Me
            # Location: Sitting on the Dock of the Bay
            ######################################################################

            ### Interface 1 >> Descr: ‚lo‘ | Name: ‚lo‘ | Ip: ‚127.0.0.1‘ | Eth: ‚No Ethernet Id‘ ###
            ### The following interface is commented out because:
            ### * it is a Software Loopback interface
            ### * filter specified by –if-filter rejected the interface
            #
            # Target[localhost_1]: 1:public@localhost:
            # SetEnv[localhost_1]: MRTG_INT_IP=“127.0.0.1″ MRTG_INT_DESCR=“lo“
            # MaxBytes[localhost_1]: 1250000
            # Title[localhost_1]: Traffic Analysis for 1 — raspberrypi
            # PageTop[localhost_1]: Traffic Analysis for 1 — raspberrypi
            #
            #
            #
            # System:
            # raspberrypi in Sitting on the Dock of the Bay
            #
            #
            # Maintainer:
            # Me <me@example.org>
            #
            #
            # Description:
            # lo
            #
            #
            # ifType:
            # softwareLoopback (24)
            #
            #
            # ifName:
            # lo
            #
            #
            # Max Speed:
            # 1250.0 kBytes/s
            #
            #
            # Ip:
            # 127.0.0.1 (localhost)
            #
            #
            #

            ### Interface 2 >> Descr: ‚eth0‘ | Name: ‚eth0‘ | Ip: ‚No Ip‘ | Eth: ‚b8-27-eb-0c-58-69‘ ###

            #Target[localhost_2]: 2:public@localhost:
            #SetEnv[localhost_2]: MRTG_INT_IP=“No Ip“ MRTG_INT_DESCR=“eth0″
            #MaxBytes[localhost_2]: 1250000
            #Title[localhost_2]: Traffic Analysis for 2 — raspberrypi
            #PageTop[localhost_2]: Traffic Analysis for 2 — raspberrypi
            #
            #
            #
            # System:
            # raspberrypi in Sitting on the Dock of the Bay
            #
            #
            # Maintainer:
            # Me <me@example.org>
            #
            #
            # Description:
            # eth0
            #
            #
            # ifType:
            # ethernetCsmacd (6)
            #
            #
            # ifName:
            # eth0
            #
            #
            # Max Speed:
            # 1250.0 kBytes/s
            #
            #
            # Ip:
            # No Ip (No DNS name)
            #
            #
            #

            ##Interface 3 >> Descr: ‚wlan0‘ | Name: ‚wlan0‘ | Ip: ‚192.168.1.104‘ | Eth: ’80-1f-02-af-0f-78′ ###

            Target[localhost_3]: 3:public@localhost:
            SetEnv[localhost_3]: MRTG_INT_IP=“192.168.1.104″ MRTG_INT_DESCR=“wlan0″
            MaxBytes[localhost_3]: 1875000
            Title[localhost_3]: Traffic Analysis for 3 — raspberrypi
            PageTop[localhost_3]: Traffic Analysis for 3 — raspberrypi

            System:
            raspberrypi in Sitting on the Dock of the Bay

            Maintainer:
            Me <me@example.org>

            Description:
            wlan0

            ifType:
            ethernetCsmacd (6)

            ifName:
            wlan0

            Max Speed:
            0.0 Bytes/s

            Ip:
            192.168.1.104 (localhost)

          • Torsten sagt:

            Halt Kommando zurück !
            Jetzt funktioniert es !!!
            Ich will mir demnächst noch 2 Temperatursensoren einbinden. Ich hoffe ich bekomme das hin.
            Vielen Dank für Deine Hilfe !

            Gruß aus Thüringen
            Torsten
            Hier noch Raspi
            Lade gerade zum Test ne 4Gb Datei hoch … 🙂
            http://109.73.26.3/cgi-bin/mrtg-rrd.cgi/localhost_3.html

  13. Marc Adam sagt:

    Hallo,
    vielen Dank für die anfängerfreundlichen Anleitungen. Ich beginne gerade mit Hardwareprogrammierungen und bin dementsprechend unsicher. Darum weiß ich auch nicht, wo ich mit der Suche beginnen soll.
    Also der erste Test brachte diese Fehlermeldung:
    ———-
    sudo mrtg /etc/mrtg.cfg
    Daemonizing MRTG …
    ERROR: I Quit! Another copy of mrtg seems to be running. Check /etc/mrtg.pid
    ———-

    In der /etc/mrtg.pid steht „2664“, mehr nicht Im Netzt fand ich einen Hinweis (allerdings in einer anderen Angelegenheit), dass evtl. in der /etc//cron.d etwas gestartet wurde, was nicht sein darf. Tatsächlich liegt dort die Datei mrtg mit dem Inhalt:
    ————-
    */5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ] && [ -d „$(grep ‚^[[:space:]]*[^#]*[[:space:]]*WorkDir‘ /etc/mrtg.cfg | awk ‚{ print $NF }‘)“ ]; then mkdir -p /var/log/mrtg ; env LANG=C /usr/bin/mrtg /etc/mrtg.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi
    ————-

    Wenn ich die gesamte Zeile auskommentiere und den RasPi neu starte, kommt zwar keine Fehlermeldung, sondern das gewünschte „Daemonizing MRTG …“

    Allerdings kann im Browser die gewünschte Webseite unter http://192.168.yy.xx /cgi-bin/mrtg-rrd.cgi nicht angezeigt werden.

    Es ist ein neu aufgesetztes wheezy, muss ich evtl. erst noch weitere Pakete installieren? Oder noch Rechte an /var/www/ anpassen)

    Ich habe auch noch nicht die Nachträge abgearbeitet, weil ich erst mal Schritt für Schritt rangehen muss.

    Könnt ihr mir helfen?
    Danke Marc Adam

  14. Christoph sagt:

    Hi iro, danke für Dein Tutorial.

    Bei mir hat der cfgmaker erstmal nicht getan, weil die Zeile:
    dontLogTCPWrappersConnects true

    in der falschen Konfigurationsdatei war. Statt in die
    /etc/default/snmpd
    gehört es in die
    /etc/snmp/snmpd.conf

    Vielleicht gehts ja anderen auch so…

    Gruesse
    Christoph

  15. Florian sagt:

    Hi!
    Danke fürs tutorial, hat alles funktioniert, habe auch schon einen Luftdruck-Sensor eingebaut, perfekt.
    Hast du eine Ahnung wie man die y-Achse der Graphen nicht bei 0 sondern benutzerdefiniert starten kann? Zweck wäre zB bei Temeratur und Druck gibts einen Bereich der uninteressant ist, zb <15 Grad oder <0.9Bar.

    Schöne Grüße
    Flo

  16. kevin sagt:

    Hi!
    Danke für das how2. habs komplett durchgearbeitet, bekomme aber leider den Fehler „Error: Undefined statistics“ im Browser 🙁
    Die Rechte der /etc/mrtg.cfg sollten eigentlich passen: -rw-r–r– www-data www-data /etc/mrtg.cfg

    Wo ist der Fehler? Bitte Hilfe 🙁

    Danke und Gruß

    • irosaurus sagt:

      Hey Kevin,
      denk das liegt trotzdem an den Rechten 😉 www-data darf zwar lesend und schreibend auf die Konfig zugreifen, aber was ist mit MRTG und den DBS? Hat der Prozess auch Schreibrechte für das Verzeichnis in dem die DBs liegen?
      Gruß iro

      • kevin sagt:

        danke für die antwort.
        wenn du mir jetzt noch sagen könntest wie ich das herausfinde, bin ich glücklich 😀
        Linux ist dann doch nicht so meins merke ich so langsam 🙂

  17. boarduser sagt:

    Ich habe das Problem, dass nur die Traffic Analysis funktioniert mir ist aufgefallen das die html-Links bei den Anderen Prozessen nicht da sind (z. B.:http://meineIP/cgi-bin/mrtg-rrd.cgi/localhost.cpu.html) Es fehlt eine ensprechende /var/www/mrtg/localhost.cpu.rrd. Wie wird die erzeugt? Was habe ich übersehen?

    • irosaurus sagt:

      Hey boarduser,
      gleiche Antwort auch hier, wenn die Abfragen der verschiedenen Skripte richtig funktionieren und Werte zurückgegen werden, dann erzeugt MRTG automatisch selbst die rrd DBs. Die html Links der Webseite werden von der mrtg-rrd.cgi anhand der mrtg.cfg erstellt.
      Gruß iro

  18. Obersimulant sagt:

    Hi,

    nachdem ich das Tu´T mit dem Dallas-Temp.-Sensoren „gemeistert“ habe, hatte ich ja bereits angedroht, dieses nächstes TuT zu versuchen…. und scheitere natürlich gleich wieder:
    Hab den RaspPi nach dem TuT „sauber installieren“ 2x neu geflasht, dieses TuT 2 x neu angefangen (und auch abgeschlossen, samt Kommentaren, meine ich) und hänge dabei, das ich keine Daten in die Graphen bekomme.
    Auch die Problematik, die Thorsten beschrieb ( trotz WLAN-Anbindung wird nur der LAN-Graph ( der natürlich leer sein muss) angezeigt, habe ich auch
    Ich habe die beiden Scripte für „Temperatur Wohnzimmer“ und „RaspBerryPi Server-CPU Temperatur“ eingefügt, wobei ich im ersteren Script einzig die ID des Sensors angepasst habe, das zweite Script habe ich übernommen. Die leeren Graphen werden auch angezeigt, das ist leider Alles.

    Was mache ich noch falsch???

    Gibt es denn eine Möglichkeit, die einzelnen Schritte zu überprüfen bzw. ein LogFile, das mir die Fehler zeigt?

    Gruß
    Obersimulant

  19. Pr3 sagt:

    Hey Iro nochmals danke für das Tutorial.
    Bei mir läuft soweit alles gut. Ich habe nur folgendes Problem. Wenn ich den Raspi neustarte dann startet MRTG nicht automatisch. Erst nachdem ich in manuell starte kann ich wieder auf die Seite zugreifen. Bzw. die Messdaten die vorher gesammelt wurden sind weg. Werden die bei einem reboot gelöscht?

    Danke schonmal im Vorraus. 😉

    • irosaurus sagt:

      Hey Pr3,
      seltsames Phenomän hast du da. Wenn du mrtg wie beschrieben installiert hast, dann sollte ein Cron angelegt worden sein, der alle 5 Minuten läuft und prüft ob mrtg läuft. Falls nicht wird es gestartet. Die Ausgabe solltest du im syslog finden, prüf das mal. Falls du im syslog nichts findest, dürfte neu installieren am schnellsten funktionieren. Wichtig: Vorher deine /etc/mrtg.cfg sichern und hinterher zurückspielen – sollte in 2 Minuten erledigt sein.
      Warum deine Daten verschwinden kann ich dir nicht sagen, gelöscht wird definitiv nichts. Liegen die Daten denn nach einem Reboot noch unter /var/www/mrtg?
      Gruß iro

      • Pr3 sagt:

        Also die Daten bleiben jetzt erhalten und werden nicht gelöscht. Jedoch startet MRTG nach einem Reboot immer noch nicht neu.
        Die Datei /etc/cron.d/mrtg hat den Inhalt wie bei dir beschrieben.

        */5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg.cfg > /dev/null

        Hab es neu installiert und es Funktioniert irgendwie immer noch nicht. WO kann ich denn das syslog prüfen?

        Danke schon mal für die Hilfe 😉

        grüße Pr3

  20. Micha sagt:

    Hallo.
    Gute Beschreibung. Tolle Arbeit hast du geleistet.
    Habe eine Frage. Wie kann ich Festplatten von einem Externen Gerät (NAS) auslesen ?

    • irosaurus sagt:

      Hey Micha,
      danke für das Feedback!
      Eine Pauschale Antwort auf deine Frage kann ich dir allerdings nicht liefern, das hängt stark von der Funktionalität des NAS ab. Wenn SNMP unterstützt wird, dann würde ich es damit versuchen. Community String auf dem NAS setzen und vom Raspberry dann einen SNMP Walk ausführen. Damit kannst du dir bestimmt was schönes zusammenbasteln.
      Gruß iro

  21. Lukas sagt:

    Hallo, zu allererst einmal: ich finde Ihre Tutorials sehr gut erklärt.
    Jetzt mein Problem:
    Wenn ich den Befehl sudo mrtg /etc/mrtg eingebe kommt folgende Fehlermeldung
    ERROR: unable to open config file: /etc/mrtg
    Wie kann ich diesen Fehler Beheben

  22. Marco sagt:

    Guten tag,

    ich bekomme folgende Fehlermeldung auf der Seite:
    Error: Undefined statistics

    ich habe ein Apache2 Server laufen, diesbezüglich habe ich alles gemacht nur halt noch in den html ordner dazu rein dürfte ja dennoch kein problem sein oder?

    • irosaurus sagt:

      Hey Marco,
      falls du das Problem noch nicht gelöst hast, was meinst du denn mit „nur halt noch in den html ordner dazu rein„?
      Prinzipiell ist es natürlich egal ob du Apache, Lighty oder einen anderen Webserver nutzt, solange die gleichen bzw. vergleichbare Modules laufen.
      Gruß iro

  23. ErdwurmJim sagt:

    Hallo iro,

    zu erst, richtig gutes Tutorial. Ist sogar für mich als Anfänger nachvollziehbar. Allerdings habe ich ein oder zwei Probleme und finde nicht heraus woran es liegen könnte. Habe alles installiert nur wenn ich den MRTG Daemon starten will kommt folgende Meldung:

    Daemonizing MRTG …
    ERROR: I Quit! Another copy of mrtg seems to be running. Check /etc/mrtg.pid

    Nun dachte ich, ich habe das selbe Problem wie Marc Adam. Doch leider hat auch das installieren von bc nichts genützt. Zudem zeigt der Pi mir unter http://ip-adresse/cgi-bin/mrtg-rrd.cgi einen 404 – Not Found an. Kannst Du mir helfen bzw sagen woran das liegen könnte und was ich tun soll? Ich wäre Dir sehr Dankbar!

    Viele Grüße, ErdwurmJim

    • irosaurus sagt:

      Hey Jim,

      die Meldung sagt ganz einfach, dass mrtg schon läuft. Das wird beim booten automatisch gestartet.
      Um die laufende Version zu stoppen, musst du zuerst die PID (Prozessnummer) von mrtg raus bekommen. Machst du mit folgendem Befehl:
      ps -Af | grep mrtg
      Die erste Zahl hinter dem Prozessnamen ist die PID. Nun den Prozess abschießen:
      kill PID
      PID natürlich durch die Zahl ersetzen die dir im Schritt davor angezeigt wurde.

      Ich bin mir gerade nicht sicher, aber wenn ich mich nicht täusche, dann darfst du die mrtg.cfg nur bearbeiten, wenn mrtg nicht läuft. Sonst werden deine Änderungen wieder überschrieben.

      Gruß iro

      • ErdwurmJim sagt:

        Hallo iro,

        mir werden zwei Prozesse angezeigt:

        root 850 1 0 19:50 ? 00:00:00 /usr/bin/perl -w /usr/bin/mrtg /etc/mrtg.cfg
        pi 872 826 0 19:50 pts/0 00:00:00 grep –color=auto mrtg

        leider sagt er mir, egal welches ich beende „Ungültige Signalbezeichnung“

  24. guru-meditation sagt:

    Hat jemand das Tutorial basierend auf der neusten pi Version Jessie erfolgreich zum Fliegen gebracht? Bin mir sicher die Anleitung unter Wheezy bereits durchgeführt zu haben und hatte auch Erfolg. Momentan bekomme ich es einfach nicht hin, auch nach mehrmaliger Installation. Habe es mit lighttp versucht. Ich bekomme aber immer den 404 und von MRTG wird kein index.html file erstellt. Dennoch wird ein rrd aktualisiert und Port 80 ist offen. Komme nicht dahinter, was ich übersehen habe. Ist aktuell halblebig. Ist der Indexmaker notwendig? Werde es später mal noch mit Apache versuchen.
    Trotzdem vielen Dank für die gute Anleitung.

  25. jerrykuehn sagt:

    Hallo
    Das Tutorial ist super.
    Beim Test krieg ich die Meldung“ Daemonizing MRTG“
    Nur wenn ich die mrtg-rrd.cgi mit dem Browser am raspi öffnen will, kommt die Meldung
    „Diese Webseite ist nicht erreichbar. localhost hat die Verbindung abgelehnt.“ Wenn ich es über ein anderes Gerät im Netzwerk mit der IP vom Rapsi(die mit Putty undVNC funkt) probiere, krieg ich die Meldung „Firefox kann keine Verbindung zu dem Server unter 10.0.0.15 aufbauen“
    Was mach ich falsch.
    Bin kein ganzer newbie, aber meine Kenntnisse sind bescheiden (frei nach Sokrates “ Je mehr ich weis, umso mehr weis ich, dass ich nichts weis“)
    Gruß Jerry

    • irosaurus sagt:

      Hey Jerry,
      besser spät als nie, ich würde darauf tippen, dass dein Webserver nicht läuft. Eine andere Möglichkeit wäre, dass du iptables laufen hast. Dann müsstest du Port 80 noch freigeben.
      Gruß iro

2 Pings/Trackbacks für "[Tutorial] Monitoring mit MRTG + RRD Support auf Raspberry Pi (Debian Wheezy)"
  1. […] ist natürlich, dass MRTG bereits läuft. Sollte dies nicht der Fall sein, gibt es HIER mein erstes Tutorial […]

  2. […] ist natürlich, dass MRTG bereits läuft. Sollte dies nicht der Fall sein, gibt es HIER mein erstes Tutorial […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*