Saturday 20 May 2017

Rrdtool Gleitender Durchschnitt

RRDtool erstellen Tutorial und Beispiele. rrdtool erstellen baut eine Datenbank Es liest nicht Ihren Geist. Before können Sie sagen, RRDtool was zu schaffen, müssen Sie zuerst bestimmen, was Sie brauchen und wann Sie es brauchen. Dieses Beispiel ist nicht so viel über Schnitt und Einfügen , Es ist zu lehren, wie Sie Ihre Idee in eine funktionierende Setup übersetzen könnte. Haben Sie einen genauen Blick auf die Zahlen, die Sie geben werden, um RRDtool später zu geben Was bedeuten diese Zahlen, wie sie sich ändern. Ein gemeinsames Beispiel ist ein Zähler, der Wird von einem Netzwerkgerät gehalten, das die Anzahl der Bytes in oder aus dem Gerät zeigt. Dieser Zähler wird irgendwann gestartet und weiter erhöht In diesem Fall interessiert Sie sich für den Unterschied, das Delta, zwischen zwei Momenten in der Zeit Der Unterschied Ist die Menge der Bytes, die in diesem Zeitintervall transportiert werden. Ein ähnliches, aber weniger oft gesehenes Beispiel wäre der Zähler auf einem Stromzähler. Dies ist auch ein immer größerer Zähler. Es ergibt sich die Menge an kWh, die in einem Zeitintervall verwendet wird In diesem Fall sollten Sie erkennen, dass kWh nur eine andere Möglichkeit ist, Joules zu zählen, was Sie später schon später wissen wollen. Eine ganz andere Art von Input wäre ein Tachometer, das Gerät in einem Auto, das zeigt, wie schnell Sie sich bewegen Die Nummer, die du bekommst, ist schon eine Rate Auch wenn du es in mph oder in km h bekommst, ist es nur eine Anzahl von Metern pro Sekunde, wenn auch in einer anderen Einheit gegeben, ähnlich wie kWh vs Joules. Eventually wird RRDtool die Eingabe umwandeln Es wird in eine Rate und wird diese Raten normalisieren, so dass sie in gut definierte Zeitintervalle passen Es gibt nichts, was Sie tun können, um es zu tun, es ist, wie es funktioniert Siehe Preise, normalisieren und konsolidieren für eine ausführlichere Erklärung von this. There s no Problem, wenn Sie RRDtool missbrauchen, um mit Daten zu arbeiten, die nicht eine Rate sind, wie z. B. Temperatur. Denken Sie daran, dass RRDtool denkt, dass es eine Rate ist, und geben Sie es RRDtool, als ob es bereits eine Rate ist. Das bedeutet Gegenart GAUGE. Es gibt viele Andere Beispiele zum Nachdenken Wenn du ein Beispiel hast, das von allgemeinem Interesse sein wird oder wenn du bereit bist, für meine Zeit zu bezahlen, mach es mir weiter und ich werde es hier ausarbeiten. Der Eingang ist eine Rate, egms oder Sollte als eine Rate behandelt werden, z. B. Temperatur. Die Eingabe ist eine ständig wachsende Zahl, z. B. ein Oktettzähler in einem Router RRDtool sollte den Unterschied zwischen dem letzten Update und dem aktuellen zu berechnen und es um den Zeitaufwand zu verteilen Ähnelt COUNTER, mit der Ausnahme, dass der Eingang abnehmen kann. Dies ist zB bei einem kWh-Meter nützlich, wenn Sie mehr Sonnenenergie erzeugen als Sie verwenden. In diesem Fall erhalten Sie tatsächlich eine negative Rate. Dies ist zu verwenden, wenn der Zähler zurückgesetzt wird Jedes Mal, wenn es gelesen wird, wenn die Leute beginnen, von Null zu zählen, und so weiter Der Hauptunterschied zwischen ABSOLUTE und GAUGE ist, dass die Eingabe noch nicht eine Rate ist, sollte es zuerst durch die Zeit geteilt werden, um eine Rate zu erhalten Der Hauptunterschied zwischen ABSOLUTE und COUNTER ist, dass RRDtool nicht den vorherigen Eingabewert verwenden sollte, um seine Delta zu berechnen. Wenn Sie herausgefunden haben, wie Sie die Eingabe verarbeiten können, müssen Sie herausfinden, wie Sie die berechneten Raten speichern möchten. Es gibt mehrere Dinge, die Sie zuerst ansehen können Du musst wissen, wie viel Zeit du in der Lage sein wirst zu sehen Auch sehr wichtig ist, wie du in der Lage sein willst zu sehen. Schon du willst in der Lage sein, ein Jahr zurückzublicken, musst du noch wissen, ob du willst In der Lage sein zu vergrößern oder wenn man nur das große Bild anschauen will, also wenn es jetzt der 1. März 2009 ist, willst du 2007-03-01 bis 2009-03-01 anschauen oder willst du In der Lage sein bei 2007-03-01 Mitternacht bis zum nächsten Mitternacht zu sehen. Was Sie hier verstehen müssen, ist Konsolidierung Sagen Sie, dass Sie zwei Jahre im Wert von Informationen suchen werden und dass die verfügbaren Daten in einer Auflösung von 300 Sekunden pro Eimer sind Dies bedeutet, dass Sie mehr als 200.000 Eimer haben Wenn Sie diese in einem Bild von 400 Pixel breit anzeigen werden, müssen 500 von solchen Eimern in die Spalte der Pixel passen. Diese 200.000 Eimer halten ist nicht nur eine Verschwendung von Raum Wenn RRDtool muss Machen alle diese Eimer passen auf die Grafik, es muss Arbeit zu tun Je nach Verarbeitungsmöglichkeiten Ihres Servers kann dies eine Verzögerung bei der Betrachtung Ihrer Grafiken bedeuten. Sie können RRDtool anweisen, historische Daten konsolidiert zu halten, geeignet für die Anzeige ohne Die Verzögerung gerade erwähnt Dies erfordert einige Planung, ich werde weiter ausarbeiten Aber was, wenn Sie in der Lage sein zu vergrößern in kein Problem, können Sie sagen, RRDtool, um auch die Daten in seiner ursprünglichen Eimer Größe zB die 300 Sekunden Oder, wenn Sie Wählen Sie so, können Sie sagen, RRDtool, um die Daten nur in diesem Original Eimer Größe Es s bis zu Ihnen Nur wissen, dass es schwierig ist, Ihren Verstand zu ändern, sobald Sie Ihre Datenbank gebaut haben In vielen Fällen müssen Sie alles beginnen, wenn Sie Do. RRDtool verwendet RRAs RRDtool Archive, um Daten zu speichern Jede dieser RRAs ist unabhängig von den anderen, können Sie eine, die Daten in einer 300-Sekunden-Auflösung speichert und eine andere, die Daten in einer 86400-Sekunden-Auflösung speichert Wenn Sie möchten, Sie Kann jeder dieser Beispiele die gleiche Zeitspanne enthalten, kein Problem Es ist nur eine Frage, wie viele Zeilen Sie in jedem RRA erzeugen. Sagen Sie werden Bilder generieren, wo die innere Grafik Bereich ist 360 Pixel breit Es ist in der Regel am besten, wenn Sie Richten Sie Ihre RRD so ein, dass eine ihrer RRAs mit der Auflösung auf dem Bildschirm übereinstimmt. Sie können dies in der Entwurfsphase tun, indem Sie die Größe jedes Eimers anpassen, oder Sie können die Start - und Endzeiten sorgfältig planen Wenn Sie eine RRA haben, die Daten in einem 86400 speichert Sekunde Auflösung, und Sie zeigen, 360 Tage von Informationen, das ist eine schöne Passform anzeigen 180 Tage und jeder Tag wird 2 Spalten breit sein, nicht viel von einem Problem Display 720 Tage und RRDtool muss noch 2 Eimer in einem Pixel passen. Betrachten Sie die Suche nach Netzwerkstatistiken, so dass Sie wissen können, wie viel Daten transportiert werden, was Ihnen hilft zu bestimmen, ob es Zeit ist, Ihr Netzwerk Kapazitätszähler zu erweitern, werden wahrscheinlich immer steigende Zahlen werden, bis eine Gegenverpackung auftritt, so dass Teil einfach ist Verwenden Sie COUNTER auch, oft kommen sie paarweise eingehend und ausgehend, wie aus dem Gerät gesehen Sie werden das Gerät etwa alle 5 Minuten abfragen, aber Sie geben sich selbst und Ihre Zeitplan etwas locker Jedoch gibt es eine Begrenzung, wieviel Lose Sie bereit sind Zu geben Wenn Updates weiter auseinander als 10 Minuten sind, ging etwas schief und man kann sich auf die Genauigkeit der Netzwerkzähler verlassen. Ein Ausfall kann aufgetreten sein, was zu einem Neustart des Gerätes führt. Sie wissen, dass das Gerät jemals mehr als 100Mbps transportiert hat , So dass jeder Preis höher als das ist das Ergebnis eines unbekannten Fehlers irgendwo in einem unbekannten Ort Sie don t wissen, warum es passieren würde, wenn überhaupt, Sie wollen einfach nie, dass es zu zeigen Es ist genau wie ein Sicherheitsnetz Zähler. Der andere Zähler ist genau das gleiche, mit Ausnahme seines Namens Geben Sie die folgenden zu rrdtool create. Say möchten Sie in der Lage sein, die letzten 2 Jahre, die letzten 2 Monate, die letzten 2 Wochen und die letzten 2 Tage Die Datenbank anzeigen Verwendet die Standard-Schrittweite von 300 Sekunden pro Intervall. Erste, was ich bemerke, jedes Mal zuletzt erwähnt Dies bedeutet, dass keine zusätzlichen Zeilen vorhanden sein müssen, um das Zoomen in der Vergangenheit zu ermöglichen Zum Beispiel gibt es keine Notwendigkeit, Daten in einem 300- Zweite Auflösung für die gesamten zwei Jahre. Ich auch sofort bemerken die Verwendung von Jahr, Monat, Woche und Tag Diese sind nicht feste Zeitintervalle Ein Jahr kann 365 oder 366 Tage sein Ein Monat kann 28 Tage, 29 Tage, 30 Tage, 31 Tage, es kann sogar eine Stunde weniger oder eine Stunde mehr, oder 30 Minuten weniger mehr, je nachdem, wie die Sommerzeit für Sie arbeitet Ähnlich eine Woche ist nicht immer 7 Tage und ein Tag ist nicht immer 24 Stunden Dies ist nicht praktikabel, Und für den Zweck dieses Beispiels ist es auch unnötig Dies bedeutet, ich kann, sollte und wird die Anforderung ändern, um die letzten 720 Tage, die letzten 60 Tage, die letzten 14 Tage und die letzten 2 Tage alle auf UTC Zeit ohne nennen Sommerzeit zu berücksichtigen. Jetzt ist es Zeit, die Breite jedes Graphen zu bestimmen Erste Sache zu tun ist, betrachten die Menge der Zeit Mit einer Schrittweite von 300 Sekunden, ein Tag entspricht 288 Schritte.720 288 207360 steps. It nicht immer Entpuppen Sie sich so eine nette Passform Entscheiden Sie selbst, was Sie mögen mehr Blick auf mehr oder weniger Zeit als ursprünglich geplant, oder haben unterschiedliche Bildbreiten Was auch immer Sie tun, stellen Sie sicher, dass die Zahlen ganze Zahlen Nicht, weil RRDtool es braucht es doesn t aber Weil es das Leben leichter macht. Die Zahlen 360, 30, 7 und 1 sind die Menge der Schritte, um bei der Erstellung jeder RRA auszufüllen Die Zahl 576 ist die Anzahl der Zeilen zu füllen Dies verlässt zwei weitere Parameter CF und xff, die ich erkläre In Kürze geben Sie diese an 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 7 576 RRA AVERAGE 0 1 576 RRA MAX 0 360 576 RRA MAX 0 30 576 RM MAX 0 7 576.MIN, DURCHSCHNITT UND MAX bestimmen, wie RRDtool mehrere Raten in einem mehr konsolidieren muss, um dies zu bewerten, zu normalisieren und zu konsolidieren, wenn Sie interessiert sind. Beachten Sie, dass ich 3 MIN und MAX RRAs und 4 DURCHSCHNITT habe Das Minimum, das Durchschnitt und das Maximum von nur einer Rate wird immer das gleiche sein Ich brauche nur eine von ihnen, nicht alle drei. XFF, der X-Files Factor, bekam seinen Namen, weil es unwissenschaftlich ist, wenn man es auf eine andere Nummer gesetzt hat Als null Es hat mit unbekannten Daten zu tun und wie dies verarbeitet wird Was ist der Durchschnitt von Die eine und einzige wahre Antwort ist unbekannt Noch, viele Leute wollen Antwort 1 XFF bestimmt, wie viel der ursprünglichen Daten unbekannt sein und noch produzieren 1 oder Jede andere Rate Ein gemeinsamer Wert ist 0 5, was bedeutet, Ergebnisse in 1 aber nicht Für dieses Beispiel wäre 0 5 geeignet, aber wenn Sie die Daten für Abrechnungszwecke verwenden, wäre es nicht zu berücksichtigen Durchschnitt mit XFF auf 0 5 gesetzt, dies Wäre 100 im Durchschnitt Chancen sind die Unbekannten sind das Ergebnis eines Verbindungsproblems, in welchem ​​Fall wäre es unfair, um Ihren Kunden für einen Satz von 100 in diesen unbekannten Intervallen Für Kapazitätsplanung auf der anderen Seite, würden Sie wahrscheinlich haben Gesehen eine Rate von 100, wenn kein Ausfall wäre aufgetreten Dann wieder, können Sie wissen, dass es einen Ausfall gab, auch wenn man die Grafik zeigt 2 Jahre. rrdtool erstellen wird auch eine Startzeit zu akzeptieren Dies ist nur wichtig, wenn Sie historisch haben Daten, die Sie importieren werden Wenn Sie dies nicht tun, überspringen Sie einfach den Parameter und RRDtool wird das Richtige tun Wenn Sie historische Daten importieren möchten, stellen Sie dies etwas vor den ältesten Daten ein, die Sie importieren möchten. Weitere Parameter Sind Schrittgröße 300 Sekunden standardmäßig und der Name der zu erstellenden Datei. Das gesamte Beispiel ist nun fertig Dies ist der Befehl, um RRDtool zu geben, für dieses spezielle Beispiel case. rrdtool erstellen 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. Ich schreibe meine Skripte etwas anders, ich benutze eine Unix-Shell und schreibe mein Skript wie so. Das macht keinen Unterschied, wenn die Shell rrdtool ausgelöst wird, bekommt es den gleichen Befehl vielleicht mit etwas mehr Leerzeichen zu sehen, ich don Wenn du diese Informationen gerne sagst, dann sehe du mich an. Diese Seite wurde von Alex van den Bogaerdt, einem unabhängigen IT-Berater, erstellt. Wenn du Feedback geben möchtest oder wenn du mich einstellen möchtest, bitte sehe. Notes auf RRDTOOL Implementierung von Aberrant Behavior Detection. oetiker webtools rrdtool ist die Abkürzung für Round Robin Database RRD ist ein System zum Speichern und Anzeigen von Zeitreihen-Daten Es speichert die Daten in einer sehr kompakten Weise, die sich nicht im Laufe der Zeit erweitern wird, und es stellt nützliche Graphen vor Verarbeiten der Daten bei verschiedenen zeitlichen Auflösungen Die RRDtool-Software ist als eigenständige Anwendung oder als PERL-Bibliothek verfügbar. RRDtool ist ein flinkes Programm, das die IO-Operationen minimiert, die von Echtzeit-Updates auf Zeitreihen benötigt werden. Nicht so leistungsfähig wie die vollblasige Datenbanksoftware , Stellt sie die Funktionalität zur Verfügung, die von einer Echtzeitumgebung benötigt wird. Konversion von Aktualisierungen in unregelmäßigen Intervallen in regelmäßige Intervalle über lineare Interpolation. Konversion von Zählerdaten zu Raten. Schaltung über benutzerdefinierte Zeitintervalle über mehrere Aggregationsfunktionen. Dieses Dokument beschreibt die Implementierung von aberranten Verhaltenserkennung für RRDTOOL Eine gewisse Vertrautheit mit den Interna der aktuellen Version 1 0 25 von RRDtool wird angenommen, da dieses Dokument auf die bereits vorhandene Architektur hinweist. Es gibt mehrere Gründe, warum die Unterstützung für die fehlerhafte Verhaltenserkennung in RRDtool integriert wurde , Im Gegensatz zu implementiert als separates Programm Dazu gehören. 1 Ermöglicht eine effiziente Echtzeitanwendung von fehlerhafter Verhaltenserkennung Integration bietet eine größere Effizienz gegenüber einem externen Programm im Hinblick auf den IO-Zugriff Ein externes Programm würde Daten von RRD mit der gleichen Aktualisierungshäufigkeit abrufen, während der Code innerhalb der RRD bereits auf diesen Daten arbeitet In-Memory Effizienz wird für das Servicenetz auf der IAP-ISP-Ebene oberste Priorität, wo RRDtool wesentlicher Bestandteil des Monitoringsystems von Hunderten von Netzwerkschnittstellen und Anwendungsdiensten sein kann. 2 Macht die Fähigkeit von RRDtool, die zeitlichen Interpolationsdaten-Aktualisierungen in unregelmäßigen Intervallen durchzuführen und die Umwandlung von Zählern zu Raten umzuwandeln. 3 Die grafischen Fähigkeiten von RRDtool-Diagrammen können erzeugt werden, um die Ergebnisse der aberranten Verhaltenserkennung unter Verwendung der vorhandenen Fähigkeiten von RRDtool anzuzeigen. 4 Führt Client-Software, die entworfen ist, um mit RRDtool i e Cricket laufen zu können. Die Anerkennung des Fahrers wird in drei Stücke zerlegt, jedes Gebäude auf seinem Vorgänger. 1 Ein Algorithmus zur Vorhersage der Werte einer Zeitreihe ein Zeitschritt in die Zukunft. 2 Ein Maß für die Abweichung zwischen den vorhergesagten Werten und den beobachteten Werten. 3 Ein Mechanismus, um zu entscheiden, ob und wann ein beobachteter Wert oder eine Folge von beobachteten Werten zu weit von dem vorhergesagten Wert abhängt. Der Holt-Winters Time Series Prognose-Algorithmus ist ein Online - oder Inkremental-Algorithmus, der künftige Beobachtungen adaptiv in einer Zeitreihe prognostiziert Es ist die Prognose der Summe von drei Komponenten eine Grundlinie oder ein Intercept, ein linearer Trend über Zeit oder Steigung und ein saisonaler Koeffizient ein periodischer Effekt, wie ein Tageszyklus Es gibt einen saisonalen Koeffizienten für jeden Zeitpunkt im Periodenzyklus Nach a Wert wird beobachtet, jede dieser Komponenten wird durch exponentielle Glättung aktualisiert Der Algorithmus lernt aus vergangenen Werten und nutzt sie zur Vorhersage der Zukunft Die Anpassungsrate wird durch 3 Parameter alpha Intercept, Beta Slope und Gamma saisonale geregelt. Die Vorhersage kann auch betrachtet werden Als geglätte Wert für die Zeitreihe. Das Maß der Abweichung ist eine saisonal gewichtete absolute Abweichung Der Begriff saisonale Mittelabweichung wird separat für jeden Zeitpunkt im saisonalen Zyklus gemessen Wie bei Holt-Winters Prognose wird die Abweichung mit der Maßnahme vorhergesagt Vergangene Werte, aber nur an diesem Punkt im Saisonzyklus Nachdem der Wert beobachtet wurde, lernt der Algorithmus aus dem beobachteten Wert durch exponentielle Glättung Skalierung der Sequenz der vorhergesagten Abweichungswerte für die beobachteten Zeitreihen erzeugt Vertrauensbänder, die wir gewöhnlich an die Sequenzen als kontinuierlich denken Zeilen anstatt als Satz von diskreten Punkten. Bereitstellen eines potenziellen Ausfalls wird immer dann gemeldet, wenn die Anzahl der beobachteten Werte, die die Konfidenzbänder verletzen, eine vorgegebene Schwelle innerhalb eines vorgegebenen zeitlichen Fensters erfüllt oder überschreitet, dh 5 Verletzungen in den letzten 45 Minuten mit einem Wert beobachtet alle 5 Münzen. Dieser Abschnitt beschreibt die Architektur der Umsetzung der aberranten Verhaltenserkennung in der RRDtool. On Festplatte, die Round-Robin-Datenbank RRD ist in sequenzielle Abschnitte organisiert, Round-Robin-Archive RRA Innerhalb jeder RRA ist ein Abschnitt für jeden der Datenquelleneingabe, die in dieser RRD gespeichert ist Jede RRA wird durch eine Konsolidierungsfunktion definiert, die primäre Datenpunkte PDP zu konsolidierten Datenpunkten CDP abbildet. Auf einer anderen Ebene ist ein RRA nur ein Array von Datenwerten, die nacheinander in einer bestimmten Funktion aktualisiert werden Feste Zeitintervall. Auf seinem Gesicht benötigt der abweichende Verhaltensalgorithmus mindestens zwei Arrays, um die Prognosewerte entsprechend jedem Primärdatenpunkt zu speichern, und eine Sekunde, um die vorhergesagte Abweichung entsprechend jedem Primärdatenpunkt zu speichern Saisonale Koeffizienten und Abweichungen, die zur Berechnung der Prognose und der vorhergesagten Abweichungen verwendet werden, werden in einem zweiten Paar von RRAs gespeichert. Diese Arrays haben eine Länge gleich der Saisonperiode und werden einmal für jeden Primärdatenpunkt aktualisiert. Die Fehler werden durch eine fünfte RRA verfolgt, die Bestimmt bei jedem Aufruf zur RRD-Aktualisierung Verletzungen und Ausfälle. Die für die Prognose benötigten Intercept - und Slope-Koeffizienten werden für jeden Primärdatenpunkt aktualisiert und sind für jede Datenquelle DS eindeutig. Sie könnten in einem zweiten Paar von RRAs gespeichert werden. Allerdings sind nur die meisten Der aktuelle Wert von jedem ist für eine gegebene Prognose erforderlich. Als implementiert werden diese Parameter in einem temporären Puffer im Header gespeichert, der für jede RRA-Datenquellenkombination in der RRD der CDP-Prep-Bereich zugewiesen wird. Dieser Puffer wird bei jedem Aufruf von RRD auf die Festplatte zurückgesetzt Update. Die Adaptionsparameter sind für die Lebensdauer des RRA festgelegt und sind für alle Datenquellen innerhalb dieses RRA gleich. Sie werden im RRA-Parameterpuffer in RRA def gespeichert, der nur während der RRD-Aktualisierung gelesen wird. Daher ist die Implementierung des aberranten Verhaltensalgorithmus fügt fünf neue Konsolidierungsfunktionen zu RRDtool hinzu. 1 HWPREDICT ein Array von Prognosen, die vom Holt-Winters-Algorithmus berechnet werden, eine für jeden primären Datenpunkt Das HWPREDICT-Array hängt von einem Array vom Typ SEASONAL ab, um saisonale Koeffizienten aufzusuchen. Der Index dieses SEASONAL-Arrays wird als Parameter des HWPREDICT RRA gespeichert . 2 SEASONAL ein Array von saisonalen Koeffizienten mit einer Länge gleich der Saisonperiode Für jeden Primärdatenpunkt gibt es einen saisonalen Koeffizienten, der dem Index im saisonalen Zyklus entspricht. Um die saisonalen Koeffizienten über eine exponentielle Glättung zu aktualisieren, hängt die SEASONAL RRA von der HWPREDICT RRA Der Index des passenden HWPREDICT RRA wird als Parameter gespeichert. 3 DEVPREDICT ein Array von Abweichungsvorhersagen Im Wesentlichen kopiert DEVPREDICT Werte aus dem DEVSEASONAL-Array, es handelt keine eigene Verarbeitung. Der Index des DEVSEASONAL-Arrays wird als Parameter gespeichert. 4 DEVSEASONAL eine Reihe von saisonalen Abweichungen Für jeden Primärdatenpunkt gibt es eine saisonale Abweichung, die dem Index des Primärdatenpunktes im Saisonzyklus entspricht. Um Abweichungen zu berechnen, muss DEVSEASONAL RRA den vorhergesagten Wert berechnen können Hängt vom HWPREDICT RRA ab Der Index des passenden HWPREDICT RRA wird als Parameter gespeichert. 5 FEHLT ein Array von booleschen Indikatoren, ein 1 zeigt einen Fehler an Der RRA-DS-Puffer speichert jeden Wert innerhalb des Fensters Jede Aktualisierung entfernt den ältesten Wert aus diesem Puffer und fügt die neue Beobachtung ein. Bei jedem Update wird die Anzahl der Verletzungen neu berechnet Fensterlänge, die durch diesen Puffer erzwungen wird, beträgt 9 Zeitpunkte. Zum Vergleich mit Abweichungen hängt der FAILURES RRA vom DEVSEASONAL RRA ab. Der Index des passenden DEVSEASONAL RRA wird als Parameter gespeichert. In diesem Abschnitt wird veranschaulicht, wie der fehlerhafte Verhaltenserkennungsalgorithmus in RRDtool verwendet wird Ein Beispiel. Unser Monitoring-Ziel wird eine Router-Schnittstelle auf einer Verbindung zwischen zwei Rechenzentren im WebTV-Produktions-Service-Netzwerk Die Variable wird die ausgehende Bandbreite in Mbps Bandbreite Nutzung folgt einem täglichen Zyklus und SNMP wird in fünf Minuten Intervallen abgefragt Der erste Schritt besteht darin, eine RRD für dieses Ziel zu erstellen, wenn eine fehlerhafte Verhaltenserkennung aktiviert ist. Um die Erstellung des Anfängerbenutzers zu vereinfachen, wird neben der expliziten Erstellung der HWPREDICT-, SEASONAL-, DEVPREDICT-, DEVSEASONAL - und FAILURES-RRAs den erweiterten RRDtool-Befehl erstellt Unterstützt implizite Schaffung der anderen vier, wenn HWPREDICT alleine spezifiziert ist, um dies zu nutzen, verwenden Sie die folgende syntax. array Länge ist die Anzahl der Vorhersagen zu speichern, bevor Wrap-around diese Nummer muss länger als die Saisonperiode Dieser Wert wird auch sein Die RRA-Zeilenzählung für DEVPREDICT RRA. alpha ist der Intercept-Adaptionsparameter, der zwischen 0 und 1 fallen muss. Ein größerer Wert bedeutet, dass der Intercept schneller anpasst. Der gleiche Wert wird auch für gamma. beta verwendet, ist der Neigungsanpassungsparameter, wieder zwischen 0 und 1.periode ist die Anzahl der Primärdatenpunkte in der Saisonperiode Dieser Wert ist die RRA-Zeile, die für die SEASONAL - und DEVSEASONALRRAs gilt. Mit dieser Option wird die FAILURES RRA mit der Standardfensterlänge von 9 und einem Standardschwellenwert erstellt Von 7 Die Standardlänge des FAILURES RRA ist eine Periode. Für das Beispiel ist der create-Befehl. rrdtool create s 300.Während explizit die Erstellung der zusätzlichen RRAs ist ein Mittel der feineren Steuerung, können einige Parameter mit dem Tuning-Befehl Enhanced geändert werden RRDtool unterstützt mehrere neue Melodien-Flags. - Fenster-Länge - Ausfall-Schwelle --alpha --beta gamma deltapos --deltaneg. Jeder dieser Flaggen nimmt ein einziges Argument Der Zweck des Arguments ist selbstverständlich Die - Gamma Flag setzt den Adaptionsparameter sowohl für die SEASONAL - als auch die DEVSEASONAL RRAs-Einstellung auf denselben Wert zurück. - Deltapos und Deltaneg setzen den Skalierungsparameter für das obere bzw. untere Konfidenzband, der Standardwert für beide ist 2 ein symmetrisches Konfidenzband. Angenommen, wir sind unglücklich mit der Standardfensterlänge und dem Schwellenwert für die FAILURES RRA, die implizit durch den vorherigen Befehl erstellt wurden. Befehl ausgeben. rrdtool tune - Fensterlänge 5. Der Rest des Beispiels verwendet die Standardfensterlänge von 9 und Die Standardschwelle von 7.In einigen Fällen ist eine explizite Erstellung der RRAs erforderlich. Angenommen, der Netztechniker interessiert sich nur für die Glättung der beobachteten Zeitreihen, nicht der Vertrauensbänder oder der fehlerhaften Verhaltenserkennung. Der Holt-Winters Forecasting-Algorithmus kann als Glättungsalgorithmus betrachtet werden In diesem Fall kann er explizit die HWPREDICT und SEASONAL RRAs ohne die anderen erstellen. Verwenden Sie diese Syntax. RRA HWPREDICT Länge Alpha Beta Periodenindex von SEASONAL. RRA SEASONAL Zeitraum Gamma Index von HWPREDICT. Die Argumente von HWPREDICT sind die gleichen wie vorher, mit Die Addition von. index des SEASONAL 1-basierten Index des SEASONAL-Arrays in der Reihenfolge RRAs werden im create-Befehl angegeben. Die Argumente der SEASONAL RRA sind. period ist die Anzahl der Primärdatenpunkte in der Saisonperiode Wert, der durch das Periodenargument von HWPREDICT spezifiziert ist Es muss eine ganze Zahl größer als 2.gamma sein, ist der Adaptionsparameter für saisonale Koeffizienten, der zwischen 0 und 1.index des HWPREDICT 1-basierten Index des HWPREDICT-Arrays in der Reihenfolge RRAs liegen muss Spezifiziert in der create command. Confidence Bands können unabhängig von fehlerhafter Verhaltenserkennung erstellt werden In diesem Fall erstellen Sie die vier RRAs HWPREDICT, SEASONAL, DEVSEASONAL und DEVPREDICT aber weglassen die FAILURES RRA. Use diese Syntax. RRA HWPREDICT Länge Alpha Beta Periodenindex von SEASONAL. RRA SEASONAL Zeitraum Gamma-Index von HWPREDICT. RRA DEVSEASONAL Zeitraum Gamma-Index von HWPREDICT. RRA DEVPREDICT Array Länge Index von DEVSEASONAL. Die Argumente von HWPREDICT und SEASONAL sind die gleichen wie zuvor Die Argumente von DEVSEASONAL und DEVPREDICT sind. periode ist die Anzahl der Primärdatenpunkte in der Saisonperiode Es muss mit dem Wert übereinstimmen, der durch das Periodenargument der HWPREDICT - und SEASONAL-Arrays angegeben ist, wobei diese Einschränkung in einer zukünftigen Implementierung aufgehoben werden kann. Es muss eine ganze Zahl größer sein als 2.Array-Länge ist die Anzahl der zu speichernden Abweichungen Vor der Umwicklung muss diese Zahl länger sein als die saisonale Periode. gamma ist der Adaptionsparameter für saisonale Abweichungen, die zwischen 0 und 1 Wert haben müssen. Sie müssen nicht mit dem Adaptionsparameter für das SEASONAL array. index des HWPREDICT 1-basierten Index von Das HWPREDICT-Array in der Reihenfolge RRAs werden im create command. index des DEVSEASONAL 1-basierten Index des DEVSEASONAL-Arrays in der Reihenfolge angegeben, in dem RRAs im create-Befehl angegeben werden. Schließlich kann das FEHLERS RRA explizit mit der Syntax erstellt werden Mindestens die HWPREDICT-, SEASONAL - und DEVSEASONAL-Arrays müssen ebenfalls angelegt werden Wenn auch Vertrauensbänder gewünscht werden, erstellen Sie DEVPREDICT. Verwenden Sie diese Syntax. RRA FAILURES Längenschwellenfenster Länge Index von DEVSEASONAL. length ist die Anzahl der Indikatoren 0,1 Werte Zu speichern, bevor Wrap-around A 1 zeigt einen Fehler, der ist, die Anzahl der Verletzungen im letzten Fenster der Beobachtungen trifft oder überschreitet die Schwelle. Threshold ist die minimale Anzahl von Verletzungen innerhalb eines Fensters beobachtete Werte außerhalb der Vertrauensgrenzen, die einen Ausfall darstellt. Fensterlänge ist die Anzahl der Zeitpunkte im Fenster Geben Sie eine Ganzzahl an, die größer oder gleich der Schwelle ist und kleiner oder gleich 28 der maximale Wert. index des DEVSEASONAL 1-basierten Index des DEVSEASONAL-Arrays in der Reihenfolge RRAs angegeben sind In der create-Befehl. Der aberrante Verhalten Erkennung Algorithmus erfordert nichts ungewöhnliches für die RRDtool Update-Befehl, so dass die Sammlung Mechanismus dh Cricket ruft SNMP wird normal laufen Nun vorausgesetzt, einige Zeit vergangen ist und der Netzwerk-Techniker überwacht ausgehende Bandbreite an der Router-Schnittstelle kann er sehen Ein Diagramm der täglichen Aktivität, einschließlich der Vertrauensbänder und aller Ausfälle, mit dem folgenden Befehl. rrdtool graph. TICK Failfa0 1 0 Ausfälle Durchschnittliche Bits out. LINE2 scaledobs 0000ff Durchschnittliche Bits out. LINE1 scaledupper ff0000 Obere Bound Durchschnittliche Bits out. LINE1 scaledlower ff0000 Lower Bound Average Bits out. TICK ist eine neue Grafikoption im RRD-Tool Für jeden Wert ungleich Null im DEF - oder CDEF-Argument zeichnet es ein Häkchen auf. Die Länge der Markierungslinie wird durch das dritte Argument nach dem Farbcode als angegeben Ein Dezimalprozentsatz der y-Achse 1 0 ist 100 der Länge der y-Achse, so dass die Häkchenmarke eine vertikale Linie auf dem Graphen wird. Hierbei handelt es sich um ein Beispiel für diese Tagesgrafik, die am Mi, 31. Mai 2000 erstellt wurde Das Router-Target, das zuvor beschrieben wurde. Die dünnen roten Linien sind die Vertrauensbänder und die gelben Balken repräsentieren Fehler tatsächlich mehrfache Ausfälle in der Sequenz, sobald der beobachtete Wert außerhalb der Vertrauensbänder außerhalb der Bänder für etwa zwei Stunden in beiden Fällen der TICK bleibt Graph-Option generiert die gelben Balken aus dem FAILURES RRA. Die Grafik deutet darauf hin, dass die Bandbreite auf dieser ausgehenden Link wird schneller als erwartet durch das Modell Vergangenheit Geschichte Es ist bis zu dem Netzwerk-Techniker zu entscheiden, ob dies stellt aberrante Verhalten von Interesse Ein Ansatz der Techniker Könnte es sein, die Zeitreihen für diese Router-Schnittstelle über einen längeren Zeitraum zu sehen. Mit Nachsicht ist es einfach, etwas Ungewöhnliches zu zeigen, was los ist und das aberrante Verhaltenserkennungsmodell fängt es in Echtzeit Hier ist die Zeitreihe für die Woche und halben Zeitraum vom 24. Mai 2000 bis 2. Juni 2000. Es ist klar, dass Mi, 31. Mai ist ungewöhnliche Bandbreite erhöht sich in zwei Stufen einmal am frühen Morgen und wieder am frühen Nachmittag In diesem Fall ist das Dip auf 0 In der frühen Morgenstunde und der nachfolgende Sprung kann auf eine geplante Ausfallzeit für das Servicenetz zurückgeschrieben werden Vielleicht ist der Rest der Bandbreitenaktivität auf Mi die gleiche Ursache, in diesem Fall aberranten Verhalten festgestellt ist ein falsch positiv in den Augen des Netzwerk-Technikers . Angesichts des Beispiels ist es klar, dass es viele Vorteile der aberranten Verhaltenserkennung gibt, aber es kompliziert die Software-Implementierung und Auswirkungen Laufzeit-Performance Diese Details werden in diesem Abschnitt diskutiert. Für die fünf aberranten Erkennung RRAs, jedes Mal ein primärer Datenpunkt PDP wird durch rrdupdate berechnet, jedes der RRAs wird aktualisiert. Dies führt zu fünf zusätzlichen Plattensuchschreiboperationen. Darüber hinaus benötigen die SEASONAL - und DEVSEASONALRRAs jeweils einen Suchvorgang, während die Anzahl der zusätzlichen Plattenoperationen unabhängig von der Anzahl der Datenquellen und Diese Operationen werden nacheinander durchgeführt, wann immer möglich, dh vermeiden, dass sie sich innerhalb der Datei rückwärts bewegen, diese Operationen verursachen signifikante IO-Kosten relativ zu einer RRD ohne die fehlerhaften Erkennungs-RRAs. In einer herkömmlichen RRD-Datei gibt es normalerweise nur eine RRA, die für jedes PDP aktualisiert wird , Die nur einen einzigen Suchschreibvorgang erfordert. Nach der Aktualisierung enthalten die cdpprep-Bereiche der HWPREDICT - und SEASONAL-RRAs genügend Informationen, um eine Prognose für zukünftige Werte zu machen. Der nächste vorhergesagte Wert kann mit der folgenden Formulierung berechnet werden Unbekannte Werte 1.Der Intercept wird im CDPhwintercept-Member des cdpprep-Bereichs des HWPREDICT RRA und der interessierenden Datenquelle gespeichert. Die Slope wird im CDPhwslope-Member des cdpprep-Bereichs des HWPREDICT RRA gespeichert. Der Ausdruck, Sequenzlänge unbekannter Werte 1, wird als CDPnullcount-Mitglied des cdpprep-Bereichs des HWPREDICT RRA gespeichert. Schließlich wird der saisonale Koeffizient im CDPhwseasonal-Mitglied des cdpprep-Bereichs des SEASONAL RRA und der interessierenden Datenquelle gespeichert Die Vorhersage, bis der zu vorhergesagte Wert bereits beobachtet wird, aber es ist denkbar, dass eine andere Anwendung die Vorhersage bevor der Wert beobachtet wird. Dies könnte in der Zukunft durch Hinzufügen eines neuen Aufrufs, rrdpredict, um die entsprechenden Puffer von HWPREDICT zu lesen, erleichtert werden Und SEASONAL RRAs und berechnen die Vorhersage. Isolated oder Sequenzen von unbekannten U-Werte sind in der Regel kein Problem für den Holt-Winters-Algorithmus, entweder bei der Erstellung von Prognosen oder bei der Aktualisierung von Werten im Grunde für einen unbekannten Wert, keine Aktualisierung auftritt Der Algorithmus kann tatsächlich prognostizieren Mehrere Schritte in die Zukunft, sofern die Initialisierungsphase abgeschlossen ist. Eine Bulk-Aktualisierung kann auftreten, wenn ein Zeitintervall zwischen beobachteten Werten die Schrittgröße überschreitet. In diesem Fall erzeugt der beobachtete Wert mehr als einen Primärdatenpunkt Wenn das Intervall den Herzschlag überschreitet Eine Datenquelle, werden alle dazwischen liegenden primären Datenpunkte auf unbekanntes U gesetzt, andernfalls werden sie auf denselben gleichen Wert gesetzt. Bulk-Updates erstellen eine Komplikation für die abweichenden Erkennungs-RRAs, die für jeden primären Datenpunkt aktualisiert werden. Das primäre Problem Ist die Kosten für die Berechnung der Vorhersage und der vorhergesagten Abweichung Anders als bei der konventionellen Konsolidierungsfunktion, dh durchschnittlich oder maximal, sind die Interims-konsolidierten Datenpunkte CDPs für die fehlerhaften Erkennungs-RRAs nicht identisch und müssen separat berechnet werden. Diese Berechnungskosten beiseite liegen Implementierungsprobleme im Zusammenhang mit den Interdependenzen zwischen den fehlerhaften Erkennungs-RRAs Im Wesentlichen, um die Vorhersagen und die vorhergesagten Abweichungen in der Sequenz zu berechnen, benötigt jedes RRA seine abhängigen RRAs, die zum gleichen Zeitpunkt synchronisiert werden sollen. Allerdings ist die Architektur der rrdupdate-Funktion, jede RRA zu verarbeiten 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 parameter, 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 the 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, SEASONAL, 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 sa 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 will 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 tells 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 boundary 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 lines, 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.


No comments:

Post a Comment