HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Hur gör man för att ... ? Hur fungerar ... ? Steg för steg-guider och förklarande artiklar finns i detta forum.
Många guider finner också på vår blogg: https://blog.m.nu/
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Quart
Moderator
Inlägg: 566
Blev medlem: 17 jun 2007, 21:14
Ort: Hindås
Kontakt:

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av Quart »

jed skrev:Nästan rätt, byt ut nano mot vi så börjar vi närma oss ;)

Quart: om du bara editerar filen så kommer dina ändringar inte att köras. Du MÅSTE editera filen med kommandot crontab -e

Om du inte får upp nano med export EDITOR... som plutonium skrev så lägg till:
export VISUAL=/usr/bin/nano
innan export EDITOR=...

dvs:

Kod: Markera allt

export VISUAL=/usr/bin/nano 
export EDITOR=/usr/bin/nano
sudo crontab -e

För att lista det du har i crontab för root så kan du köra sudo crontab -l
Tackar, nu fick jag upp ett val och valde då nano och kunde då edita crontab.

Jag har fått igång det med grafer och allt !!!!
Kör på en gammal homebrew adpater så det blev lite mer pyssel men med hjälp av detta forum löste jag det.
Tack för denna underbara tråden, en Linux newbie lyckades !
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av CirruZZ »

Quart skrev:
Jag har fått igång det med grafer och allt !!!!
Kör på en gammal homebrew adpater så det blev lite mer pyssel men med hjälp av detta forum löste jag det.
Tack för denna underbara tråden, en Linux newbie lyckades !
:D Härligt när det funkar!
Quart
Moderator
Inlägg: 566
Blev medlem: 17 jun 2007, 21:14
Ort: Hindås
Kontakt:

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av Quart »

Kanske jublade lite för tidigt. :oops:
Får inte till cron jobben.
Kör jag sudo get_temp.sh och sedan graph_temp.sh så funkar det.
Men när jag lagt nedanstpende i crontab så vill den inte köra det enligt schemat.
*/2.5 * * * * /home/quart/bin/get_temp.sh
*/2.5 * * * * export LANG=sv_SE.utf8 && /home/quart/bin/graph_temp.pl

Måste vara något med rättigheterna på mina filer, men jag har kört sudo chmod +x get_temp.sh enligt guiden.
larky
Moderator
Inlägg: 1166
Blev medlem: 01 feb 2008, 12:21
Ort: Skellefteå
Kontakt:

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av larky »

Inget med sökvägarna inne i sjäva scriptet?
jed
Tar hemautomation på allvar
Inlägg: 179
Blev medlem: 16 apr 2011, 10:51
Ort: Stockholm

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av jed »

Quart skrev:Kanske jublade lite för tidigt. :oops:
Får inte till cron jobben.
Kör jag sudo get_temp.sh och sedan graph_temp.sh så funkar det.
Men när jag lagt nedanstpende i crontab så vill den inte köra det enligt schemat.
*/2.5 * * * * /home/quart/bin/get_temp.sh
*/2.5 * * * * export LANG=sv_SE.utf8 && /home/quart/bin/graph_temp.pl

Måste vara något med rättigheterna på mina filer, men jag har kört sudo chmod +x get_temp.sh enligt guiden.
Har du kört sudo crontab -e eller bara crontab -e?
Om du har kört skripten med sudo och sen kör crontab -r UTAN sudo så kommer den antagligen inte att fungera eftersom filerna den vill skriva ägs av root.

Prova att lägga till:
MAILTO=[din mailadress]
i början av filen, då kommer den att maila output till dig så du kan felsöka lite enklare.

Prova att byta ut */2.5 mot * också, då kommer skripten att köras varje minut istället. Det är inte alla versioner av cron som klarar */2.5...
Fungerar inte det så skicka med dina skript så kan jag kolla på dom.
Quart
Moderator
Inlägg: 566
Blev medlem: 17 jun 2007, 21:14
Ort: Hindås
Kontakt:

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av Quart »

citat:"Har du kört sudo crontab -e eller bara crontab -e?
Om du har kört skripten med sudo och sen kör crontab -r UTAN sudo så kommer den antagligen inte att fungera eftersom filerna den vill skriva ägs av root"

Det var nog problemet nu verkar den logga och skapa grafen som den skall
Tack !!
jed
Tar hemautomation på allvar
Inlägg: 179
Blev medlem: 16 apr 2011, 10:51
Ort: Stockholm

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av jed »

Kul att det funkar igen :)
hellgun
Tar hemautomation på allvar
Inlägg: 76
Blev medlem: 22 apr 2010, 12:16

Hur lagra historisk data?

Inlägg av hellgun »

Hej och tack för en bra guide!

En fråga dock...

Jag har historisk data sedan 7 månader tillbaka med 1 minuts upplösning och det är lagrat i textfiler. Finns det något smidigt sätt att läsa in dessa värden i RRDtool-databasen så att jag även får med det i mina grafer?

Formatet i textfilerna ser ut såhär:

Kod: Markera allt

2011-06-15 17:30	21,25
/Anders
jed
Tar hemautomation på allvar
Inlägg: 179
Blev medlem: 16 apr 2011, 10:51
Ort: Stockholm

Re: Hur lagra historisk data?

Inlägg av jed »

hellgun skrev: Jag har historisk data sedan 7 månader tillbaka med 1 minuts upplösning och det är lagrat i textfiler. Finns det något smidigt sätt att läsa in dessa värden i RRDtool-databasen så att jag även får med det i mina grafer?
Gå igenom filen och stoppa in alla värden mha rrdtool update [TIMESTAMP] istället för N: som står för NOW
Jag hackade ihop ett skript som kan göra det åt dig, jag utgår från att dina värden ligger i en fil som heter temps som ligger i /home/jed och att dina rrd-filer ligger enligt howto:n
Ligger dom någon annanstans så uppdatera $orgFile och $RRDFile i skriptet.

Det skriver ut lite data allteftersom det tuggar igenom filen och jag har kommenterat lite grann vad dom olika raderna gör.

Jag har inte testat det själv eftersom jag inte har rrdtool på den här datorn men det bör funka ;)
Som vanligt, ta backup på din rrd-fil INNAN du kör det här

Kör det från kommandoprompten genom att skriva:
php ./skript.php (skript.php ska bytas ut mot det du döpte skriptet till)

Kod: Markera allt

<?php

// input file
$orgFile = "/home/jed/temps";
// RRDfile
$RRDFile="/home/anders/rrddata/outside_temp.rrd";


$ptr = fopen ($orgFile, "r");

if ($ptr) 
{
        while (($tmp = fgets($ptr, 4096)) !== false)
        {
                echo "Processing row...";
                // Split the row 
                $fields = preg_split ("/\ /", rtrim ($tmp), 10, PREG_SPLIT_NO_EMPTY);

                // Replace , with . to make rrdtool update happy
                $temp = preg_replace ("/,/", ".", $fields[2]);

                // rrdupdate wants a unixtimestamp (ie # of seconds since 1/1-1970)
                $timestamp = mktime (substr ($fields[1], 0, 2), 
                                     substr ($fields[1], 3, 2), 
                                     0,
                                     substr ($fields[0], 5, 2),
                                     substr ($fields[0], 8, 2),
                                     substr ($fields[0], 0, 4));
                // Enough magic, lets update rrd
                exec ('rrdtool update $RRDFile $timestamp:$temp');

                echo "$fields[2] degrees, timestamp $fields[0] $fields[1] added to rrd\n";

        }
} else {
        echo "ERROR: Unable to open $orgFile\n";
}

fclose ($ptr);

echo "\nAll done!\n\n";
?>
hellgun
Tar hemautomation på allvar
Inlägg: 76
Blev medlem: 22 apr 2010, 12:16

Re: Hur lagra historisk data?

Inlägg av hellgun »

Ah, shit va snällt att du tog dig tid att mecka ihop ett skript!

Ska testa detta ikväll.

/Anders
jed
Tar hemautomation på allvar
Inlägg: 179
Blev medlem: 16 apr 2011, 10:51
Ort: Stockholm

Re: Hur lagra historisk data?

Inlägg av jed »

hellgun skrev:Ah, shit va snällt att du tog dig tid att mecka ihop ett skript!

Ska testa detta ikväll.

/Anders
Lugnt, satt och lyssnade på barnen som pratade lite förnöjt medans dom somnade :)
Hojta till om det strular så kan jag hjälpa dig!
look2
Gillar hemautomation
Inlägg: 37
Blev medlem: 04 sep 2008, 11:46
Ort: arboga

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av look2 »

En liten fundering, detta har väl egentligen ingenting med how-ton att göra, men det tas ju upp rrdtool frågor här så...

Om jag vill göra grafer för tex 24 timmar, 1 vecka, 1 månad, 1år då måste jag ha 4 script, som genererar fyra grafer?
Om jag då skulle ha 10st sensorer, så kan ju kanske det blir "grötigt" att se i en graf, så om jag vill göra en graf för bara en sensor så blir det ytterligare ett script? och om jag då vill ha samma historik på den så blir det 4 script?

Så till mina 10 sensorer kommer jag att behöva 40 script?
PatrikN78
Tar hemautomation på allvar
Inlägg: 99
Blev medlem: 24 dec 2011, 16:24
Ort: Jämjö

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av PatrikN78 »

Nja, ett räcker men man får tänka till lite och kanske skicka med några parametrar till scriptet beroende på vad du vill ha ut, typ:
DrawImg(1w, sensor_inne.rrd, innetemp)
look2
Gillar hemautomation
Inlägg: 37
Blev medlem: 04 sep 2008, 11:46
Ort: arboga

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av look2 »

Hmmm, har du någon länk till där just dessa grejer förklaras?
Man kanske skall läsa på det lite innan jag sitter och börjar göra alltför många script...
look2
Gillar hemautomation
Inlägg: 37
Blev medlem: 04 sep 2008, 11:46
Ort: arboga

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av look2 »

JAg har modifierat scriptet lite för att hämta data från flera sensorer. Men nu när jag lade till en 3:e sensor så har jag lyckats fårr något tecken fel. Skulle vara trevligt om någon kunde hjälpa mig att felsöka lite.

Scriptet:

Kod: Markera allt

#!/bin/bash

#global
RRDDataDirectory="/home/look2/rrddata/"
#sensors
KontorTempSensor="28.71AF6E040000"
OutsideTempSensor="28.EADD6E040000"
GastrumTempSensor="28.39C36E040000"
#datafiles
RRDDataFile1="kontor.rrd"
RRDDataFile2="outside_temp.rrd"
RRDDatafile3="gastrum.rrd"
# Get temps form OWFS
KontorTemp=`cat /mnt/1wire/$KontorTempSensor/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
OutsideTemp=`cat /mnt/1wire/$OutsideTempSensor/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
GastrumTemp=`cat /mnt/1wire/$GastrumTempSensor/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f",
$1}'`
#Update RRD database
rrdtool update $RRDDataDirectory$RRDDataFile1 N:$KontorTemp
rrdtool update $RRDDataDirectory$RRDDataFile2 N:$OutsideTemp
rrdtool update $RRDDataDirectory$RRDDataFile3 N:$GastrumTemp

echo Kontoret: $KontorTemp
echo Ute: $OutsideTemp
echo Gästrum: $GastrumTemp
output:

Kod: Markera allt

look2@fserv:~/bin$ sudo ./get_temp.sh
ERROR: opening '/home/look2/rrddata/': Är en katalog
Kontoret: 21.57
Ute: -2.68
Gästrum: 20.63
Skriv svar