Sida 1 av 2
Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 19:57
av Niklas
Hej,
Jag loggar min bandbredd så här:
Den visar dock bara några timmar trots att den är ställd till -24h.
Så här ser koden ut som skapar DBn:
Kod: Markera allt
rrdtool create bandwidth5.rrd --start N DS:in:COUNTER:600:U:U DS:out:COUNTER:600:U:U RRA:AVERAGE:0.5:1:432
och koden som stoppar in datan i dbn:
Kod: Markera allt
in=`/usr/bin/snmpget -v 1 -c public -Oqv 192.168.1.1 IF-MIB::ifInOctets.5`
out=`/usr/bin/snmpget -v 1 -c public -Oqv 192.168.1.1 IF-MIB::ifOutOctets.5`
rrdupdate bandwidth5.rrd N:$in:$out
Imorse så började den på 06:00.
Någon som ser något fel?
Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 20:35
av elf98
Du har inte specat något step (-s --step), och defaultvärdet på 300sek kankse är borttappat?
Vad ger
för info?
Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 20:40
av Niklas
elf98 skrev:Du har inte specat något step (-s --step), och defaultvärdet på 300sek kankse är borttappat?
Vad ger
för info?
Umm.. jo. Step sattes till 55 sekunder... är det dumt? Jag kan ju ha missuppfattat vad step är till för.
Kod: Markera allt
filename = "bandwidth5.rrd"
rrd_version = "0003"
step = 55
last_update = 1233081543
ds[in].type = "COUNTER"
ds[in].minimal_heartbeat = 600
ds[in].min = NaN
ds[in].max = NaN
ds[in].last_ds = "434097054"
ds[in].value = 2.0122122078e+06
ds[in].unknown_sec = 0
ds[out].type = "COUNTER"
ds[out].minimal_heartbeat = 600
ds[out].min = NaN
ds[out].max = NaN
ds[out].last_ds = "79270001"
ds[out].value = 5.1480227822e+04
ds[out].unknown_sec = 0
rra[0].cf = "AVERAGE"
rra[0].rows = 432
rra[0].pdp_per_row = 1
rra[0].xff = 5.0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[0].cdp_prep[1].value = NaN
rra[0].cdp_prep[1].unknown_datapoints = 0
Det blir väldigt dumt om jag startar om routern också.
Då blir det väldigt höga överföringssiffror eftersom att räknaren då går tillbaka och startar från 0 igen i routern.
Hur kommer man tillrätta med det problemet?
Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 21:28
av PerM
Kort fråga bara, vad är det för router ni kör detta på och vad är det för mjukvara i den?
Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 21:46
av Niklas
PerM skrev:Kort fråga bara, vad är det för router ni kör detta på och vad är det för mjukvara i den?
Jag kör det inte på routern.
Jag har dock tellsticken och lite annat kopplat till routern. I mitt fall är det en ASUS WL500gP som även finns här i shoppen.
Den är flashad med x-wrt (OpenWRT i utvecklingsversion). Med lite pill så skulle jag även kunna köra OWFS på den.
Bandbredden får jag fram på alla gränssnitt genom att hämta data från routern via
SNMP.
Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 21:48
av CirruZZ
- Jag tror du får skapa en ny RRD fil med rätt STEP satt.
- Använd rrddump för att få ut den redan sparade datan.
- Sen använd rrdrestore för att stoppa tillbaka det i den nya filen.
Jag har inte testat själv så jag vet inte om det funkar

Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 21:49
av PerM
Aha, nu är jag med. Jag måste kolla om min stödjer gör det

Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 21:53
av Niklas
CirruZZ skrev:- Jag tror du får skapa en ny RRD fil med rätt STEP satt.
- Använd rrddump för att få ut den redan sparade datan.
- Sen använd rrdrestore för att stoppa tillbaka det i den nya filen.
Jag har inte testat själv så jag vet inte om det funkar

Men vad ska STEP vara bra för? Varför är det viktigt att den är rätt?
Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 21:54
av CirruZZ
Niklas skrev:.... I mitt fall är det en ASUS WL500gP som även finns här i shoppen.
Ok vart då?

Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 21:57
av elf98
step är databasens upplösning. Du lägger in värden med 55 sekunders intervall i din databas. Om du inte skickar in data med exakt 55 sekunders intervaller kommer rrdtool att räkna fram lämpliga värden och lägga in i databasen. Dina datakällor har en heartbeat på 600 sekunder. Heartbeat är hur länge det tillåts att inte komma värden innan en datakälla sätts som unknown. Om du skickar in data med 5 minuters intervall (300sekunder) kommer rrdtool att räkna fram ett gildande värde (eller vad man nu skall kalla det) över de 5 datapunkter som inte fått data på sina "riktiga" tidsstämplar.
Step bör vara en jämn multipel av 60 för att databasen skall vara effektiv samt för att du "enkelt" skall kunna plocka ut värden med valfri samplingsrate (om du har flera RRAer)
I ditt fall har du 432 datapunkter, din databas kommer därmed att täcka 432*55=23760 sekunder. Eller drygt 6.5h.
Gällande counter wraps:
NOTE on COUNTER vs DERIVE
by Don Baarda <
don.baarda@baesystems.com>
If you cannot tolerate ever mistaking the occasional counter reset for a legitimate counter wrap, and would prefer "Unknowns" for all legitimate counter wraps and resets, always use DERIVE with min=0. Otherwise, using COUNTER with a suitable max will return correct values for all legitimate counter wraps, mark some counter resets as "Unknown", but can mistake some counter resets for a legitimate counter wrap.
For a 5 minute step and 32-bit counter, the probability of mistaking a counter reset for a legitimate wrap is arguably about 0.8% per 1Mbps of maximum bandwidth. Note that this equates to 80% for 100Mbps interfaces, so for high bandwidth interfaces and a 32bit counter, DERIVE with min=0 is probably preferable. If you are using a 64bit counter, just about any max setting will eliminate the possibility of mistaking a reset for a counter wrap.
Dvs använd DERIVE med min=0 eller counter med ett max motsvarande din bandbredd.
Jag har för mig att ifInOctets är byte-värden.
Ex:
DS:in:COUNTER:600:U:1310720 (om du har en 10Mbits lina (10Mbit=10*1024Kbit=10*1024^2bit=10*1024^2/8Byte=1310720Byte))
DS:in:DERIVE:600:0:U
Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 21:58
av Niklas
CirruZZ skrev:Niklas skrev:.... I mitt fall är det en ASUS WL500gP som även finns här i shoppen.
Ok vart då?

http://shop.temperatur.nu/mat-temperatu ... -p-83.html
Men den är liksom.. fixad.

Den finns ju på andra ställen.. billigare om man vill göra det själv.
Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 21:59
av CirruZZ
STEP är kan man säga grundupplösningen på den sparade informationen. Dvs hur noga vill du att datasamlingen skall vara. Sen måste du se till att uppdatera i samma frekvens (lika ofta). Vad du sen kan göra är att sätta heartbeat (i definitionen av DS), dvs hur långt får det dra över innan det blir ett hål/glapp i serien. Lät det tillräckligt flummigt?!

Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 22:04
av CirruZZ
Niklas skrev:...
Någon som ser något fel?
Jag ser i alla fall ett nytt domännamn!

Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 22:05
av Niklas
CirruZZ skrev:Niklas skrev:...
Någon som ser något fel?
Jag ser i alla fall ett nytt domännamn!

Ja, jag tröttnade på min no-ip-adress.
elf98 skrev: *mycket text som jag ska försöka göra något bra av*
Om det är byte-värden eller ej vet jag inte men det ökar bara när det är trafik på porten. Det minskar aldrig förutom vid omstart.
Edit: Klart det är byte-värden. Vet inte vad jag svamlar om.
Min lina är på 2 Mbit (vilket jag får till 262144).
Ut har jag 0.5 (65536 om jag räknar på 512).
Om jag kör med standard, dvs 300 sekunder så är det alltså var 5e minut jag ska stoppa in data? Är det viktigt att det är exakt då alltså?
Jag vill gärna köra varje minut.
Hur ska min rrdtool create se ut exakt?

Idag ser den ju ut så här:
rrdtool create bandwidth5.rrd --start N DS:in:COUNTER:600:U:U DS:out:COUNTER:600:U:U RRA:AVERAGE:0.5:1:432
Re: Hjälp med RRD/bandbredd.
Postat: 27 jan 2009, 22:21
av elf98
Kod: Markera allt
rrdtool create bandwidth5.rrd --step 60 --start N DS:in:COUNTER:600:U:262144 DS:out:COUNTER:600:U:65536 RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:5:8640 RRA:AVERAGE:0.5:30:17520
Bör skapa en databas:
- Som förväntar sig data med 60 sekunders intervall.
- Som ser till att värden inte kan sticka iväg (om det blir knasiga värden vid en omstart sparas de helt enkelt inte)
- Som sparar 1min värden i 1440minuter (1dygn)
- Som sparar 5min medel 8640 gånger (30 dygn)
- Som sparar 30min medel 17520 gånger (1 år)
Jag kanske har tänkt fel, men du kan ju alltid testa!
Edit: Man kankse vill öka maxvärdena med en faktor ~1,5, så man inte missar något extremvärde?