RRDTool

Auf der Seite MRTG Monitoring wurde schon mehrfach das Programm RRDTOOL aufgeführt worden. Auch andere Programme wie z.B. NTOP, und viele andere (Siehe RRDWorld auf http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/rrdworld/) nutzen RRDTOOL. Also ist es an der Zeit diese Komponente etwas genauer unter die Lupe zu nehmen:

Warum RRDTool ?

Eine der wesentlichen Funktionen von MRTG ist das Wachstum der Datenbank. Die Datenbank bleibt nämlich immer gleich groß, das MRTG bei jedem Durchlauf sehr alte Werte einfach zusammenfasst. So ist eines der größten Probleme umgangen, dass die Festplatte mit Aufzeichnungen voll geschrieben wird. Der Preis dieses Verfahrens ist natürlich, dass Informationen je weiter Sie in der Vergangenheit liegen immer ungenauer werden. Kann MRTG z.B. den letzten Tag noch auf 5 Minuten genau auflösen, so sind Aussagen von Werten vor einigen Monaten ungenauer aber für eine Trendabschätzung vollkommen ausreichend.

Dieses Prinzip von MRTG wurde von Herrn Oetiker weiter entwickelt und steht als RRDTOOL als eigenständige Software bereit. RRDTOOL selbst kann also nicht losgelöst verwendet werden, sondern wird seinerseits in andere Programme eingebunden. Dabei sind im wesentlichen folgende Funktionen verfügbar:

Um RRDTOOL daher nutzen zu können, müssen Sie entweder eine vorgefertigte Software nutzen oder selbst entsprechende Programme oder Skripte schreiben. RRDTOOL steht dabei als EXE-Programme oder PERL-Modul zur Verfügung. Diese drei wesentlichen Tätigkeiten möchte ich an Hand eines einfachen Beispiels für Windows erläutern:

Anlegen einer Datenbank

Der erste und einmalige Schritt ist die Anlage einer Datenbank. RRDTOOL wird dazu unter Angabe eines Dateinamens gestartet. Zusätzlich müssen die Werte angegeben werden,  die in der Datenbank gespeichert werden sollen. In einer Datenbank können problemlos auch mehrere Werte parallel gespeichert werden, so dass Sie zur Ablage von 100 Werten nicht 100 Dateien nutzen müssen. Ein Aufruf könnte z.B.: so aussehen (Alles in einer Zeile):

rrdtool create cpu.rrd --start 1023654125 --step 120
        DS:CPULast:GAUGE:240:0:100
        RRA:AVERAGE:0.5:12:5

Dabei bedeutet:

Das klingt alles erst mal schrecklich aber SQL und andere Datenbanken machen es einem auch nicht einfacher.

Werte addieren

Nachdem die Datenbank nun mal erzeugt ist, müssen wir diese mit Daten füllen. Dazu wird ebenfalls wieder RRDTOOL aufgerufen.

RRDTOOL update cpu.rrd N:50

Damit sagen wir RRDTOOL, dass er für den aktuellen Zeitpunkt den Wert 50 eintragen soll. Wir können nun immer wieder (idealer weise alle 100 Sekunden im Beispiel) RRDTOOL aufrufen, um weiter Werte in die Datenbank zu bringen.

Daten extrahieren

Die Daten in der Datenbank können wir auf zwei Arten ausgeben lassen;

Die Textausgabe können Sie z.B. wie folgt erzeugen:

rrdtool dump cpu.rrd

RRDTool gibt ihnen eine einfache Liste der Werte als XML-Format aus. Die Grafikausgabe ist sehr viel leistungsfähiger. Dazu sollten Sie direkt die Referenz auf http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/manual/rrdgraph.html oder einige Beispiele bestehender Lösungen lesen

Weitere Links

Keywords:MRTG RRDTOOL Monitoring