Einstieg in RRDtool

Mit RRDtool lassen sich Daten aufzeichnen und als Grafik visualisieren. Wir zeigen wie es geht.

vorlesen Druckansicht
Lesezeit: 9 Min.
Von
  • Charly KĂĽhnast
Inhaltsverzeichnis

Im Artikel PomodoPi zur Gartenbewässerung in Ausgabe 3/15 der Make haben wir ausgiebig Gebrauch vom Datenbanktool RRDtool gemacht. Allerdings war der Einstieg in das Werkzeug etwas kurz, weshalb wir hier eine längere Einführung nachliefern.

Die Kommandos des RRDTool-Pakets helfen dabei, Daten in eine Round-Robin-Datenbank einzutragen, von dort auszulesen sowie zu Grafiken zu verarbeiten. Sie installieren das Paket mit diesem Kommando:

sudo apt-get install rrdtool

In einer Round-Robin-Datenbank lassen sich alle möglichen numerischen Daten speichern: Datendurchsatz in Bytes, Zähler, Temperatur, Lüfterdrehzahl – die Möglichkeiten sind fast endlos. Leider ist die Syntax etwas sperrig und nicht intuitiv zu verstehen. Deshalb wollen wir hier anhand eines einfachen Beispiels erklären, wie Sie RRDtool für Ihre eigenen Zwecke nutzen können. Als Beispiel nehmen wir die CPU-Temperatur des Raspberry Pi. Wir werden sie alle fünf Minuten ermitteln, in einer RRD speichern und schließlich einen Verlaufsgraphen zeichnen lassen.c

Mit dem Kommando rrdtool create wird eine neue RRD erstellt. Weitere Parameter legen fest, wie viele Datenpunkte in welchen Intervallen die Datenbank aufnimmt und wie sie mit fortschreitender Zeit konsolidiert
werden. Das folgende Kommando erstellt eine RRD, die fĂĽr die Aufnahme von Temperaturdaten geeignet ist (es ist eine einzige Zeile, die zur besseren Lesbarkeit umbrochen wird):

rrdtool create cputemp.rrd --step 300 DS:temp:GAUGE:600:-20:90 RRA:AVERAGE:0.5:12:24 RRA:AVERAGE:0.5:288:31

Schauen wir uns das Kommando StĂĽck fĂĽr StĂĽck an:

  • rrdtool create cputemp.rrd: Die Datenbank soll erstellt werden und den Namen cputemp.rrd bekommen.
  • --step 300: Alle 300 Sekunden (= fĂĽnf Minuten) soll ein Temperaturwert in die Datenbank geschrieben werden.

In der nächsten Zeile, die mit DS beginnt, werden die Eigenschaften der Datenquelle beschrieben:

  • DS: DS steht fĂĽr Data Source = Datenquelle.
  • temp: Das ist der Name der Datenquelle. Diesen Namen können Sie frei wählen.
  • GAUGE: Der Typ der Datenquelle (Data Source Type, DST). GAUGE bedeutet, dass der ĂĽbergebene Zahlwert – der positiv oder negativ sein darf – unverändert gespeichert wird. Andere Typen sind COUNTER (speichert die Differenz zum vorherigen Wert), DERIVE (wie COUNTER, aber auch mit negativen Werten) und ABSOLUTE (nimmt an, dass der vorherige Wert nach dem Auslesen immer auf null zurĂĽckfällt).
  • 600: Dieser Wert heiĂźt Heartbeat. Eigentlich sollte alle 300 Sekunden ein Wert in die Datenbank geschrieben werden. Bleibt einmal ein Wert aus, so akzeptiert RRDtool auch noch später eintreffende Werte, aber nur bis zu einer maximalen Verspätung von 600 Sekunden. Danach wird der Datenpunkt als undefined in die Datenbank eingetragen.
  • -20:90: Das sind die Minimal- und Maximalwerte, die die Datenbank akzeptiert. Da wir in diesem Beispiel Temperaturdaten speichern, ist der Bereich zwischen minus 20 und 90 Grad Celsius plausibel. WĂĽrden wir versuchen, Werte auĂźerhalb dieses Bereichs in die Datenbank zu schreiben, wĂĽrde RRDtool die Werte verwerfen und stattdessen undefined speichern.

Die beiden nächsten Zeilen definieren, wie ältere Daten konsolidiert (zusammengefasst) werden:

  • RRA: Das SchlĂĽsselwort steht fĂĽr Round Robin Archive.
  • AVERAGE: Mehrere Datenpunkte werden zusammengefasst, indem ihr Mittelwert gebildet wird. Andere Möglichkeiten sind hier MAX (der höchste Wert bleibt erhalten), MIN (niedrigster Wert) und LAST (letzter Wert).
  • 0.5:12:24: Zwölf Datenpunkte werden zu einem Archiv-Datenpunkt zusammengefasst. In der RRDtool-Sprache heiĂźen die ursprĂĽnglichen Datenpunkte Primary Data Points, kurz PDP, die konsolidierten Datenpunkte Consolidated Data Points, CDP. Von den 12 PDPs mĂĽssen mindestens die Hälfte (Faktor 0,5 – das ist der sogenannte X-Files Factor, XFF) gĂĽltig sein, also nicht undefined. Die letzte Zahl bedeutet, dass in diesem Round-Robin-Archiv 24 CDPs Platz finden.

Die letzte Zeile definiert nach dem gleichen Muster ein weiteres Round-Robin-Archiv fĂĽr nochmals weiter konsolidierte Daten.