RRDtool přes web

RRDtool přes web
« kdy: 10. 02. 2021, 09:54:50 »
Dobrý den.
Nenajde se tu někdo, kdo umi v RRDtool a zvladne ho i přes web a pomuže začatečnikovi?
Mam vytvořený graf pro 3 hodnoty a umím ho i krmit
rrdtool update /media/Disk/databaze_teploty.rrd N:teplota1:teplota2:teplota3

Našel jsem toto
https://github.com/oetiker/RrdGraphJS

Je tam index.html a v něm
Kód: [Vybrat]
<div><img
        style="width:695px;height:238px" class="graph"
        data-src-template="graphA?width={{width}}&amp;height={{height}}&amp;start={{start}}&amp;end={{end}}&amp;zoom={{zoom}}&amp;rand={{random}}"
    /></div>

    <div><img
        style="width:695px;height:238px" class="graph"
        data-src-template="graphB?width={{width}}&amp;height={{height}}&amp;start={{start}}&amp;end={{end}}&amp;zoom={{zoom}}&amp;rand={{random}}"
    /></div>


Neporadi někdo jak přes to načist moji databazi?

Neumím přes web ale vola se tam nějaký soubor graphA a graphB
Děkují za jakoukoliv pomoc či radu, ktera mi toto pomuže vyřešit.
« Poslední změna: 10. 02. 2021, 11:21:20 od Petr Krčmář »


McFly

  • ****
  • 389
    • Zobrazit profil
    • E-mail
Re:RRDtool přes web.
« Odpověď #1 kdy: 10. 02. 2021, 10:34:38 »

Re:RRDtool přes web
« Odpověď #2 kdy: 10. 02. 2021, 11:41:38 »
Tu stranku znam, je to ale psane v perl.
Už jsem se naučil přes bash vytvořit databazi, krmit ji i vygenerovat png fraf.
Ten web je ma slabina :-\

Jose D

  • *****
  • 640
    • Zobrazit profil
Re:RRDtool přes web
« Odpověď #3 kdy: 10. 02. 2021, 13:43:45 »
RRDtool

Možná by nebylo špatný zamyslet se nad tím, jestli v roce 2021 je smysluplný používat rrdtool. Zvlášť, pokud s tím začínáš, tak bych kouknul na influxdb, prometheus, či obecně time-series databáze používané v posledních 10 letech.

Re:RRDtool přes web
« Odpověď #4 kdy: 10. 02. 2021, 14:01:16 »
Ten web je ma slabina :-\

Pouzijte Rozhranní obecné brány


Re:RRDtool přes web
« Odpověď #5 kdy: 10. 02. 2021, 14:24:43 »
Zkoušel jsem influxdb, prometheus, Collectd, Monitorix a RRDtool se mi libi nejvic.
Pomuže někdo?

Re:RRDtool přes web
« Odpověď #6 kdy: 10. 02. 2021, 15:04:45 »
Primitivnejsi reseni:
Kód: [Vybrat]
<html>
<head>
<meta charset="utf-8"><meta http-equiv="refresh" content="300">
</head>
<img src="plot/rack_plot_1d.png">
...
</body>
</html>

mhepp

Re:RRDtool přes web
« Odpověď #7 kdy: 10. 02. 2021, 17:12:39 »
Nevím, jestli rozumíš tomu, do ten kód dělá - na základě Tvé interakce s webovou stránkou posílá požadavky na server, který generuje samotné obrázky a posílá je zpět browseru, který je zobrazí. Dříve jsem zkoušel něco podobného, ale bylo to na houby.

Osobně bych se na to vykašlal, pokud nutně nepotřebuješ interaktivní grafy. Nejjednodušší věc, co můžeš udělat, je primitivní CGI skript v Bashi. Ukázka stránky, kterou jsem dělal pro své potřeby je zde:

https://www.hepplerovi.cz/teploty/

Data i grafy jsou statické, takže se nic nebude aktualizovat. Ale celá stránka je generovaná skriptem gen_stranku.cgi a grafy jakési interaktivní grafy  skriptem graf.cgi. Oba jsou v archivu https://www.hepplerovi.cz/teploty/teploty.tar.gz

Tento skript již nepoužívám, jak je vidět na stránce. Data do RRD stále sbírám, ale spíš jen jako zálohu, takže puštěním skriptu jsem vyrobil nové obrázky. Grafy jsou tedy dnešní ;)

Pokud chceš interaktivitu, tak bych se raději podíval po Grafaně, jestli umí kreslit data z RRD. Tu používám nyní v kombinaci s Influxdb. Je to řešení jednoduché, skripty, kterými jsem plnil RRD jsem jen mírně upravil a plním s nimi Influxdb (přes collectd).

Re:RRDtool přes web
« Odpověď #8 kdy: 10. 02. 2021, 17:41:45 »
@ mhepp - Tak ja jsem to zas pochopil jinak.
Je tam toto.
data-src-template="graphA?width={{width}}&amp;height={{height}}&amp;start={{start}}&amp;end={{end}}&amp;zoom={{zoom}}&amp;rand={{random}}"

Takže v tom adresaři si vytvořim soubor třeba graf1.php

A při kliknuti na ten button ho zavolam a pošlu mu nastavene parametry

data-src-template="graf1.php?width={{width}}&amp;height={{height}}&amp;start={{start}}&amp;end={{end}}&amp;zoom={{zoom}}&amp;rand={{random}}"

A při kliknuti na ten button ten soubor graf1.php zavolam s parametry.
V tom souboru se za pomoci php-rrd vytvoři graf a odešle zpatky.

Ja to určitě dam, ale bez vás mi to bude dost dlouho trvat  :-\


Re:RRDtool přes web
« Odpověď #9 kdy: 10. 02. 2021, 21:01:00 »
Tak jinak.
Když tu moji stranku zavolam takto.

data-src-template="graf1.php?width={{width}}&amp;height={{height}}&amp;start={{start}}&amp;end={{end}}&amp;zoom={{zoom}}&amp;rand={{random}}"

Jak v te strance graf1.php načtu do proměn ty hodnoty, width, height, start atd?

cjohn

Re:RRDtool přes web
« Odpověď #10 kdy: 10. 02. 2021, 21:14:57 »
Tiez si myslim, ze v roku 2021 je rrd uz za zenitom (ja by som isiel do kombinacie InfluxDB + Grafana). Pokial predsa len chces rrd, tak mozes pozriet/skusit stary Zenoss 4.x - to je komplet monitoring s webom, ktory pouziva data v rrd.

Re:RRDtool přes web
« Odpověď #11 kdy: 10. 02. 2021, 21:20:10 »
InfluxDB + Grafana jsem take zkoušel.
Nejste tu ochotní mi pomoct s RRDtool a ja polezu do grafany.

Re:RRDtool přes web
« Odpověď #12 kdy: 10. 02. 2021, 21:26:41 »
Tak jinak.
Když tu moji stranku zavolam takto.

data-src-template="graf1.php?width={{width}}&amp;height={{height}}&amp;start={{start}}&amp;end={{end}}&amp;zoom={{zoom}}&amp;rand={{random}}"

Jak v te strance graf1.php načtu do proměn ty hodnoty, width, height, start atd?

Je to jinak nez si myslis. Co dela ten JS je, ze do data-src-template dynamicky vklada hodnoty a ceka, ze mu vratis obrazek podle parametru => musis si napsat backend, ktery to za tebe udela:
Kód: [Vybrat]
dej_obrazek.php?width={{width}}&amp;height={{height}}&amp;start={{start}}&amp;end={{end}}&amp;zoom={{zoom}}&amp;rand={{random}}
Napis si PHP dej_obrazek.php, ktere bude prebirat predane parematry a na zaklade toho vracet PNG obrazek pouzitim.

https://www.php.net/manual/en/function.rrd-graph.php

Chapes?

Re:RRDtool přes web
« Odpověď #13 kdy: 10. 02. 2021, 21:29:21 »
Jeste technicka, pokud nevis jak se nacitaji v PHP promenne z HTTP requestu, tak se na to radeji vybodni..

Re:RRDtool přes web
« Odpověď #14 kdy: 10. 02. 2021, 21:41:31 »
Takto v te HTML zavolam ten PHP  rrd.php
Kód: [Vybrat]
<img src="rrd.php" />
Kód: [Vybrat]
<?php
$opts 
= array(
    
"--start""-1d",
    
"--title=Bohdan",
    
"--width=800",
    
"--height=240",
    
"DEF:teplota1=/media/databaze_teplota.rrd:teplota1:AVERAGE",
    
"DEF:teplota2=/media/databaze_teplota.rrd:teplota2:AVERAGE",
    
"DEF:teplota3=/media/databaze_teplota.rrd:teplota3:AVERAGE",
);

  
$graphObj = new RRDGraph('-');
  
$graphObj->setOptions($opts);
  
$res $graphObj->saveVerbose();

  
header("Content-type: image/png");
  echo 
$res['image'];
?>

Alespon poradte, jak dosadit ty odeslane data?