Rrdtool Glidande Medelvärde


RRDtool skapa handledning och exempel. Rrdtool skapa bygga en databas Det läser inte ditt sinne. Innan du kan berätta för RRDtool vad du ska skapa måste du först bestämma vad du behöver och när du behöver det. Det här exemplet handlar inte så mycket om att klippa och klistra in , Det är att lära dig hur du kan översätta din idé till en fungerande inställning. Håll en titt på de siffror du ska ge till RRDtool senare. Vad representerar dessa siffror Hur förändras de. Ett vanligt exempel är en räknare som Hålls av en nätverksenhet och visar antal oktettbyte in eller ut enheten. Denna räknare startas vid någon tidpunkt och fortsätter att öka. I detta fall är du intresserad av skillnaden, deltaet, mellan två ögonblick i tiden Skillnaden Är mängden oktetter transporteras i det tidsintervallet. Ett liknande men mindre ofta sett exempel skulle vara räknaren på en elmätare. Detta är också en ständigt ökande räknare. Det resulterar i mängden kWh som används i ett tidsintervall. Men i detta ca Se du borde erkänna att kWh bara är ett annat sätt att räkna Joules, något som du verkligen vill veta senare i processen. En helt annan typ av input skulle vara en hastighetsmätare, enheten i en bil som visar hur snabbt du rör dig Antalet du får är redan en ränta Även om du får det i mph eller i km h, är det bara ett antal meter per sekund, om än givet i en annan enhet, som liknar kWh vs Joules. I stället kommer RRDtool att omvandla inmatningen det Kommer i en takt och kommer att normalisera dessa satser så att de passar in i väldefinierade tidsintervaller Det finns inget du kan göra åt det här, det är hur det fungerar Se priser, normalisering och konsolidering för en mer detaljerad förklaring av detta. Det är inget problem om du missbrukar RRDtool för att arbeta med data som inte är en takt, till exempel temperatur. Kom ihåg att RRDtool kommer att tro att det är en hastighet och ge den till RRDtool som om den redan är en takt. Det betyder mottyp GAUGE. Det finns många olika Exempel att tänka på Om du har en examen ple som är av allmänt intresse eller om du är villig att betala för min tid, vidarebefordra det till mig och jag kommer att arbeta ut här. Inmatningen är en hastighet, t. ex. eller bör behandlas som en takt, t. ex. temperatur. Inmatningen är ett ständigt ökande antal, t ex en oktetträknare i en router. RRDtool bör beräkna skillnaden mellan den senaste uppdateringen och den nuvarande, och dela den med tiden borttagen. Detta liknar COUNTER, förutom att ingången Kan minska Det här är användbart till exempel i en kWh-mätare när du producerar mer solkraft än du använder. I det fallet får du faktiskt en negativ hastighet. Detta ska användas när räknaren återställs varje gång den läses när människor börjar Räknas från noll och så vidare. Huvudskillnaden mellan ABSOLUTE och GAUGE är att ingången ännu inte är en hastighet. Den ska först divideras med tiden för att få en hastighet. Huvudskillnaden mellan ABSOLUTE och COUNTER är att RRDtool inte ska använda föregående inmatningsvärde för att beräkna sitt delta. När du har figur ed ut hur man bearbetar inmatningen måste du räkna ut hur du vill lagra de beräknade räntorna Det finns flera saker att titta på Först och främst behöver du veta hur mycket tid du vill kunna titta på. Också mycket viktigt är hur du vill kunna se på det här. Så du vill kunna se tillbaka ett år, du behöver fortfarande veta om du vill kunna zooma in eller om du bara vill titta på den stora bilden i andra ord om nu är 1 mars 2009 vill du titta på 2007-03-01 till 2009-03-01 eller vill du kunna titta på 2007-03-01 midnatt till nästa midnatt. Vad du behöver förstå här är konsolidering Säg att du kommer att titta på två års information och att tillgängliga data är i en upplösning på 300 sekunder per skopa. Det innebär att du har mer än 200 000 skopor. Om du ska visa detta på en bild av 400 pixlar bred, 500 av sådana skopor behöver passa in på kolumn av pixlar Att hålla de 200 000 skoporna är inte bara slöseri med utrymme jag F RRDtool måste göra alla dessa skopor passande på grafen, det måste fungera Beroende på processorns bearbetningsförmåga kan detta innebära en fördröjning av visning av dina diagram. Du kan instruera RRDtool att behålla historiska data på ett konsoliderat sätt, Lämplig för visning utan fördröjning som just nämnts Detta kräver viss planering, jag kommer att fördjupa mig vidare men vad om du vill kunna zooma in Inget problem, du kan berätta att RRDtool också håller data i sin ursprungliga hink storlek t. ex. Eller om du väljer det kan du berätta för RRDtool att bara hålla data i den ursprungliga hinkens storlek. Det är upp till dig. Bara vet att det är svårt att ändra dig när du har byggt din databas. I många fall måste du börja Överallt om du gör det. RRDtool använder RRAs RRDtool Arkiv för att lagra data Var och en av dessa RRAs är oberoende av de andra. Du kan ha en som lagrar data i en 300-sekunders upplösning och en annan som lagrar data i en 86400 sekunders upplösning Om du vill ha, yo Du kan var och en av dessa exempel innehålla samma tid, inget problem Det är bara en fråga om hur många rader du genererar i varje RRA. Så du kommer att generera bilder där det inre grafområdet är 360 pixlar brett Det är vanligtvis bäst om Du ställer in din RRD så att en av dess RRA matchar upplösningen på skärmen. Du kan göra detta i designfasen genom att justera storleken på varje hink eller du kan noggrant planera start - och sluttider. Om du har en RRA som lagrar data i en 86400 sekunders upplösning, och du visar 360 dagars information, det här är en bra passform Visa 180 dagar och varje dag kommer att vara 2 kolumner breda, inte mycket av ett problem Visa 720 dagar och RRDtool behöver fortfarande göra 2 hinkar i en pixel . Om du tittar på nätverksstatistik så att du kan veta hur mycket data som transporteras, vilket hjälper dig att bestämma om det är dags att expandera dina nätverkskapacitetsräknare, kommer det sannolikt att bli allt fler, tills en motbrytning sker så att den delen är enkel användning CO UNTER Också ganska ofta kommer de parvis inåt och utåt som sett från enheten. Du kommer att fråga enheten ungefär var 5: e minut, men du ger dig själv och din schemaläggning lite slack. Det finns dock en gräns för hur mycket du är beredd att Ge Om uppdateringar är längre än 10 minuter, gick det något fel och du kan inte förlita dig på nätverksräknarnas noggrannhet. Ett fel kan ha uppstått, vilket resulterar i en omstart av enheten. Du vet att enheten har vunnit t någonsin transportera mer än 100 Mbps, så vilken hastighet som helst högre än det är resultatet av något okänt fel någonstans på ett okänt ställe. Du vet inte varför det skulle hända om du inte alls vill att den ska dyka upp. Det är precis som ett säkerhetsnät. En av diskarna . Den andra räknaren är bara densamma, förutom sitt namn Ge följande till rrdtool create. Say du vill kunna visa de senaste 2 åren, de senaste 2 månaderna, de senaste 2 veckorna och de senaste 2 dagarna. Databasen använder standardstegstorlek på 300 sekunder per intervall. Första sak jag märker varje gång senast nämns Det betyder att inga extra rader måste vara närvarande för att tillåta inzoomning tidigare. Till exempel behöver du inte behålla data i en 300-sekunders upplösning under hela två år. Märka också omedelbart användningen av år, månad, vecka och dag. Dessa är inte fasta tidsintervaller Ett år kan vara 365 eller 366 dagar En månad kan vara 28 dagar, 29 dagar, 30 dagar, 31 dagar, det kan till och med vara en timme Mindre eller en timme mer eller 30 minuter mindre beroende på hur sommarbesparingar fungerar för dig På samma sätt är en vecka inte alltid 7 dagar och en dag är inte alltid 24 timmar. Detta är oanvändbart, och i detta exempel är det också onödigt Detta innebär att jag kan, ska och kommer att ändra begäran om att visa de senaste 720 dagarna, de senaste 60 dagarna, de senaste 14 dagarna och de senaste 2 dagarna, alla baserade på UTC-tid utan sommarbesparingar att överväga. Nu är det dags för att bestämma bredden på varje graf Första sak att göra är att titta på hur mycket tid med en stegstorlek på 300 sekunder är en dag lika med 288 steg. 720 288 207360 steg. Det verkar inte alltid vara så fin passform Bestäm själv vad du tycker om mer, se mer eller mindre tid än vad som ursprungligen planerades eller ha olika bildbredder. Oavsett vad du gör , se till att siffrorna är heltal Inte för att RRDtool behöver det det gör det, men för att det gör livet enklare. Antalet 360, 30, 7 och 1 är hur många steg som ska fyllas i när du skapar varje RRA Numret 576 är beloppet av rader att fylla i Detta lämnar två andra parametrar CF och xff, som jag förklarar inom kort Ge det här till RRDtool. RRA MIN 0 360 576 RRA MIN 0 30 576 RRA MIN 0 7 576 RRA AVERAGE 0 360 576 RRA AVERAGE 0 30 576 RRA AVERAGE 0 30 576 RRA AVERAGE 0 7 576 RRA AVERAGE 0 1 576 RRA MAX 0 360 576 RRA MAX 0 30 576 RRA MAX 0 7 576.MIN, AVERAGE och MAX bestämmer hur RRDtool ska konsolidera multipelräntor till en mer om detta i priser, normalisera och konsolidera om du är intresserad märker du att jag har 3 MIN och MAX RRA och 4 AVERAGE Detta beror på att minimum, medelvärde och maximalt bara en sats kommer alltid att vara samma jag behöver bara en av dem, inte alla tre. XFF, X-Files Factor, fick sitt namn eftersom det är oscientifict om du har det inställt på något annat nummer än Noll Det har att göra med okända data och hur det behandlas Vad är medelvärdet av Det enda svaret är okänt Fortfarande vill många svar 1 XFF bestämmer hur mycket av de ursprungliga data som kan vara okända och producerar fortfarande 1 eller något annan ränta Ett gemensamt värde är 0 5 vilket betyder att 1 men inte för detta exempel skulle 0 5 vara lämpligt men om du använder data för faktureringsändamål skulle det inte överväga genomsnittet Med XFF satt till 0 5 skulle detta var 100 i genomsnitt Chanserna är att de okända är resultatet av ett anslutningsproblem, i vilket fall det skulle vara orättvist att fakturera din kund för en hastighet på 100 under de okända intervallen. För kapacitetsplanering å andra sidan skulle du troligen ha sett en hastighet på 100 när inget avbrott skulle ha uppstått Th Men du kanske vill veta att det var ett avbrott även om du tittar på diagrammet som visar 2 år. Rrdtool create kommer också att acceptera en starttid Detta är bara viktigt om du har historiska data som du kommer att importera om du inte gör det gör det här, hoppa bara över parametern och RRDtool kommer att göra det rätta. Om du ska importera historiska data ställer du in detta till något innan de äldsta data du kommer att importera. Övriga parametrar är standardstorlek 300 sekunder och namnet på Filen som ska skapas. Hela exemplet är nu klart Detta är kommandot att ge till RRDtool, för det här exemplet case. rrdtool skapar DS ds0 COUNTER 600 0 12500000 DS ds1 COUNTER 600 0 12500000 RRA MIN 0 360 576 RRA MIN 0 30 576 RRA MIN 0 7 576 RRA AVERAGE 0 360 576 RRA AVERAGE 0 30 576 RRA AVERAGE 0 7 576 RRA AVERAGE 0 1 576 RRA MAX 0 360 576 RRA MAX 0 30 576 RRA MAX 0 7 576. Jag gillar att skriva mina skript lite annorlunda jag använd ett unix-skal, och skriv mitt skript som sådant. Det gör ingen skillnad när skalet brinner upp rrdtool, det får se samma kommando, kanske med lite mer white space, jag vet inte ens. Gillar du denna information Berätta för andra Don t du Berätta för mig. Den här sidan skapades av Alex van den Bogaerdt, en oberoende IT konsult Om du vill ge feedback eller om du vill anställa mig, vänligen se. Noter på RRDTOOL-implementering av Aberrant Behavior Detection. oetiker webbverktyg rrdtool är akronymen för Round Robin Database RRD är ett system för att lagra och visa tidsseriedata. Det lagrar Data på ett väldigt kompakt sätt som inte kommer att expandera över tiden och det presenterar användbara diagram genom att bearbeta data vid olika tidsmässiga upplösningar. RRDtool-mjukvaran är tillgänglig som en fristående applikation eller som ett PERL-bibliotek RRDtool är ett nimble-program som minimerar IO Operationer som krävs av realtidsuppdateringar till tidsserier Medan inte lika kraftfull som fullblåst databasprogramvara ger den funktionaliteten som krävs av en realtidsmiljö. Konvertering av uppdateringar vid irregistrering Ular intervaller i regelbundna intervall via linjär interpolation. conversion av motordata till rates. aggregation över användardefinierade tidsintervaller via flera aggregeringsfunktioner. Detta dokument beskriver implementeringen av avvikande beteende detektering för RRDTOOL Några bekantskap med internalerna i den aktuella versionen 1 0 25 av RRDtool antas, eftersom det här dokumentet hänvisar till den befintliga arkitekturen. Det finns flera anledningar till varför stöd för avvikande beteendeavkänning integrerades inom RRDtool, i motsats till genomförd som ett separat program. Dessa inkluderar. 1 Underlättar effektiv realtidsapplikation av avvikande beteendeavkänning Integration erbjuder större effektivitet relativt ett externt program med hänsyn till IO-åtkomst Ett externt program skulle ha hämtat data från RRD vid samma uppdateringsfrekvens, medan kod inom RRD fungerar på dessa data redan In-memory Effektivitet blir en högsta prioritet för servicenätverket på IAP ISP-nivån, där RRDtool kan vara en viktig del av övervakningssystemet av hundratals nätverksgränssnitt och applikationstjänster. 2 Leveransförmåga för RRDtool att utföra de tidsmässiga interpolationsdatauppdateringarna med oregelbundna intervall och omvandling av räknare till räntor. 3 Tillämpar grafisk förmåga RRDtool Grafer kan genereras för att visa resultaten av avvikande beteende detektering med hjälp av befintliga funktioner i RRDtool. 4 Levereras klientprogramvara som är utformad för att köras med RRDtool i e Cricket. Aberrant behavior detektering sönderdelas i tre stycken, varje byggnad på dess föregångare. 1 En algoritm för att förutse värdena för en tidsserie en gång går in i framtiden. 2 Ett mått på avvikelse mellan de förutsagda värdena och de observerade värdena. 3 En mekanism för att bestämma om och när ett observerat värde eller en följd av observerade värden är för avvikande från det förutspådda värdet s. Holt-Winters Time Series Forecasting Algoritm är en online eller inkremental algoritm som adaptivt förutspår framtida observationer i en tidsserie Det är prognosen är summan av tre komponenter en baslinje eller avlyssning, en linjär trend över tiden eller lutningen och en säsongskoefficient en periodisk effekt, såsom en daglig cykel. Det finns en säsongskoefficient för varje tidpunkt i periodcykeln. Efter en värdet observeras, var och en av dessa komponenter uppdateras via exponentiell utjämning. Algoritmen lär sig från tidigare värden och använder dem för att förutsäga framtiden. Adaptationshastigheten regleras av 3 parametrar alfa-avlyssning, beta-lutning och gammasäsong. Förutsägelsen kan också ses som ett jämnt värde för tidsserierna. Avvikelsens mått är en säsongsvägd absolut avvikelse. Termen säsongsmedel avvikelse mäts separat för varje tidpunkt i säsongscykeln Som vid Holt-Winters prognos, förutspås avvikelse med hjälp av mätningen beräknad från tidigare värden men endast vid den punkten i säsongscykeln. Efter att värdet observerats, lär algoritmen från det observerade värdet via exponentiell utjämning. Skalera sekvens av förutspådda avvikelsevärden för den observerade tidsserien genererar förtroendeband vi brukar tänka på sekvenserna som kontinuerliga linjer snarare än som en uppsättning av diskreta punkter. Avvikande beteende ett potentiellt fel rapporteras när antalet gånger det observerade värdet bryter mot konfidensbanden Uppfyller eller överstiger ett angivet tröskelvärde inom ett angivet temporärt fönster, dvs 5 överträdelser under de senaste 45 minuterna med ett värde som observerats var 5: e minut. Detta avsnitt beskriver arkitekturen för implementeringen av avvikande beteende detektering i RRDtool. On disken, round robin databasen RRD är organiserad i sekventiella sektioner, round robin arkiv RRA Inom varje RRA är en sekti på för varje datakälla som lagras i denna RRD Varje RRA definieras av en konsolideringsfunktion som kartlägger primära datapunkter PDP till konsoliderade datapunkter CDP På en annan nivå är en RRA bara en uppsättning datavärden som uppdateras i följd enligt till viss funktion vid ett visst tidsintervall. Vid sitt ansikte behöver avvikande beteendealgoritmen minst två uppsättningar, en för att lagra prognosvärdena som motsvarar varje primär datapunkt och en sekund för att lagra den förutsagda avvikelsen som motsvarar varje primär datapunkt. As genomförd lagras säsongskoefficienterna och avvikelserna som används för att beräkna prognosen och förutsagda avvikelser i ett andra par RRAs. Dessa arrays har längd lika med säsongsperioden och uppdateras en gång för varje primär datapunkt. Failurer spåras av en femte RRA, som bestämmer brott och misslyckanden vid varje uppringning till RRD-uppdatering. Avlyssnings - och lutningskoefficienterna som krävs för prognosen uppdateras för varje primär mary datapunkt och är unika för varje datakälla DS De kan lagras i ett andra par RRAs. Endast det senaste värdet av varje krävs för en viss prognos. Som implementeras lagras dessa parametrar i en temporär buffert i rubriken allokerad för varje RRA-datakälla kombination i RRD-CDP-prep-området Denna buffert spolas tillbaka till disken vid varje samtal till RRD-uppdatering. Anpassningsparametrarna är fasta för RRA-livets livslängd och är desamma för alla datakällor inom RRA De lagras i RRA-parameterbufferten i RRA def, som endast läses under RRD-uppdatering. Därför lägger implementeringen av avvikande beteendealgoritmen fem nya konsolideringsfunktioner till RRDtool. 1 HWPREDICT en uppsättning prognoser beräknade av Holt-Winters-algoritmen, en för varje primär datapunkt HWPREDICT-matrisen beror på en serie av typ SEASONAL för uppslagning av säsongskoefficienter Indexet för denna SEASONAL-array lagras som en parameter för HWPREDICT RRA . 2 SEASONAL en uppsättning säsongskoefficienter med längd lika med säsongsperioden För varje primär datapunkt finns en säsongskoefficient som matchar indexet i säsongscykeln För att uppdatera säsongskoefficienterna via exponentiell utjämning beror SEASONAL RRA på HWPREDICT RRA Indexet för matchande HWPREDICT RRA lagras som en parameter. 3 DEVPREDICT en rad avviksförutsägelser Väsentligen kopierar DEVPREDICT värden från DEVSEASONAL-arrayen det gör ingen behandling av sitt eget Indexet för DEVSEASONAL-arrayen lagras som en parameter. 4 DEVSEASONAL en uppsättning säsongsavvikelser För varje primär datapunkt finns en säsongsavvikelse som matchar indexet för den primära datapunkten i säsongscykeln. För att beräkna avvikelser måste DEVSEASONAL RRA kunna beräkna det förutspådda värdet och så Beror på HWPREDICT RRA Indexet för matchande HWPREDICT RRA lagras som en parameter. 5 FELERAR en rad booleanska indikatorer, a 1 som anger ett fel RRA-DS-bufferten lagrar varje värde i fönstret Varje uppdatering tar bort det äldsta värdet från den här bufferten och infogar den nya observationen. Vid varje uppdatering omräknas antalet överträdelser Maximalt Fönsterlängd som verkställs av denna buffert är 9 tidspunkter För jämförelse med avvikelser beror FAILURES RRA på DEVSEASONAL RRA Indexet för matchande DEVSEASONAL RRA lagras som en parameter. Detta avsnitt illustrerar hur man använder algoritmen för avvikande beteende i RRDtool genom ett exempel. Vårt övervakningsmål kommer att vara ett router-gränssnitt på en länk mellan två datacenter i webbtjänsten för produktionstjänsten. Variabeln kommer att vara den utgående bandbreddshastigheten i Mbps Bandwidth-användningen följer en daglig cykel och SNMP pollas vid fem minuters mellanrum. första steget är att skapa en RRD för det här målet med avvikande beteende upptäckt aktiverat För att förenkla skapandet för nybörjaren, i annonsen för att stödja uttrycklig skapande av HWPREDICT, SEASONAL, DEVPREDICT, DEVSEASONAL och FAILURES RRA, stöder det förbättrade kommandot RRDtool create implicit skapandet av de övriga fyra när HWPREDICT är specificerat ensam. Använd följande syntax. array längd för att utnyttja detta. Antal förutsägelser som ska lagras före omslaget måste detta antal vara längre än säsongsperioden. Detta värde kommer också att vara RRA-räkna för DEVPREDICT RRA. alpha är parametern för avlyssningsanpassning, som måste falla mellan 0 och 1 Ett större värde betyder Avlyssning anpassas snabbare Samma värde kommer också att användas för gamma. beta är höjningsanpassningsparametern, återigen mellan 0 och 1.period är antalet primära datapunkter under säsongsperioden. Detta värde kommer att vara RRA-radantalet för SEASONAL Och DEVSEASONAL RRAs. Using detta alternativ skapar FAILURES RRA med standardfönsterlängden 9 och ett standard tröskelvärde på 7 Standardlängden för FAILURES RRA är en period d. For exemplet är skapa kommandot. rrdtool skapa s 300.När explicit skapande av ytterligare RRA är ett sätt för finare kontroll, kan vissa parametrar ändras med hjälp av tune-kommandot. Förbättrad RRDtool stöder flera nya melodier. Längd - felstorlek --alpha --beta gamma deltapos --deltaneg. Vart och ett av dessa flaggar tar ett enda argument. Syftet med argumentet är självklart. Gammal flaggan återställer anpassningsparametern för både SEASONAL och DEVSEASONAL RRAs ställer in båda till samma värde .-- deltapos och deltaneg ställer in skalparametern för respektive övre och nedre konfidensband, standardvärdet för båda är 2 ett symmetriskt konfidensband. Antag exempelvis att vi är missnöjda med standardfönstret längd och tröskel för FAILURES RRA implicit skapad av det föregående kommandot Issue the command. rrdtool tune - window-length 5. Återstoden av exemplet använder standardfönsterlängden 9 och standard tröskeln för 7. I vissa fall, Det är nödvändigt med en explicit utformning av RRA: n. Antag att nätteknikern endast är intresserad av att utjämna observerade tidsserier, inte förtroendeband eller avvikande beteende Detektering av Holt-Winters prognos algoritmen kan ses som en utjämningsalgoritm. I det här fallet kan han uttryckligen skapa HWPREDICT och SEASONAL RRAs utan de andra. Använd denna syntax. RRA HWPREDICT längd alfa beta period index av SEASONAL. RRA SEASONAL period gammalindex av HWPREDICT. Argumenten av HWPREDICT är desamma som tidigare med tillägg av. index av SEASONAL 1-baserade Indexet för SEASONAL-matrisen i RRA-ordningens order anges i skapa-kommandot. Argumenten för SEASONAL RRA är. period är antalet primära datapunkter under säsongens period. Det måste matcha det värde som anges av periodens argument av HWPREDICT. Det måste Vara ett heltal större än 2.gamma är anpassningsparametern för säsongskoefficienter, som måste värdera mellan 0 och 1.index av HWPREDICT 1-baserat index för HWPREDI CT-array i order-RRA-värdena anges i skapa-kommandot. Förtroendeband kan skapas oberoende av avvikande beteende-detektering. Skapa i så fall de fyra RRA: erna HWPREDICT, SEASONAL, DEVSEASONAL och DEVPREDICT, men utelämna felet RRA. Använd denna syntax. RRA HWPREDICT längd alfa beta period index av SEASONAL. RRA SEASONAL period gammal index av HWPREDICT. RRA DEVSEASONAL period gammalindex av HWPREDICT. RRA DEVPREDICT array längd index av DEVSEASONAL. Argumenten av HWPREDICT och SEASONAL är samma som tidigare DEVSEASONAL och DEVPREDICT argumenten Are. period är antalet primära datapunkter under säsongens period. Det måste matcha det värde som anges av periodargumentet för HWPREDICT och SEASONAL-arraysna, denna begränsning kan lyftas i ett framtida genomförande. Det måste vara ett heltal större än 2.racklängden är antalet avvikelser att lagra före omslaget, detta nummer måste vara längre än säsongsperioden. Gamma är anpassningsparametern för säsongsbetonad avvikelser som måste värdera mellan 0 och 1 Det behöver inte matcha anpassningsparametern för SEASONAL array. index av HWPREDICT 1-baserat index för HWPREDICT-arrayen i ordningen RRAs anges i skapa command. index av DEVSEASONAL 1-baserade index av DEVSEASONAL-matrisen i order-RRA-värdena anges i skapa-kommandot. Slutligen kan FAILURES RRA skapas explicit med syntaxen, men åtminstone måste HWPREDICT, SEASONAL och DEVSEASONAL arrayerna också skapas. Om konfidensband är också önskad, skapa DEVPREDICT. Use den här syntaxen. RRA FELAKTIGHETER längd tröskeln fönsterlängd index av DEVSEASONAL. length är antalet indikatorer 0,1 värden att lagra före omslag A 1 indikerar ett misslyckande som är antalet överträdelser i det sista Observationsfönstret uppfyller eller överstiger tröskelvärdet. Tröskeln är det minsta antalet överträdelser inom ett fönster observerade värden utanför konfidensgränserna som utgör en failure. window-längd är antalet tidspoäng ints i fönstret Ange ett heltal som är större än eller lika med tröskelvärdet och mindre än eller lika med 28 det maximala värdet. index för DEVSEASONAL 1-baserade indexet för DEVSEASONAL-matrisen i order-RRAs anges i skapa-kommandot. Avvikande beteende detekteringsalgoritmen kräver inget ovanligt för RRDtool Update-kommandot, så att insamlingsmekanismen, dvs Cricket påkallar SNMP, körs normalt. Nu antar att det har gått någon tid och nätverks tekniker övervakar utgående bandbredd vid routerns gränssnitt. Han kan se en graf över daglig aktivitet, inklusive självförtroende band och eventuella misslyckanden med följande kommando. rrdtool-graf. TICK-misslyckande ffffa0 1 0 Fel i genomsnittliga bitar ut. LINE2 scaledobs 0000ff Genomsnittliga bitar ut. LINE1 skaladupper ff0000 Övre Bundet Genomsnittliga bitar ut. LINE1 skalade löften ff0000 Nedre gränser Genomsnittliga bitar ut. TICK är ett nytt grafikalternativ i RRD-verktyget För varje icke-nollvärde i DEF - eller CDEF-argumentet plottar det ett fältmärke. Markeringslinjens längd är specifi Ed av det tredje argumentet efter färgkoden som en decimalprocent av y-axeln 1 0 är 100 av längden på y-axeln, så kryssmarkeringen blir en vertikal linje i diagrammet. Här är ett exempel på denna dagliga graf som genereras den ons 31 maj 2000 för det tidigare beskrivna routerns mål. De tunna röda linjerna är konfidensbanden och de gula stavarna representerar fel som faktiskt är flera fel i följd när det observerade värdet strömmar utanför konfidensbandet det förblir utanför banden för ungefär en två timmarsperiod i båda fallen TICK-graf-alternativet genererade de gula staplarna från FAILURES RRA. Grafen föreslår att bandbredd på denna utgående länk ökar snabbare än vad som förväntas av modellen tidigare historik. Det är upp till nätteknikern att bestämma om Detta representerar avvikande beteende av intresse Ett tillvägagångssätt som tekniker kan ta är att se tidsserierna för detta routerns gränssnitt under en längre tidsperiod. Med efterhand är det enkelt att visa något unu Sual pågår och avvikande beteende detekteringsmodell fångar det i realtid Här är tidsserierna för veckan och halvperioden från 24 maj 2000 till 2 juni 2000. Det är uppenbart att ons den 31 maj är ovanlig bandbredd Ökar i två steg en gång tidigt på morgonen och igen i början av eftermiddagen. I detta fall kan dip till 0 i tidig morgon och det följande hoppet hänföras till en schemalagd nedetid för servicenätverket. Kanske resten av bandbreddsaktiviteten på Ons har samma orsak, i vilket fall detekterat avvikande beteende är en falsk positiv i nätverksteknikerens ögon. Givet exemplet är det uppenbart att det finns många fördelar med avvikande beteendeupptäckt, men det komplicerar programmets implementering och påverkan runtime prestanda Dessa detaljer diskuteras i detta avsnitt. För de fem avvikande detekterings-RRA: erna, varje gång en primär datapunkt PDP beräknas av rrdupdate, uppdateras var och en av RRA: erna. Detta översätts till fem additi Skivan söker skrivoperationer Vidare kräver SEASONAL och DEVSEASONAL RRA: erna en söklägesoperation Medan antalet ytterligare skivoperationer är oberoende av antalet datakällor och dessa operationer utförs sekventiellt när det är möjligt, dvs försöker undvika att röra sig bakåt i filen, Dessa operationer lägger till betydande IO-kostnad i förhållande till en RRD utan avvikande detekterings-RRA. I en konventionell RRD-fil finns det vanligtvis bara en RRA som uppdateras för varje PDP, vilket endast kräver en enkel sökskrivning. Efter uppdateringen uppkommer cdpprep-områdena av HWPREDICT och SEASONAL RRAs innehåller tillräcklig information för att göra en prognos för framtida värden. Nästa förutspådda värde kan beräknas med följande formel. Redovisning avgränsar lutningssekvenslängden av okända värden 1. Avlyssningen lagras i CDPhwintercept-medlemmen i cdpprep-området av HWPREDICT RRA och datakällan av intresse Höjden lagras i CDPhwslope-medlemmen av cdprrep-området för HWPREDICT RRA Expressionen, sekvenslängd för okända värden 1, lagras som CDPnullcount-medlemmen i CDPPP-området för HWPREDICT RRA. Slutligen lagras säsongskoefficienten i CDPhwseasonalmedlemmen i cdpprepområdet för SEASONAL RRA och datakällan av intresse. Detektering av avvikande beteende behöver inte beräkna förutsägelsen förrän det förutspådda värdet redan har observerats, men det är tänkbart att en annan applikation kanske vill ha förutsägelsen innan värdet observeras. Detta kan underlättas i framtiden genom att lägga till ett nytt samtal, rrdpredict, för att läsa lämpliga buffertar av HWPREDICT och SEASONAL RRAs och beräkna förutsägelsen. Isolerade eller sekvenser av okända U-värden är i allmänhet inte ett problem för Holt-Winters-algoritmen, antingen vid prognoser eller vid uppdatering av värden I grund och botten, för ett okänt värde, uppstår ingen uppdatering. Algoritmen kan faktiskt förutse flera steg in i framtiden, förutsatt att initialiseringsfasen är fullständigt. En bulkuppdatering kan inträffa när ett tidsintervall mellan observerade värden överstiger stegstorleken. I det här fallet genererar det observerade värdet mer än en primär datapunkt. Om intervallet överskrider hjärtrytmen hos en datakälla, kommer alla mellanliggande primära datapunkter Kommer att ställas in på okänd U, annars kommer de att ställas till samma lika värde. Bulk uppdateringar skapar en komplikation för de avvikande detekterings-RRA: erna, som uppdateras för varje primär datapunkt. Det primära problemet är kostnaden för att beräkna förutsägelsen och förutsagt avvikelse Till skillnad från fallet med den konventionella konsolideringsfunktionen, dvs medelvärdet eller maximalt, är de interim-konsoliderade datapunkterna CDP för de avvikande detekterings-RRA: erna inte identiska och måste beräknas separat. Denna beräkningskostnad åt sidan, det finns implementeringsproblem relaterade till de ömsesidiga beroendet mellan avvikande detektering RRAs För att beräkna förutsägelserna och förutsagda avvikelser i följd kräver varje RRA sin beroende R RAs to be synchronized at the same time point However, the architecture of the rrdupdate function is to process each RRA independently of the others This architecture is imposed by the optimization that writes to each RRA occur in sequence. Given in these issues, updates in excess of 2 CDPs per observed value that is, an observed value which translates into more than 2 PDPs are not currently supported by the aberrant detection implementation The intermediary CDPs are set to U In the future, the implementation may support bulk updates, especially as algorithm can handle sequences of U values as input. The implementation is designed to use bootstrap initialization The intercept coefficient is initialized to the first known value The slope is initialized to 0 this initialized is predicated on the assumption the linear trend over time is close to 0 If this is not the case, the time required for the Holt-Winters algorithm to gravitate away from 0 will depend on the seasonal adaptation paramet er, gamma During the first seasonal cycle of known values, seasonal coefficients are initialized During the second seasonal cycle of known values, seasonal deviations are initialized. The sensitivity of the algorithm to the initial values the first two cycles , declines over time as determined by the adaptation parameters The weight of the initial value persists longer than subsequent values For example, given a daily cycle, no periodic smoothing, and gamma 0 1, the weight of the initial value in the tenth iteration day seasonal component is 0 4 In contrast, the weight of the second day observation at the same point in the cycle is only 0 04.Unknown values during the first two seasonal cycles can complicate the cold-start The implementation initializes any coefficients it can during the first two cycles If some coefficients remain unknown due to unknown values, they are initialized during the first subsequent cycle with known value at that time point in the cycle As the first value of a COUNTER data source is always unknown, the minimum cold-start period for COUNTER data sources is three seasonal cycles. Reflecting the belief that seasonal coefficients and deviations are smooth periodic functions of time, the implementation periodically runs a moving-average smoother with a window of 5 of the period on the DEVSEASONAL and SEASONAL RRAs This operation requires reading all DEVSEASONAL and SEASONAL RRA values from disk, updating them, and flushing them back to disk. The smoother is run once per period, at an offset determined by a FNV hashing algorithm on the file name of the RRD file The intent of the hashing algorithm is to prevent temporal clumping of smoothing operations for multiple RRD files as RRDTOOL usually runs in a environment with multiple RRD files. The rradef parameters and cdpprep areas provided by the RRD structure definition are sufficient to store all necessary parameters on disk in and in memory for the aberrant behavior detection algorithm, previously t he dump and restore to from XML functions did not fully support the import export of these data structures The implementation now flushes all RRA parameters to XML using the param tag on dump and the restore function reads the new tags The contents of the cdpprep areas are written as before, marked by the ds tag To identify the new XML format, the implementation uses a version tag of 0002.The following list describes files modified from the current release 1 0 25 of RRDtool to implement aberrant behavior detection. rrdcreate c support for creation of HWPREDICT, SEASONAL, DEVSEASONAL, and DEVPREDICT RRAs. rrddump c support for exporting rradef par and cdpprep scratch variables. rrdrestore c support for importing rradef par and cdpprep scratch variables. rrdhw c main routines for updating Holt-Winters RRAs smoothing routines FIFO queue implemetation. rrdupdate c call routines in rrdhw c as appropriate rewrite for efficient bulk updates. rrdgraph c add data reduction support for HWPREDICT, SEAS ONAL, DEVSEASONAL, and DEVPREDICT RRAs adding the TICK graph element. rrdformat h add enumeration values for reference in RRA and CDP scratch arrays. rrdtool h function prototypes, FIFO queue method prototypes. hash32 c implementation of FNV hash. fnv32 h header file for FNV routines. Creating RRD graphs in PHP. Posted by Joshua Thijssen on February 23, 2011.You may not be familiar with the term RRD graph, but if I show you one you probably recognize them instantaneously They are used to plot all kind of data against time in a very easy way which is why they are used a lot in all kind of applications Even though many consider RRD as a library to create graphs, it is actually more than that it s a complete system to store aggregated data in a very efficient way. RRD stands for Round Robin Database It is a database for collecting all kinds of data against time The round robin stands for the fact that only a certain amount of data points can be stored When we reach the end of the database, it wi ll wrap back to the begin again This means that RRD database files will never grow in size. Every RRD works with a step rate , which tells us how far the data points are located from each other Normally this is 300 seconds 5 minutes so all data is stored in a 5 minute interval This doesn t mean you only can add data every 5 minutes though You can add as much data into the RRD and at any time you like The RRD will combine this data into a data point If you have a default step rate of 5 minutes but you add some data every minute to your RRD, it will average these 5 values into 1 data point As you can image, RRD s are not really for storing actual data, but just for graphical and statistical usages. Getting the extension. Before we can do something useful with RRD, we need to install the RRD extension If you are running on CentOS you are in luck The RPMForge repository provides a php5-rrdtool package which you can install with yum install php5-rrdtool On a Debian or Ubuntu system there is no default package but it s very easy to build from the source. If you cannot build the extension or you cannot find anything working, no fear You can still use the command line version of RRDTool to try all examples. Our RRD example. The best way to get acquainted with RRD is to actually create one Suppose you want to display some statistics of users that have logged into our web-application and we want to see the number of failures that have occurred, for instance, when a user has entered a wrong password We want to view this data in a daily graph, a weekly graph, a monthly graph and maybe a yearly graph as well. Creating our database file. As said, RRDtool is more or less a database so we much define some kind of schema In order to do this, we can use the rrdcreate function or the rrdtool create command line version There are two different things we need to configure the data sources and the round robin archives The data sources tells you what to store whereas the round robin archives tell s you how to store it. Setting up data sources. The data sources describe the actual data we want to store In our case we want to store 2 kind of data points the number of succeeded log-ins, and the number of failed log-ins We call them success and failed respectively These data sources are ABSOLUTE types, which means the data is reset after every point collection There are other types, depending on the type of data you want to store. Furthermore, we need to specify a heartbeat This means that when no data source is recorded in this amount of time, RRD will consider the data point as unknown which is something different than 0.The last 2 items we have to specify is the lower and upper boundary of the data source If we would have data source that is given in percentages for instance, your server s used disk space in percentage , we could specify an lower limit of 0, and an upper limit of 100 Since we deal with log-in attempts, we can only specify the lower boundaries We set the upper bound ary to U unknown. Setting up the RRA. Now that we know WHAT to store, we must tell RRD how to store the data As said, data is stored in a cyclic round robin way so we must define the amount of room we want to use We want to have 4 different graphs daily, weekly, monthly and yearly This however does not mean we need to have 4 RRA s RRD can decide which RRA s it will use to graph data. Each RRA is defined in the following format. The cf stands for consolidation function and can be either AVERAGE, LAST, MIN, MAX It defines how the data points get aggregated AVERAGE will average the points, LAST will store the last point, MIN will store the lowest point found and MAX the highest The xff should be set to 0 5, and steps decide how many points get consolidated, rows is the amount of points it will store eventually. I ve decided to create 3 RRA s one stores the single 5-minute samples for a period of 1 day 12 points per hour times 24 hours 288 points , one stores 1 hour samples 12 points for 1 week 24 7 points and one stores 1 day 288 points samples for a year 365 points. Off course, we could have stored each 5-minute point for a period of 1 year, but we would have to store 12 24 365 105120 points By storing in a consolidated way, we have an efficient way of storing the data while we still maintain enough information for plotting our graphs. Updating your data. RRD must collect data on fixed intervals We should have a separate system like a cronjob that collects the amount of data and updates the RRD accordingly If we don t update on time as specified by the heartbeat , we get unknown points which causes empty spots in our graphs later on The next snippet will simulate login successes and failures ranging back from 180 days ago until now. Now we have arrived at the coolest part of RRD the graphing of the data I create 4 basic graphs Each graph shows the successful attempts in green, and on top I ve specified the failed attempts There are many different ways of graphing the data as l ines, different shades, surfaces etc and almost every aspect of the graph is customizable. Our result should be something like this. RRDtool is a really great to generate graphs in a simple way, but don t get fooled by it s apparent simplicity It s capable of creating very complex graphs if needed We just scraped the basics which is more than enough to get you started in your own graphs Unfortunately, the PHP binding of RRDTool are not really well maintained, but since they are merely a shell around the command line version, they work properly enough to create cool graphs. More information about RRD and the RRDTool can be found on the main RRD website. About the author Joshua Thijssen is a senior software engineer at Enrise and owner of the privately held company NoxLogic His programming skills includes but is not limited to assembly, C, C , Java, Perl, Python and PHP and has experience on administering a wide range of operating systems One of his specialties is fine tuning MySQL databases and queries His personal blog can be found on. Related Posts.

Comments