BenBE's humble thoughts Thoughts the world doesn't need yet …

26.03.2012

RRDTool mit PHP nutzen

Filed under: Software — Schlagwörter: , , , , , — BenBE @ 00:03:40

Wer meinen Blog bereits ein wenig verfolgt hat, wird mitbekommen haben, dass manchmal Graphen auftauchen, die mit RRDTool erzeugt wurden. Nun habe ich ja bereits einmal zu RRDTool etwas geschrieben, aber den von mir geschriebenen Wrapper, sowie den aktuellen Code-Stand (nach angewendetem Patch) hatte ich bisher noch nicht weiter veröffentlicht. Das werde ich hier jetzt einfach mal nachholen, damit sich keine weiter beschweren kann, dass RRDTool mit PHP so kompliziert zu nutzen geht.

Das Projekt besteht hierbei aus zwei Teilen: Neben der PHP-Extension, die sich um die Anbindung an librrd4 kümmert, zusätzlich aus einem Userland-Teil, der einen Wrapper um die API bildet und eine ganze Menge der Operationen in OOP kapselt. Die API dazu ist zwar nicht die schönste, aber für meine Projekte hatte das bisher immer vollkommen gereicht und die wichtigsten Funktionen sind leicht nutzbar. Zusätzlich hab ich einen Log-Parser basierend auf meinem Wrapper als eine kleine Demo-Anwendung eingebaut, so dass man sich die Funktionsweise etwas anschauen kann.

Aber der Reihe nach. Wie bereits erwähnt besteht dieses Release aus 3 Teilen, die alle aufeinander aufbauen. Um also den Log Parser zu testen, müssen alle Teile heruntergeladen werden:

  1. PHP-Extension für RRDTool
  2. RRDTool Userland Wrapper Library
  3. Log Parser unter Nutzung der RRDTool PHP Extension

Nach dem Herunterladen müssen alle Teile entpackt werden, wobei die Library und die Beispiel-Anwendung in das gleiche Verzeichnis entpackt werden können.

Für die Installation der PHP-Extension muss man diese in ein Verzeichnis entpacken und wie folgt vorgehen:

phpize
./configure
make
make install

Wichtig ist, dass hierzu die Developement Header von librrd4 installiert sind, da das configure sonst fehlschlägt. Die Extension sollte sowohl mit PHP 4.x als auch PHP 5.x (bis 5.3 getestet; 5.4 sollte aber auch gehen) laufen. Bei Problemen einfach fragen.

Nachdem die Extension bei PHP installiert ist, sollte man httplog.php einmalig mit dem Editor öffnen und die beiden Arrays am Anfang um die gewünschten Domains und Pfade zu den Logfiles ergänzen. Das Lesen komprimierter Logfiles ist hierbei wie im Sample gezeigt auch möglich. Sollte er mit dem Log-Format nicht zurechtkommen, muss dieses ggf. in der Hauptschleife (siehe den regulären Ausdruck) angepasst werden.

Sollte es Fragen oder Probleme bei der Nutzung der Extension geben, bitte einen kurzen Bugreport an mich; dann schaue ich mir das an. Wer das Script einmal live in Action sehen möchte, sollte einen Blick auf die Site Stats für geshi.org werfen.

Flattr this!

Ein Kommentar »

  1. Hi Benny, danke für das Veröffentlichen Deiner RRDTool PHP Implementierung. Funktioniert einwandfrei. VG Jens

    Kommentar by Jens — 12.01.2013 @ 10:30:18

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress