Advertisement
Advertisement

More Related Content

Advertisement

RRDTool Basis- u. Hintergrundwissen

  1. RRDTool Basis- und Hintergrundwissen Simon Meggle WIRECARD Technologies AG Nagios-Workshop 2010, Nürnberg
  2. Agenda ● Grundlagen: Bestands- und Stromdaten ● Unterscheidung von Kennzahlen ● Berechnung von Stromdaten ● Datenfluss in RRDTool ● Datentypen ● Schritt 1: Transformierung zu Stromdaten ● Schritt 2: Normalisierung zu PDPs ● Schritt 3: Konsolidierung zu CDPs ● RRDTool lebt in der Vergangenheit! RRDTool Basis­ und Hintergrundwissen 2
  3. Grundlagen: Bestands- und Stromdaten Unterscheidung von Kennzahlen nach ● Bestandsdaten – Kontostand – Anzahl Bundesbürger – Kilometerzähler im Auto RRDTool Basis­ und Hintergrundwissen 3
  4. Grundlagen: Bestands- und Stromdaten Unterscheidung von Kennzahlen nach ● Bestandsdaten – Kontostand – Anzahl Bundesbürger – Kilometerzähler im Auto ● Stromdaten (=Veränderungen von Bestandsdaten über einen Zeitraum) – Geldbewegung pro Zeit ● Einkommen (+) ● Ausgaben (-) – Demografische Entwicklung pro Zeit; Zahl der ● Geburten (+) ● Sterbefälle (-) ● Zuwanderungen (+) ● Abwanderungen (-) – Gefahrene km pro Zeit (+) RRDTool Basis­ und Hintergrundwissen 4
  5. Grundlagen: Bestands- und Stromdaten Wozu Stromgrößen erfassen? Negativ-Beispiel für die Erfassung von Bestandsgrößen: Nachteile: ● Graph skaliert schlecht ● „alles sieht gleich aus“ RRDTool Basis­ und Hintergrundwissen 5
  6. Grundlagen: Bestands- und Stromdaten Wozu Stromgrößen erfassen? Negativ-Beispiel für die Erfassung von Bestandsgrößen: Nachteile: ● Graph skaliert schlecht ● „alles sieht gleich aus“ ● Interpretation nur anhand der Deltas möglich RRDTool Basis­ und Hintergrundwissen 6
  7. Grundlagen: Bestands- und Stromdaten Berechnung von Stromdaten = Veränderungen von Bestandsdaten (∆y) über Zeit (∆x): ∆y ∆x t RRDTool Basis­ und Hintergrundwissen 7
  8. Grundlagen: Bestands- und Stromdaten Berechnung von Stromdaten = Veränderungen von Bestandsdaten (∆y) über Zeit (∆x): Es seien: ● ∆y=50 Bytes in ● ∆x=10 Sekunden übertragen worden. ∆y = 50 ∆x = 10 t RRDTool Basis­ und Hintergrundwissen 8
  9. Grundlagen: Bestands- und Stromdaten Berechnung von Stromdaten = Veränderungen von Bestandsdaten (∆y) über Zeit (∆x): Es seien: ● ∆y=50 Bytes in ● ∆x=10 Sekunden übertragen worden. 50 Bytes Unbekannt: Was geschah wirklich in ∆x? … 2s nichts, ...in 5s 50 Bytes (=10 B/s) , ∆y = 50 … 3s nichts ? ∆x = 10 t RRDTool Basis­ und Hintergrundwissen 9
  10. Grundlagen: Bestands- und Stromdaten Berechnung von Stromdaten = Veränderungen von Bestandsdaten (∆y) über Zeit (∆x): Es seien: ● ∆y=50 Bytes in ● ∆x=10 Sekunden übertragen worden. 50 Bytes Unbekannt: Was geschah wirklich in ∆x? … 5s nichts, ...in 1s 50 Bytes (=50 B/s) , ∆y = 50 … 4s nichts ? ∆x = 10 t RRDTool Basis­ und Hintergrundwissen 10
  11. Grundlagen: Bestands- und Stromdaten Berechnung von Stromdaten = Veränderungen von Bestandsdaten (∆y) über Zeit (∆x): Es seien: ● ∆y=50 Bytes in ● ∆x=10 Sekunden übertragen worden. 50 Bytes Unbekannt: Was geschah wirklich in ∆x? … 1s nichts, ...in 2,5s 50 Bytes (=20 B/s) , ∆y = 50 … 6,5s nichts ? ∆x = 10 t RRDTool Basis­ und Hintergrundwissen 11
  12. Grundlagen: Bestands- und Stromdaten Berechnung von Stromdaten = Veränderungen von Bestandsdaten (∆y) über Zeit (∆x): EGAL! Fakt ist: 50 Bytes in 10s übertragen! Einzig berechenbare Bandbreite: 50 Bytes/10s = 5 Bytes/s Die Bandbreite 5 Bytes/s über 10s 50 Bytes drückt die übertragene ∆y = 50 Datenmenge aus. „Transformation“ ∆x = 10 t RRDTool Basis­ und Hintergrundwissen 12
  13. Datenfluss in RRDTool Schritt 1: Transformation / Datentypen DS:ds-name:DST:heartbeat:min:max ● DS (Datasources): Jede RRD besitzt ein oder mehrere DS; diese liefern die Datengrundlage für Primary Data Points (PDPs) ● ds-name: frei wählbarer Name der DS (1-19 Zeichen) ● DST (DataSourceType): ● COUNTER ● DERIVE ● ABSOLUTE ● GAUGE ● (COMPUTE: Verrechnung anderer DS, nicht in diesem Vortrag behandelt) ● heartbeat: maximaler Abstand zweier Updates mit Messwerten in Sek. (= „PDP-timeout“, wird hinter t=now „hinterhergezogen“) ● min/max: Werte außerhalb dieser Extrema werden als UNKNOWN gespeichert (= „Sanity-Check“, um z.b. „­800°C“ zu vermeiden) RRDTool Basis­ und Hintergrundwissen 13
  14. Datenfluss in RRDTool Schritt 1: Transformation / Datentypen DS:ds-name:DST:heartbeat:min:max ● DS (Datasources): Jede RRD besitzt ein oder mehrere DS; diese liefern die Datengrundlage für Primary Data Points (PDPs) ● ds-name: frei wählbarer Name der DS (1-19 Zeichen) ● DST (DataSourceType): ● COUNTER ● DERIVE ● ABSOLUTE ● GAUGE ● (COMPUTE: Verrechnung anderer DS, nicht in diesem Vortrag behandelt) ● heartbeat: maximaler Abstand zweier Updates mit Messwerten in Sek. (= „PDP-timeout“, wird hinter t=now „hinterhergezogen“) ● min/max: Werte außerhalb dieser Extrema werden als UNKNOWN gespeichert (= „Sanity-Check“, um z.b. „­800°C“ zu vermeiden) ○/⬤: PNP: über Custom Templates pro Check justierbar (PNP 0.4 / 0.6)! RRDTool Basis­ und Hintergrundwissen 14
  15. Datenfluss in RRDTool Wert, timestamp Data Type Data Type COUNTER DERIVE Transformation Data Type ABSOLUT (DS) GAUGE Normalisierung (PDP) Konsolidierung RRA (CDP) RRDTool Basis­ und Hintergrundwissen 15
  16. Datenfluss in RRDTool Schritt 1: Transformation / Datentypen COUNTER DERIVE ABSOLUTE GAUGE zunehmender wie COUNTER; wie COUNTER; Wert Counter-Wert zu-/abnehmend zählt immer ab 0 Input gespeichert Wert wird ∆ wert / ∆ t ∆ wert / ∆ t wert / ∆ t wird durchgereicht Overflow- Check  Bytecounter, Temperatur, Bidirektionale COUNTER mit Beispiele Wasseruhr, Füllstand, Km/h, Pumpe vielen Overflows Kilometerzähler KWh Stromdaten Bestandsdaten RRDTool Basis­ und Hintergrundwissen 16
  17. Datenfluss in RRDTool Schritt 1: Transformation / Datentypen COUNTER DERIVE ABSOLUTE GAUGE zunehmender wie COUNTER; wie COUNTER; Wert Counter-Wert zu-/abnehmend zählt immer ab 0 Input gespeichert Wert wird ∆ wert / ∆ t ∆ wert / ∆ t wert / ∆ t wird durchgereicht Overflow- Check  Bytecounter, Temperatur, Bidirektionale COUNTER mit Beispiele Wasseruhr, Füllstand, Km/h, Pumpe vielen Overflows Kilometerzähler KWh Beispiel-Werte (bei check_interval=60s) 60 1 1 1 60 120 1 1 2 120 180 1 1 3 180 300 2 2 5 300 60 -- -4 1 60 Stromdaten Bestandsdaten RRDTool Basis­ und Hintergrundwissen 17
  18. Datenfluss in RRDTool Schritt 1: Transformation / Datentypen COUNTER DERIVE ABSOLUTE GAUGE zunehmender wie COUNTER; wie COUNTER; Wert Counter-Wert zu-/abnehmend zählt immer ab 0 Input gespeichert Wert wird ∆ wert / ∆ t ∆ wert / ∆ t wert / ∆ t wird durchgereicht Overflow- Check  Bytecounter, Temperatur, Bidirektionale COUNTER mit Beispiele Wasseruhr, Füllstand, Km/h, Pumpe vielen Overflows Kilometerzähler KWh Beispiel-Werte (bei check_interval=60s) 60 1 1 1 wert(aktuell) !> wert(letzter) 60 120 1 1 2 120 180 1 1 3 180 300 2 2 5 300 60 -- -4 1 60 Stromdaten Bestandsdaten RRDTool Basis­ und Hintergrundwissen 18
  19. Datenfluss in RRDTool Schritt 1: Transformation / Datentypen COUNTER DERIVE ABSOLUTE GAUGE zunehmender wie COUNTER; wie COUNTER; Wert Counter-Wert zu-/abnehmend zählt immer ab 0 Input gespeichert Wert wird ∆ wert / ∆ t ∆ wert / ∆ t wert / ∆ t wird durchgereicht Overflow- Check  Bytecounter, Temperatur, Bidirektionale COUNTER mit Beispiele Wasseruhr, Füllstand, Km/h, Pumpe vielen Overflows Kilometerzähler KWh Beispiel-Werte (bei check_interval=60s) 60 1 1 1 60 ∆wert = -240 ! 120 1 1 2 120 180 1 1 3 180 300 2 2 5 300 60 -- -4 1 60 Stromdaten Bestandsdaten RRDTool Basis­ und Hintergrundwissen 19
  20. Datenfluss in RRDTool Schritt 1: Transformation / Datentypen COUNTER DERIVE ABSOLUTE GAUGE zunehmender wie COUNTER; wie COUNTER; Wert Counter-Wert zu-/abnehmend zählt immer ab 0 Input gespeichert Wert wird ∆ wert / ∆ t ∆ wert / ∆ t wert / ∆ t wird durchgereicht Overflow- Check  Bytecounter, Temperatur, Bidirektionale COUNTER mit Beispiele Wasseruhr, Füllstand, Km/h, Pumpe vielen Overflows Kilometerzähler KWh Beispiel-Werte (bei check_interval=60s) wert = 300 ! 60 1 1 1 60 120 1 1 2 120 180 1 1 3 180 300 2 2 5 300 60 -- -4 1 60 Stromdaten Bestandsdaten RRDTool Basis­ und Hintergrundwissen 20
  21. Datenfluss in RRDTool Schritt 1: Transformation / Datentypen COUNTER DERIVE ABSOLUTE GAUGE zunehmender wie COUNTER; wie COUNTER; Wert Counter-Wert zu-/abnehmend zählt immer ab 0 Input gespeichert Wert wird ∆ wert / ∆ t ∆ wert / ∆ t wert / ∆ t wird durchgereicht Overflow- Check  Bytecounter, Temperatur, Bidirektionale COUNTER mit Beispiele Wasseruhr, Füllstand, Km/h, Pumpe vielen Overflows Kilometerzähler KWh Beispiel-Werte (bei check_interval=60s) 60 1 1 1 60 wert = 60 ! 120 1 1 2 120 180 1 1 3 180 300 2 2 5 300 60 -- -4 1 60 Stromdaten Bestandsdaten RRDTool Basis­ und Hintergrundwissen 21
  22. Datenfluss in RRDTool Wert, timestamp Data Type Data Type COUNTER DERIVE Transformation Data Type ABSOLUT (DS) GAUGE Normalisierung (PDP) Konsolidierung RRA (CDP) RRDTool Basis­ und Hintergrundwissen 22
  23. Datenfluss in RRDTool Schritt 2: Normalisierung Normalisierung = Ergebnisse mit unterschiedlicher Grundlage (hier: t) vergleichbar machen 50 30 20 10 10 10 t RRDTool Basis­ und Hintergrundwissen 23
  24. Datenfluss in RRDTool Schritt 2: Normalisierung zu PDPs = Primary Data Points PDP1 = 60s 50 40 30 20 10 t 40 30 20 10 t PDP1 RRDTool Basis­ und Hintergrundwissen 24
  25. Datenfluss in RRDTool Schritt 2: Normalisierung zu PDPs = Primary Data Points PDP1 = 45s*10B/s 60s 50 40 30 20 10 t 40 30 20 10 t PDP1 RRDTool Basis­ und Hintergrundwissen 25
  26. Datenfluss in RRDTool Schritt 2: Normalisierung zu PDPs = Primary Data Points PDP1 = 45s*10B/s + 15s*20B/s 60s 50 40 30 20 10 t 40 30 20 10 t PDP1 RRDTool Basis­ und Hintergrundwissen 26
  27. Datenfluss in RRDTool Schritt 2: Normalisierung zu PDPs = Primary Data Points PDP1 = 45s*10B/s + 15s*20B/s 60s 60s 50 40 30 20 10 t 40 30 20 10 t PDP1 RRDTool Basis­ und Hintergrundwissen 27
  28. Datenfluss in RRDTool Schritt 2: Normalisierung zu PDPs = Primary Data Points PDP1 = 45s*10B/s + 15s*20B/s = 450B + 300B = 12,5 B/s 60s 60s 60s 50 40 30 20 10 t 40 30 20 10 t PDP1 RRDTool Basis­ und Hintergrundwissen 28
  29. Datenfluss in RRDTool Schritt 2: Normalisierung zu PDPs = Primary Data Points PDP2 = 30s*20B/s + 30s*10B/s = 600B + 300B = 15 B/s 60s 60s 60s 60s 50 40 30 20 10 t 40 30 20 10 t PDP1 PDP2 RRDTool Basis­ und Hintergrundwissen 29
  30. Datenfluss in RRDTool Schritt 2: Normalisierung zu PDPs = Primary Data Points PDP4 = 15s*50B/s + 45s*30B/s = 750B + 1350B = 35 B/s 60s 60s 60s 60s 60s 60s 50 40 30 20 10 t 40 30 20 10 t PDP1 PDP2 PDP3 PDP4 RRDTool Basis­ und Hintergrundwissen 30
  31. Datenfluss in RRDTool Schritt 2: Normalisierung zu PDPs = Primary Data Points PDP5 = 45s*10B/s + 15s*0B/s = 450B = 7,5 B/s 60s 60s 60s 60s 50 40 30 20 10 t 40 30 20 10 t PDP4 PDP5 RRDTool Basis­ und Hintergrundwissen 31
  32. Datenfluss in RRDTool Schritt 2: Normalisierung zu PDPs = Primary Data Points PDP 6 + 7= UNKNOWN PDP 8 = KNOWN, da mehr als die Hälfte des Intervalls bekannt sind 60s 60s 50 40 30 20 10 Heartbeat = 120s t 40 30 20 10 t PDP4 PDP5 PDP6 PDP7 PDP8 RRDTool Basis­ und Hintergrundwissen 32
  33. Datenfluss in RRDTool Wert, timestamp Data Type Data Type COUNTER DERIVE Transformation Data Type ABSOLUT (DS) GAUGE Normalisierung (PDP) Konsolidierung RRA (CDP) RRDTool Basis­ und Hintergrundwissen 33
  34. Datenfluss in RRDTool Schritt 3: Konsolidierung zu CDPs RRA:CF:xff:steps:rows ● RRA: Round-Robin-Archive speichern die Werte in Consolidated Data Points (CDPs) ( + Timestamp) ● steps: Anzahl der zu konsolidierenden PDPs ● CF: Konsolidierungsfunktionen bestimmen, wie PDPs in CDPs verrechnet werden: ● AVERAGE: Mittelwert ● MIN: Kleinster Wert ● MAX: Höchster Wert ● LAST: Letzter Wert ● xff (XfilesFactor): maximaler Anteil PDPs, die in der Berechnung eines CDP unknown sein dürfen; andernfalls CDP=unknown (0..0.99999999) ● rows: Anzahl der CDPs, die das RRA speichern soll RRDTool Basis­ und Hintergrundwissen 34
  35. Datenfluss in RRDTool Schritt 3: Konsolidierung zu CDPs RRA:AVERAGE:0:3:360 40 30 20 10 t PDP1 PDP2 PDP3 40 30 20 10 t CDP1 RRDTool Basis­ und Hintergrundwissen 35
  36. Datenfluss in RRDTool Schritt 3: Konsolidierung zu CDPs RRA:AVERAGE:0:3:360 RRA:MAX:0:3:360 40 40 30 30 20 20 10 10 t t PDP1 PDP2 PDP3 PDP1 PDP2 PDP3 40 40 30 30 20 20 10 10 t t CDP1 CDP1 RRDTool Basis­ und Hintergrundwissen 36
  37. Datenfluss in RRDTool Schritt 3: Konsolidierung zu CDPs RRA:AVERAGE:0:3:360 RRA:MAX:0:3:360 RRA:LAST:0:3:360 40 40 40 30 30 30 20 20 20 10 10 10 t t t PDP1 PDP2 PDP3 PDP1 PDP2 PDP3 PDP1 PDP2 PDP3 40 40 40 30 30 30 20 20 20 10 10 10 t t t CDP1 CDP1 CDP1 RRDTool Basis­ und Hintergrundwissen 37
  38. Datenfluss in RRDTool Schritt 3: Konsolidierung zu CDPs RRA:AVERAGE:0:1:400 # 6,6h (1 PDP á 60s * 400) RRDTool Basis­ und Hintergrundwissen 38
  39. Datenfluss in RRDTool Schritt 3: Konsolidierung zu CDPs RRA:AVERAGE:0:1:400 # 6,6h (1 PDP á 60s * 400) RRA:AVERAGE:0:3:400 # 20,0h (3 PDP á 60s * 400) RRDTool Basis­ und Hintergrundwissen 39
  40. Datenfluss in RRDTool Schritt 3: Konsolidierung zu CDPs RRA:AVERAGE:0:1:400 # 6,6h (1 PDP á 60s * 400) RRA:AVERAGE:0:3:400 # 20,0h (3 PDP á 60s * 400) RRA:AVERAGE:0:7:400 # 46,6h (7 PDP á 60s * 400) RRDTool Basis­ und Hintergrundwissen 40
  41. Datenfluss in RRDTool Schritt 3: Konsolidierung zu CDPs RRA:AVERAGE:0:1:400 # 6,6h (1 PDP á 60s * 400) RRA:AVERAGE:0:3:400 # 20,0h (3 PDP á 60s * 400) RRA:AVERAGE:0:7:400 # 46,6h (7 PDP á 60s * 400) RRA:AVERAGE:0:15:400 # 100,0h (15 PDP á 60s * 400) RRDTool Basis­ und Hintergrundwissen 41
  42. Datenfluss in RRDTool Schritt 3: Konsolidierung zu CDPs t RRA:AVERAGE:0:1:400 # 6,6h (1 PDP á 60s * 400) RRA:AVERAGE:0:3:400 # 20,0h (3 PDP á 60s * 400) RRA:AVERAGE:0:7:400 # 46,6h (7 PDP á 60s * 400) RRA:AVERAGE:0:15:400 # 100,0h (15 PDP á 60s * 400) „now“ RRDTool Basis­ und Hintergrundwissen 42
  43. RRDTool lebt in der Vergangenheit! (nach http://www.vandenbogaerdt.nl/rrdtool/) Aufgabe: Monitoring meiner Geldbörse RRDTool Basis­ und Hintergrundwissen 43
  44. RRDTool lebt in der Vergangenheit! RRDTool Basis­ und Hintergrundwissen 44
  45. RRDTool lebt in der Vergangenheit! Anlegen einer neuen RRD: rrdtool create wallet.rrd         ­­start 1130799600 # 00:00 Uhr RRDTool Basis­ und Hintergrundwissen 45
  46. RRDTool lebt in der Vergangenheit! Anlegen einer neuen RRD: rrdtool create wallet.rrd         ­­start 1130799600 # 00:00 Uhr         ­­step 3600 # stepsize = 1h RRDTool Basis­ und Hintergrundwissen 46
  47. RRDTool lebt in der Vergangenheit! Anlegen einer neuen RRD: rrdtool create wallet.rrd         ­­start 1130799600 # 00:00 Uhr         ­­step 3600 # stepsize = 1h         DS:content:GAUGE:86400:0:U # hb=1 Tag, min=0, max=U RRDTool Basis­ und Hintergrundwissen 47
  48. RRDTool lebt in der Vergangenheit! Anlegen einer neuen RRD: rrdtool create wallet.rrd         ­­start 1130799600 # 00:00 Uhr         ­­step 3600 # stepsize = 1h         DS:content:GAUGE:86400:0:U # hb=1 Tag, min=0, max=U         RRA:AVERAGE:0:1:48 # xff=0, 1 step, 48 CDPs (48h) RRDTool Basis­ und Hintergrundwissen 48
  49. RRDTool lebt in der Vergangenheit! Befüllen der RRD: rrdtool update wallet.rrd 1130828400:75.00 # 08:00 rrdtool update wallet.rrd 1130832000:60.00 # 09:00 rrdtool update wallet.rrd 1130835600:55.00 # 10:00 rrdtool update wallet.rrd 1130842800:45.00 # 12:00 rrdtool update wallet.rrd 1130864400:25.00 # 18:00 rrdtool update wallet.rrd 1130868000:10.00 # 19:00 rrdtool update wallet.rrd 1130886000:0.00 # 24:00 RRDTool Basis­ und Hintergrundwissen 49
  50. RRDTool lebt in der Vergangenheit! Graph: RRDTool Basis­ und Hintergrundwissen 50
  51. RRDTool lebt in der Vergangenheit! Problem: Unsere Liste beschreibt die Zukunft, = was wir haben... RRDTool Basis­ und Hintergrundwissen 51
  52. RRDTool lebt in der Vergangenheit! Problem: Unsere Liste beschreibt die Zukunft, = was wir haben... RRDTool beschreibt die Vergangenheit, = was wir hatten! RRDTool Basis­ und Hintergrundwissen 52
  53. RRDTool lebt in der Vergangenheit! Lösung: Update der Datenbank, bevor sich der Betrag in der Geldbörse ändert! RRDTool Basis­ und Hintergrundwissen 53
  54. RRDTool lebt in der Vergangenheit! Lösung: Update der Datenbank, bevor sich der Betrag in der Geldbörse ändert! rrdtool update wallet.rrd 1130828400:0.00 # 08:00 (75.00) rrdtool update wallet.rrd 1130832000:75.00 # 09:00 (60.00) rrdtool update wallet.rrd 1130835600:60.00 # 10:00 (55.00) rrdtool update wallet.rrd 1130842800:55.00 # 12:00 (45.00) rrdtool update wallet.rrd 1130864400:45.00 # 18:00 (25.00) rrdtool update wallet.rrd 1130868000:25.00 # 19:00 (10.00) rrdtool update wallet.rrd 1130886000:10.00 # 24:00 (00.00) RRDTool Basis­ und Hintergrundwissen 54
  55. RRDTool lebt in der Vergangenheit! Lösung: Update der Datenbank, bevor sich der Betrag in der Geldbörse ändert! RRDTool Basis­ und Hintergrundwissen 55
  56. Q&A RRDTool Basis­ und Hintergrundwissen 56
Advertisement