raspberry pi: Datenbank rrdtool

Gast #6541124
Lesenswert?

Hi,

für eine Temperaturaufzeichnung möchte ich die Datenbank rrdtool 
einsetzen.
Alle notwendigen Pakete habe ich bereits installiert. Beim Erzeugen 
einer Datenbank erscheint die Fehlermeldung:

> ERROR: you must define at least one Round Robin Archive

Diese Fehlermeldung erscheint sobald ich dies hier ausführe:
1
 rrdtool create TemperaturAufzeichnung.rrd --step 300 
2
 DS:temp:GAUGE:600:-30:100 
3
 RRA:AVERAGE:0.5:1:1200 
4
 RRA:MIN:0.5:12:2400 
5
 RRA:MAX:0.5:12:2400 
6
 RRA:AVERAGE:0.5:12:2400
#6541885
Lesenswert?

Hi,

was meinst Du mit "automatisch" erzeugt ?
Laut der Webseite sollst Du neue Einträge mit
crontab -e erzeugen.
Darunter steht dann ja auch
# Unten folgende Zeile einfügen
*/10   * * php5 /home/pi/Temperatur/TemperaturAufzeichnen.php > 
/dev/null 2>&1


Was passiert denn , wenn Du auf der Kommandozeile
php5 /home/pi/Temperatur/TemperaturAufzeichnen.php
und
cd /home/pi/Temperatur && sh TemperaturGrafikErstellen.sh

eingibst ? Fehlermeldung ?
Gast #6542362
Lesenswert?

Statt php5 verwende ich php
Wenn ich beide Zeilen ausführe, passiert nichts. Keine Ausgabe oder so.
Es wird wieder auf den prompt gewechselt.

> php /home/pi/Temperatur/TemperaturAufzeichnen.php

> cd /home/pi/Temperatur && sh TemperaturGrafikErstellen.sh
Gast #6542422
Lesenswert?

Meine Vermutung ist du hast in der Crontab keinen vollen Pfad angegeben 
die Crontab mag das nicht.

Ansonsten leite die Ausgabe des Crontabs mal in ein Logfile um dann 
bekommst auch Fehlermeldungen

z.b. mit "> /pfad/zur/logdatei.log 2>&1"
Gast #6542433
Lesenswert?

Schätze mal Du hast das PHP-Beispielscript auf der von Dir verlinkten 
Webseite einfach blind kopiert, ohne den Sinn bzw. Funktion von selbigen 
richtig zu verstehen.

Ich empfehle Dir deshalb lies hier https://oss.oetiker.ch/rrdtool/ nach 
wie man die Funktionen von rrd-Tool richtig benutzt. Man kann das alles 
ohne Script im Terminalfenster ausprobieren.
Wenn das funktioniert würde ich im nächsten Schritt die Aufrufe in ein 
Bashscript verpacken und erst mal damit testen und probieren. Wenn das 
wie gewünscht funktioniert, wäre der nächste Schritt das Bashscript per 
PHP aufzurufen. Wenn das funktioniert, kann man sich überlegen ob man 
das so wie es ist beläßt oder ob man die Befehlszeilen des Bashscripts 
direkt aus PHP heraus aufruft.
Ich würde es bei einem Bashscript welches von PHP aufgerufen wird 
belassen. Hat sich bei mir bewährt.
#6542435
Lesenswert?

Nimm doch gleich was anständiges. Mit Grafana und innodb kannst du 
soviel loggen wie du willst, und jede Menge charts erstellen. Der 
Vorteil davon wäre, daß das gleich funktioniert und du nur 1-2 config 
files hast.
Hier wollte ich eigentlich nur meinen Kühlschrank überwachen der immer 
vereist war. Und seitdem ich den abgetaut habe und per Grafana logge, 
funzt der auch wieder :-). Alles auf Raspi 4 der damit bei 20% 
ausgelastet ist
Angehängte Dateien:
Gast #6542440
Lesenswert?

@TO:

Dir ist aber schon klar das, das Folgende aus dem Grafikscript in eine 
Zeile gehört?
1
rrdtool graph /home/pi/Temperatur/TemperaturTag.png 
2
 -s 'now - 1 day' -e 'now' 
3
 DEF:temp=/home/pi/Temperatur/TemperaturAufzeichnung.rrd:temp:AVERAGE 
4
 LINE2:temp#000000:Wohnzimmer

Wenn Du das so geschrieben hast wie hier, kommt definitiv keine Grafik 
raus. Warum solltest Du Dir mal selbst überlegen bzw. recherchieren.
Gast #6542450
Lesenswert?

Thomas G. schrieb:
> Nimm doch gleich was anständiges.

Ist doch Käse was Du da schreibst. Mit rrd-Tool bekommt man schon was 
ordentliches hin, wenn man es richtig macht.

Nichts gegen Grafana, das Problem hier ist das der TO einfach nur ein 
paar Sourcen zusammenkopiert hat ohne zu verstehen was er da eigentlich 
macht.
RRD-Tool hat den Vorteil die Daten zu komprimieren, was bei Wetter- bzw. 
Temperaturdaten auch Sinn macht, denn nach 3 Jahren muß ich nicht mehr 
wissen, wie hoch die Temperatur am 8.1.21 um 20:40Uhr war. Da reichen 
Mittelwert, Minimum und Maximum vom 8.1.21 und genau das macht rrd-Tool.
Gast #6542563
Lesenswert?

Ok Danke. Bin gerade noch dabei um mir das reinzuziehen.

Nun jetzt ist es so, dass in /home/pi/Temperatur/ beide Grafiken 
erstellt werden. Allerdings werden die beiden Dateien nicht in das 
Verzeichnis /var/www/html/ kopiert.
#6542583
Lesenswert?

.. ja, weil weiter unten noch eine Änderung im Script gemacht wird und 
die
Graphiken im Verzeichnis /var/www angelegt werden.
Ich glaube Dir fehlt da noch etwas Verständnis.
Bevor Du mit so etwas loslegst, erstmal von oben bis unten  lesen und 
versuchen zu verstehen.
...

von oben (TemperaturGrafikErstellen.sh) noch den Ausgabepfad auf unser 
Document Root „/var/www“ legen.
Shell
nano /home/pi/Temperatur/TemperaturGrafikErstellen.php


Die Pfade entsprechend anpassen:

rrdtool graph /var/www/TemperaturTag.png
....
rrdtool graph /var/www/TemperaturWoche.png
....
nano /home/pi/Temperatur/TemperaturGrafikErstellen.php
#6543613
Lesenswert?

dBase0 schrieb:
> Thomas G. schrieb:
>> grafana.png
>
> 110%Rel.Hum?

Ja, über 100% Hum geht, weil dann Tröpfchen in der Luft hängen.

> Zeno schrieb:
>> RRD-Tool hat den Vorteil die Daten zu komprimieren,
>
> Das geht doch mit influxdb auch, oder wofür ist die 'RETENTION POLICY'
> gut?

Sag ich doch. Nimm was Gescheites, was dann auch gleich funktioniert. In 
6h -9h hast Du dich in influxdb,  Grafana und Telegraf reingearbeitet. 
Dann hättest du was womit du die nächsten 10 Jahre anständig arbeiten 
kannst.
Mit dem Gefrickel, php Seiten, tausende scripts und CSV files als 
database verlierst du aber die nächsten 4 Wochen, und optisch sieht es 
am Ende trotzdem beschissen aus, und in 6 Monaten mußt du wieder von 
vorn anfangen weil alles vergessen wie es ging.
Ich weiß ja wovon ich rede, habe das alles hinter mir mit python, 
gnuplot, scripts ...
Gast #6544300
Lesenswert?

Hallo,

ich habe mich nochmals drangesetzt. Die Pfade in den beiden Dateien 
TemperaturGrafikErstellen und TemperaturGrafikErstellen.sh sind soweit 
korrekt. Nach wie vor wird die Datenbank aktualisiert und die beiden 
Grafiken werden auch in dem /home/pi/Temperatur/ abgelegt.
Moderator Persönliche Seite #6544332
Lesenswert?

Dann tu doch mal, was dir weiter oben schon mal empfohlen wurden ist. 
Die beiden Ausgabeumlenkungen (oder nur die zweite, bei der die Grafik 
ja erstellt wird) nach /dev/null auf eine richtige Datei umlenken:
1
*/5 * * * * cd /home/pi/Temperatur && sh TemperaturGrafikErstellen.sh >> /tmp/grafik.log 2>&1

Damit wird in /tmp eine Datei "grafik.log" angelegt und fortgeführt, die 
die Ausgaben des TemperaturGrafikErstellen.sh Scripts enthält, 
insbesondere auch mögliche Fehlerausschriften.

Wenn das allein dich auch noch nicht weiterbringt, kannst du noch 
stattdessen
1
*/5 * * * * cd /home/pi/Temperatur && sh -x TemperaturGrafikErstellen.sh >> /tmp/grafik.log 2>&1

machen. Die Option "-x" bewirkt, dass jedes Kommando vor seiner 
Ausführung "angesagt" wird. Damit kann man nachvollziehen, welche 
Kommandos in welcher Reihenfolge abgearbeitet werden.
Gast #6544357
Lesenswert?

user schrieb:
> Der Ordner var/www/ hat die Rechte des Users pi

Dann kann der Webserver die Grafiken vermutlich wegen Rechtemangel die 
Grafiken nicht lesen.

Mach doch mal ein
1
cd /var

und danach ein
1
ls -l

Die Ausgabe des letzten Befehls postest Du mal hier.

dBase0 schrieb:
> Das geht doch mit influxdb auch, oder wofür ist die 'RETENTION POLICY'
> gut?
influxdb kenne ich nicht, deshalb kann ich hierzu auch nichts sagen.

Thomas G. schrieb:
> Sag ich doch. Nimm was Gescheites, was dann auch gleich funktioniert. In
> 6h -9h hast Du dich in influxdb,  Grafana und Telegraf reingearbeitet.
Ach ja jetzt muß er sich schon in 3 Tools - Grafana, influxdb und 
Telegraf - einarbeiten. Toll!
Erläutere doch mal weshalb die von Dir favorisierten Tools was 
Gescheites und rrd-Tool was Ungescheites sind.
Der TO scheitert ja derzeit nicht am Erzeugen seiner Grafik, sondern 
ganz offensichtilich an den Rechten in einem Linuxsystem.
Moderator Persönliche Seite #6544383
Lesenswert?

Zeno schrieb:
> Der TO scheitert ja derzeit nicht am Erzeugen seiner Grafik, sondern
> ganz offensichtilich an den Rechten in einem Linuxsystem.

Und wenn rrdtool halt der Anlass ist, sich mal mit irgendwelchen 
grundlegenden Unix-Konzepten (Rechte von Dateien und Verzeichnissen, 
Ein-/Ausgabeumlenkung, Shellscript-Debugging) zu beschäftigen, dann wäre 
doch allein das schon Grund genug, es zumindest erst einmal "zu Fuß" zu 
machen, wie er es tut.

Wenn er dann mit dem Ergebnis nicht so recht zufrieden ist und lieber so 
ein Rundum-Sorglos-Paket haben möchte, hat er auf dem Weg dahin 
zumindest was gelernt.
Gast #6544482
Lesenswert?

> var/www/html --> ls -l

Ausgabe:
1
-rw-r--r-- 1 pi pi  202 Jan  6 20:18 index.html
2
-rw-r--r-- 1 pi pi 1098 Jan 10 14:26 index.php
3
-rw------- 1 pi pi 1098 Jan  7 20:37 index.php.save
4
-rw-r--r-- 1 pi pi  123 Jan  7 15:07 phpinfo.php
5
-rw-r--r-- 1 pi pi   50 Jan  5 19:18 phpinfo.php.save
6
-rw-r--r-- 1 pi pi   35 Jan  5 19:26 phpinfo.php.save.1
7
-rw-r--r-- 1 pi pi 2437 Jan  7 18:59 style.css
Gast #6544488
Lesenswert?

So ich habe nun mit crontab -e die Änderung mit der Logausgabe gemacht.
Es werden auch zyklisch die beiden Grafiken in dem /home/pi/Temperatur 
Ordner angelegt nur das kopieren/anlegen der beiden Dateien geht ja 
nicht in dem Ordner var/www/. Ich finde auch in dem ganzen Beispiel 
nicht eine Zeile wo dies veranlasst wird.
Gast #6544523
Lesenswert?

In dem gezeigten Beispiel scheint es einen Fehler zu geben. Und zwar bei
"Temperatur Grafik erstellen" müsste da nicht nach
"Das Script muss natürlich noch ausführbar gemacht werden"
> sudo chmod +x TemperaturGrafikErstellen.sh
statt
> sudo chmod +x TemperaturGrafikErstellen.php
stehen?

Es scheint auch, dass die Datei TemperaturGrafikErstellen.php nicht 
ausgeführt wird.
#6544795
Lesenswert?

Jörg W. schrieb:

> Und wenn rrdtool halt der Anlass ist, sich mal mit irgendwelchen
> grundlegenden Unix-Konzepten (Rechte von Dateien und Verzeichnissen,
> Ein-/Ausgabeumlenkung, Shellscript-Debugging) zu beschäftigen,....

Ja, sorry, das hatte ich nicht verstanden, ich dachte, daß er einfach 
nur Meßwerte so einfach wie möglich aufnehmen und darstellen wollte.
Sowas wollte ich vor 2-3 Jahren auch, und habe wochenlang mit solchen 
Frickeleien verbracht.
#6544887
Lesenswert?

Thomas G. schrieb:
> Jörg W. schrieb:
>
>> Und wenn rrdtool halt der Anlass ist, sich mal mit irgendwelchen
>> grundlegenden Unix-Konzepten (Rechte von Dateien und Verzeichnissen,
>> Ein-/Ausgabeumlenkung, Shellscript-Debugging) zu beschäftigen,....
>
> Ja, sorry, das hatte ich nicht verstanden, ich dachte, daß er einfach
> nur Meßwerte so einfach wie möglich aufnehmen und darstellen wollte.
> Sowas wollte ich vor 2-3 Jahren auch, und habe wochenlang mit solchen
> Frickeleien verbracht.

Naja, so einfach wie möglich ist ja gerade rrdtool: ein einfaches Tool, 
das der Unix-Philosophie folgt und mit dem man das Problem einfach lösen 
kann. Man muss natürlich einmal ein wenig Doku lesen. Aber normal sollte 
man das - wenn man kein Totalanfänger bzgl. Unix ist - in zwei bis drei 
Stunden alles problemlos durchgelesen und zusammengebaut haben. Man muss 
ja nicht die erweiteren Features (prediction, virtual data sources, 
komplexe Graphen …) benutzen.
Moderator Persönliche Seite #6544909
Lesenswert?

Ralf D. schrieb:
> wenn man kein Totalanfänger bzgl. Unix ist

Gerade das scheint der TE aber zu sein.

Dirk B. schrieb:
>> die Datei TemperaturGrafikErstellen.php
>
> sollte wohl auch im Verzeichnis vom Webserver liegen, so dass man sie
> vom Browser aus aufrufen kann.

Er hat ja aber den Weg gewählt, einen Shellscript vom cron aus aller 5 
Minuten zu rufen, d.h. sie werden nicht "on demand" dann vom Webserver 
erzeugt.

Viele Wege führen halt nach Rom.
#6545009
Lesenswert?

Ralf D. schrieb:
> Naja, so einfach wie möglich ist ja gerade rrdtool: ein einfaches Tool,
> das der Unix-Philosophie folgt und mit dem man das Problem einfach lösen

Ja, so z.B. im Tutorial: 
https://oss.oetiker.ch/rrdtool/tut/rrdtutorial.en.html

Next thing to do is to collect data and store it. Here is an example. It 
is written partially in pseudo code, *you will have to find out what to 
do exactly on your OS to make it work*.

   while not the end of the universe
   do
      get result of ...

Genau das Richtige für einen Anfänger. Damit wird er noch jede Menge 
Freude haben...
Moderator Persönliche Seite #6545016
Lesenswert?

Thomas G. schrieb:
> Damit wird er noch jede Menge Freude haben...

Wenn er etwas lernen will: ja.

Wenn er nur einfach etwas benutzen will: eher nicht.

Was von beiden für ihn zutrifft, hat er uns nicht verraten, wenngleich 
seine Fragen schon eher auf Variante 1 hindeuten. Wenn er nichts lernen 
wöllte, hätte er wohl schon längst das Handtuch geworfen.

Wenn er aber lernen möchte, sollte er dafür auch die Unterstützung der 
Mitforisten bekommen.
#6545909
Lesenswert?

Jörg W. schrieb:
> Ralf D. schrieb:
>> wenn man kein Totalanfänger bzgl. Unix ist
>
> Gerade das scheint der TE aber zu sein.

Dann sind Tool swie Grafana o.ä. aber auch nicht gerade einfach zu 
erlernen. Und damit bringen sie erst einmal keinen grundsätzlichen 
Vorteil gegenüber rrdtool.

Als Totaleinsteiger hat man da grundsätzlich erst mal viel zu lernen, 
egal ob man rrdtool oder eine der anderen Möglichkeiten nimmt.

Und eigentlich muss man sie sich alle einmal ansehen, um dann 
qualifiziert entscheiden zu können, welches Tool man einsetzt. Im 
nächsten Jahrzehnt. ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren