RRD und mysql

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich bin über "rrdgraph_libdbi" (http://oss.oetiker.ch/rrdtool/doc/rrdgraph_libdbi.en.html)
    gestolpert und da ich viele meiner Daten in einer mysql DB habe, wollte ich dies mal ausprobieren.

    Also, die Daten für die Erzeugung eines Graphen werden aus mysql gelesen, nicht aus einem rrd-File.


    Leider komme ich noch nicht richtig weiter.

    Ich habe mal auf Pi/Linux und Windows mit perl (unter Nutzung von use RRDs;) getestet. Python wäre mir auch recht ;)

    ...

    führt zu:
    D:\tmp\test_rrd_mysql.pl: unable to generate sensor 6 day graph: opening 'sql//mysql/host=192.168.0.1/dbname=sensors_rfm12pi/username=myuser/password=mypasswd/sensor_data/timestamp/value/noteid=6': No such file or directory

    Irgendwie mag er die 'sql//..." Angabe nicht. Gleiche Fehlermeldung (No such file or directory) kommt übringens auch, wenn eine 0815.rrd angegeben wird, die es aber nicht gibt bzw. nicht gefunden wird.

    Unter Pi/Linux erhalte ich:
    test_rrd_mysql.sh:


    root@AirPi-Testing:/home/pi# ./test_rrd_mysql.sh
    RRDDEBUGSQL: 1433879067: initialize libDBI
    ERROR: libdbi - no such driver: mysql (possibly a dynamic link problem of the driver being linked without -ldbi)

    wird in der Beschreibung erwähnt (http://oss.oetiker.ch/rrdtool/doc/rrdgraph_libdbi.en.html), ich habe nur keine Ahnung was ich dagegen tun muss.

    Hat jemand mit dem Modul rrdgraph_libdbi für RRD bereits gearbeitet oder kann es evtl. auch mal testen?

    Im Netz findet man leider noch nicht viel diesbzgl.

    Wäre sehr dankbar
    giovanne

  • Ein kurzes Googlen hat für mich ergeben, dass die Verbindung zur Datenbank in Perl anders geht:

  • Danke für die Antwort , aber wie mit perl selbst eine Datenbank Verbindung etc. geht ist mir schon klar und setzt ich auch bereits anderweitig ein.
    Aber wie ich in beschrieben habe, möchte ich die Verbindung wie in der verlinkten Anleitung mit dem rrd Modul rrdgraph_libdbi machen.
    Da habe ich perl nur als Mittel/rrd-Client unter Windows versucht zu verwenden, da ich dort normales rrd Handling bereits einsetze, aber eben nicht dies spezielle Modul. Meinetwegen darf es auch ein anderer rrd Zugang sein (console/batch, Python, ...).
    Unter Linux habe ich es ja auch mit obigem Ergebnis versucht.

    Da hilft derzeit googlen mangels Treffer zum Thema/Modul auch nicht!

    Also wenn noch jemand Tipps hat...

  • Die Antwort ist zwar etwas spät, aber vielleicht hilft sie ja dem einen oder anderen.

    RRD mit MYSQL funktioniert anstandslos - vorausgesetzt, alle Bibliotheken sind installiert. Die oben angesprochene Fehlermeldung konnte ich beheben, indem ich das Paket"libdbd-mysql" installiert habe:

    Code
    sudo apt-get install libdbd-mysql

    Um mit RRD einen netten Graphen zu erzeugen habe ich mir erst als String die SQL-Abfrage erzeugt:

    Code
    sqlString = 'sql//mysql/host=localhost/Dbname=datenBankName/username=benutzerName/password=passWort//tabelle/wert1/wert2/id'

    Die Einträge "datenBankName", "benutzerName", "passWort", "tabelle", "wert1", "wert2" und "id" sind entsprechend der MYSQL-Datenbank anzupassen. Da das RRD-Tool einen Zeitverlauf darstellt, muss "wert1" eine Zeitvariable sein - Achtung!: RRD verlangt einen Unix-Zeitstempel!!

    Weiter unten kommt dann der Eintrag zum erstellen des Graphen:

    Wie man sieht, habe ich das Problem mit python bearbeitet und lese mit sys.argv[1] bis sys.argv[3] den Namen für die Ausgabedatei und für Start- und Endzeit ein. Mit sqlString wird in der Variable stringData die Verbindung zur Datenbank hergestellt. Die Enträge in den <> müssen natürlich auch noch spezifisch an das Problem angepasst werden.

    Ich hoffe, der Beitrag hilft noch dem ein oder anderen :)

    Gruß

    Thomas

  • Danke - es ist nie zu spät ;)

    Ich habe aber damals das Problem in Perl nicht weiter verfolgt und habe es per Shell Skript auf dem Pi täglich per Cron laufen lassen:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!