Aus Linux-Magazin 05/2013

Log- und andere Daten visualisieren

© Gennadiy Poznyakov, 123RF.com

Logdateien enthalten äußerst nützliche Spuren des täglichen Geschehens – wären sie nur nicht immer so dröge. Glücklicherweise gibt es einige Spezialwerkzeuge, die aus der Datenmasse nicht nur bunte, leicht interpretierbare Grafiken generieren, sondern diese auch noch über die Zeit animieren.

Wer seine Logdateien auswerten will, greift zu einem Logviewer. Diese Werkzeuge zeigen im einfachsten Fall die Daten in Tabellenform an, etwas aufgewecktere Gesellen präsentieren immerhin kleine Balken-, Torten- oder Liniendiagramme. Diese Grafiken bieten aber meist nur eine Momentaufnahme. Wesentlich aufschlussreicher wäre es, etwa die Auslastung eines Webservers über einen gewissen Zeitraum zu verfolgen.

Gerade technische Visualisierungen haben sich Gource, Code_swarm, Logstalgia, Fudgie, Conky und Cpuplayer in diesem Test zur Aufgabe gemacht. Jedes der sechs Programme hat sich dabei auf ein ganz bestimmtes Anwendungsgebiet spezialisiert. Logstalgia animiert beispielsweise die Accesslogs eines Webservers, während sich Gource der Änderungen in einer Versionsverwaltung annimmt. Jedes Tool wählt zudem eine etwas andere Darstellungsform – Punkte und Kreise scheinen sich jedoch einer ziemlich großen Beliebtheit zu erfreuen.

Alle Kandidaten sind für normale Desktop-PCs ausgelegt und nicht für den direkten Einsatz auf einem (virtuellen) Server gedacht. Bis auf wenige Ausnahmen muss der Administrator daher die zu analysierenden Daten auf seinen Computer transferieren. Logstalgia und Gource geben ihre Grafiken übrigens über die Open-GL-Schnittstelle aus.

Gource

Der Inhalt einer Versionsverwaltung sieht wie eine bunte Baumkrone aus – zumindest wenn der Admin Gource [1] darauf ansetzt. Nach dem Start erscheinen zunächst kleine bunte Bällchen, die jeweils einer (Quellcode-)Datei entsprechen. Ihre Farbe hängt vom Dateityp ab, C++-Dateien erscheinen beispielsweise blau. Alle Dateien, die in einem gemeinsamen Verzeichnis liegen, versammeln sich zu einem kleinen Haufen. Die Verzeichnisstruktur zeichnet Gource als dünne weiße Äste ein (siehe Abbildung 1).

Abbildung 1: Hier visualisiert Gource das eigene SVN-Repository, die zugehörige Animation lässt sich im Bild leider nur schlecht darstellen.

Abbildung 1: Hier visualisiert Gource das eigene SVN-Repository, die zugehörige Animation lässt sich im Bild leider nur schlecht darstellen.

Die am Projekt beteiligten Entwickler visualisiert Gource als Spielfiguren. Sie strahlen mit einem Lichtkegel die Dateien an, die sie gerade erstellt oder verändert haben. Ein Projektmanager oder Administrator kann also anhand jeder Puppe leicht verfolgen, welche Dateien der zugehörige Entwickler wann angelegt und modifiziert hat.

Die Visualisierungssoftware zapft für ihre Zwecke die Repositories von Subversion, Git, Mercurial und Bazaar an, aufgeweckte Administratoren können dem Werkzeug aber auch den Umgang mit weiteren Logformaten beibringen [2].

Gource beantwortet vor allem zwei Fragen: Welche Entwickler waren in der Vergangenheit besonders aktiv und wie hat sich die Projektstruktur im Laufe der Zeit verändert? Bilden sich dichte bunte Punktehäufchen, so befinden sich viele unterschiedliche Dateien in einem Verzeichnis, was ein Indiz für ein schlecht strukturiertes Projekt sein kann (Abbildung 2). Das gilt auch bei starken Verästelungen, was auf eine unübersichtliche Verzeichnisstruktur hindeutet.

Abbildung 2: Schon bei wenigen Dateien kann die Ausgabe von Gource unübersichtlich eng werden, wodurch die Details verschwinden.

Abbildung 2: Schon bei wenigen Dateien kann die Ausgabe von Gource unübersichtlich eng werden, wodurch die Details verschwinden.

Abschließend erhalten Administratoren noch einen Einblick in die Aktivität des Projekts: Leuchten viele Lichtkegel auf, spricht das für eine hohe Geschäftigkeit. Bei sehr großen Projekten fällt es allerdings trotz Zeitlupenfunktion und Navigationsmöglichkeit schwer, im Gewusel den Überblick zu behalten – so erscheint beispielsweise der Linux-Kernel wie ein einziges großes Feuerwerk.

Code_swarm

Eine Alternative zu Gource ist das in Java geschriebene, schon etwas angestaubte Code_swarm. Seine Entwickler bezeichnen es als “Experiment in organischer Software-Visualisierung” [3]. Ähnlich wie Gource animiert Code_swarm die Änderungen eines Projekts in einer Versionsverwaltung. Dateien erscheinen als Punkte, ihre Farbe deutet auch hier auf den Dateityp hin (Abbildung 3).

Abbildung 3: Die von Code_swarm gezeichneten Grafiken visualisieren die Dateien in der Versionsverwaltung und erinnern an eine Sternenkarte.

Abbildung 3: Die von Code_swarm gezeichneten Grafiken visualisieren die Dateien in der Versionsverwaltung und erinnern an eine Sternenkarte.

Sobald ein Programmierer eine Datei ändert, wandert der zugehörige Punkt auf seinen Namen zu. Inaktive Entwickler blendet Code_swarm langsam aus. Zusätzlich zeigt ein Histogramm am unteren Fensterrand die bisherige Aktivität an, hohe Ausschläge verweisen auf viele Änderungen. Anders als bei Gource erkennt der interessierte Admin auf den ausgegebenen Grafiken allerdings grundsätzlich nur wirre Punktewolken. An der Größe der Namen lässt sich erahnen, welcher Entwickler besonders fleißig war.

Logstalgia

Wer seinem Webserver gern mal beim Pong-Spielen zusehen möchte, greift zu Logstalgia [4]. Das kleine Programm liest Accesslogs und visualisiert die darin abgelegten Anfragen als kleine Punkte. Diese wandern von ihrer Ursprungs-IP-Adresse beziehungsweise dem Domainnamen am linken Bildschirmrand zu der auf dem Server angefragten URL am rechten (Abbildung 4).

Abbildung 4: Prasseln zu viele Anfragen auf einen Server ein, sieht auch das geübte Auge den Wald vor lauter Bäumen nicht.

Abbildung 4: Prasseln zu viele Anfragen auf einen Server ein, sieht auch das geübte Auge den Wald vor lauter Bäumen nicht.

Logstalgia erwartet die zugeführten Logdateien im Common- oder Combined-Logformat, wie sie auch Apache und Nginx ausgeben.

Jedem Host ist eine eindeutige Farbe zugeordnet, in die Logstalgia auch dessen Anfragen taucht. So kann der Admin die Punkte während des Fluges von links nach rechts leichter voneinander unterscheiden. Sofern der Webserver die Anfrage beantwortet, schmettert ein kleiner Balken den zugehörigen Punkt zurück. Sollte eine Anfrage zu einem Fehler führen, fliegt ihr Punkt über den rechten Bildschirmrand hinaus – in diesem Fall blitzt noch kurz der Statuscode auf.

Das dargebotene Pong-Spiel läuft in Echtzeit ab, wobei Logstalgia gnädigerweise leere Zeitabschnitte überspringt. Wer einen Internetauftritt mit nur wenigen Anfragen pro Tag betreut, sieht folglich nur wenige Punkte über den Bildschirm flitzen. Umgekehrt erscheint bei einem sehr hohen Besucheraufkommen bloß noch ein wirrer Pixelbrei.

Auch wer die Animation mit der Leertaste anhält oder über [+] und [-] beschleunigt beziehungsweise verlangsamt, tut sich schwer damit, das Geschehen eindeutig zu interpretieren. Man erkennt lediglich, welcher Host besonders viele Anfragen feuert und wann welche Anfragen auf welche URLs besonders häufig zu Fehlermeldungen führten.

Sobald Logstalgia am rechten Bildschirmrand der Platz ausgeht, fasst es URLs zusammen, was jedoch andererseits eine genauere Analyse bei größeren Websites behindert. Immerhin bildet das Werkzeug bei Bedarf auch Gruppen, alle angeforderten Bilder (URLs mit den Endungen ».png« , ».gif« oder ».jpeg« ) stehen beispielsweise am rechten Rand unter der Überschrift »Images« .

Logstalgia kann auch kontinuierlich ein Accesslog beobachten, wodurch sich die Software in ein ansprechendes Monitoring-Werkzeug verwandelt: Lässt es ein Administrator nebenher in einem anderen Fenster laufen, sieht er schon aus dem Augenwinkel, wenn die Last auf einem Server überproportional zunimmt, und kann eingreifen.

Fudgie

Auch Fudgie [5] hat sich den Accesslogs verschrieben. Seine Darstellung ähnelt leicht der von Logstalgia: Die auf der linken Seite aufgelisteten Hosts spucken ihre Anfragen in Form von Kreisen in die Mitte des Bildschirms (Abbildung 5). Je größer der Kreis, desto umfangreicher war die Anfrage. Auf der rechten Bildschirmseite stehen die URLs, die ihrerseits für jede Anfrage einen passenden Kreis in die Mitte werfen.

Abbildung 5: Fudgie wirft Anfragen als Kreise in die Mitte des Bildschirms.

Abbildung 5: Fudgie wirft Anfragen als Kreise in die Mitte des Bildschirms.

Alle dort versammelten Kreise purzeln schließlich über einen Trichter langsam aus dem unteren Bildschirmrand heraus. Zusätzlich berechnet Fudgie die Anzahl der gestellten Anfragen pro Minute. Auf Wunsch meldet sich das Tool selbst auf dem Webserver an und saugt dort die Logdateien direkt ab.

Anders als bei Logstalgia erkennen Administratoren hier jedoch nicht, welche Anfrage für welche URL bestimmt war oder ob sie zu einem Fehler führte. Sie sehen lediglich anhand der sich im Trichter sammelnden Kreise, welcher Host mit seinen Anfragen die größte Last auf dem Server erzeugt hat. Aus der am häufigsten angefragten URL sprudeln zudem die meisten Kreise. Ein sehr dichter Strahl lässt dabei auf zahlreiche, schnell nacheinander gestellte Anfragen schließen, die einen Server eventuell überlasten.

Wer Fudgie ausprobieren möchte, sollte sich auf eine recht komplizierte Installation einstellen: Man benötigt eine Ruby-Umgebung mit ganz bestimmten Ruby-Gems und muss danach eine Konfigurationsdatei im Yaml-Format anlegen. Unter aktuellen Distributionen lässt sich Fudgie zudem nur mit einigen Verrenkungen und Ruby-Kenntnissen installieren.

Ubuntu-Nutzer zum Beispiel müssen erst Ruby 1.9 installieren, dies zum Standard-Ruby-System erklären, dann im Quellcode von Fudgie eine Versionsabfrage entfernen (in der Datei »lib/gl_tail.rb« in Zeile 28 das Komma und alle nachfolgenden Zeichen löschen) und noch alle nach und nach von Fudgie eingeforderten Gems einspielen.

Abschließend funktionierte beim Test zu diesem Artikel der Trichter nicht, alle Kreise fielen direkt in den Abgrund. Da will man nicht widersprechen, wenn der Fudgie-Autor höchstselbst seinen Programmcode als “furchtbar” bezeichnet.

Conky

Die Prozessoraktivität und Systemauslastung visualisieren mittlerweile unzählige kleine Programme, viele von ihnen stecken in den Repositories der Distributionen. Hinzu kommen entsprechende Widgets beziehungsweise Miniprogramme der Desktopumgebungen. Aus der Masse heraus sticht das äußerst beliebte Conky, das mit besonders vielen Gesichtern aufwartet [6].

Im Gegensatz zu einigen seiner Konkurrenten können Anwender die Darstellung der Prozessor-Aktivität beziehungsweise -Auslastung selbst beeinflussen und konfigurieren. Standardmäßig erscheinen die Informationen als Zahlen, simple Balken oder in Form eines Histogramms. Normalerweise schreibt Conky dabei seine Ausgaben direkt auf den Desktop, genauer gesagt auf das Root-Window (Abbildung 6). Auf Wunsch präsentiert Conky die Informationen aber auch in einem eigenen (transparenten) Fenster.

Abbildung 6: Mit der mitgelieferten einfachen Konfigurationsdatei sieht Conky wenig ansehnlich aus.

Abbildung 6: Mit der mitgelieferten einfachen Konfigurationsdatei sieht Conky wenig ansehnlich aus.

Über eine Konfigurationsdatei dürfen Admins der Darstellung deutlich mehr Pep geben. Dabei lässt ihnen das Tool weitgehend freie Hand: Angefangen bei der Farbwahl bis hin zu gekrümmten Balken ist fast alles möglich (Abbildung 7). Beispiele stehen zuhauf im Internet, eine kleine Galerie besonders außergewöhnlicher Darstellungsformen liefert ein Blogbeitrag von Pushakr Gaur [7].

Abbildung 7: Mit einer entsprechend angepassten Konfigurationsdatei sieht Conky beispielsweise wie in diesem Bild aus. Im Internet findet der Admin zahlreiche Konfigurationsbeispiele und Tuning-Tipps.

Abbildung 7: Mit einer entsprechend angepassten Konfigurationsdatei sieht Conky beispielsweise wie in diesem Bild aus. Im Internet findet der Admin zahlreiche Konfigurationsbeispiele und Tuning-Tipps.

Pfiffig war auch die Idee von Henrik Brix Andersen: Er wählte als Hintergrundbild eine Zeichnung seines Notebooks und platzierte die Conky-Informationen mit Pfeilen an den entsprechenden Stellen [8]. Letztlich stecken in diesen Grafiken wieder nur unterschiedlich stark geschwungene Balkendiagramme und geschickt platzierte Zahlen, die zum Teil schwieriger zu erfassen sind als ihre geraden Pendants.

Neben der Prozessorauslastung kann Conky noch viele weitere Systeminformationen anzeigen und visualisieren. Dazu zählen nicht nur der ein- und ausgehende Netzwerkverkehr oder der Speicherbedarf. Das Werkzeug meldet sogar eingehende E-Mails und erlaubt es, den schon recht angestaubten Audioplayer XMMS zu integrieren. Insgesamt bietet Conky von Haus aus über 250 Datenquellen an. Weitere Funktionen und Informationslieferanten rüsten Anwender über Shell- oder Lua-Skripte nach.

Standardmäßig präsentiert Conky nur die aktuellen Daten des gerade laufenden Systems. Aufgezeichnete Daten muss man mit Hilfe eines entsprechenden Skripts selbst einlesen, aufbereiten und dann von Conky anzeigen lassen. Umgekehrt zeichnet Conky aber bei Bedarf die angezeigten Daten in einer Logdatei auf.

Cpuplayer

Einen etwas anderen Ansatz verfolgt der Cpuplayer [9]: Er verwendet ein baryzentrisches Koordinatensystem [10]. Was kompliziert klingt, entpuppt sich als ein Dreieck, in dem jeder Prozessor als Punkt erscheint (Abbildung 8). Dreht einer der Prozessoren Däumchen, wandert sein Punkt in die linke untere Ecke, rechnet er angestrengt, läuft er zur Spitze. Bei einer hohen Systemtime klebt er rechts unten.

Durch die Position innerhalb des Dreiecks lässt sich sehr gut ablesen, welcher Prozessor gerade wie stark von wem ausgelastet ist. Ein buntes Gitter ermöglicht zudem das recht genaue Ablesen der jeweiligen Last: Der Admin muss nur ermitteln, in welchem kleinen Gitterdreieck der Prozessor liegt, dann den Gitterlinien zum Rand folgen und die Skala ablesen. Die Darstellung in einem Dreieck ist etwas unkonventionell, nach einer kurzen Gewöhnungsphase lässt sie sich jedoch schneller und vor allem genauer erfassen, als es die kleinen Balkendiagramme der Konkurrenz gestatten.

Abbildung 8: Der Cpuplayer zeigt im Beispielbild vier aktive Prozessoren an, von denen jedoch nur einer richtig ausgelastet ist.

Abbildung 8: Der Cpuplayer zeigt im Beispielbild vier aktive Prozessoren an, von denen jedoch nur einer richtig ausgelastet ist.

Dummerweise kann der Cpuplayer nicht einfach das gerade laufende System beobachten, sondern visualisiert lediglich vorangegangene Aufzeichnungen. Die müssen zudem in einem ganz speziellen Datenformat vorliegen. Die beispielsweise mit »mpstat« aufgezeichneten Daten muss der Administrator daher erst noch mit Hilfe eines selbst geschriebenen Skripts umwandeln. Cpuplayer zeigt zudem nur die Veränderung der Auslastung über die Zeit: Warum plötzlich der Kernel einen Prozessor stark einspannt, muss der Nutzer selbst herausfinden.

Fazit

Alle vorgestellten Programme gewähren völlig neue und zum Teil faszinierende Einblicke in Accesslogs, Versionsverwaltungen und Prozessorauslastung. Die Aussagekraft der erzeugten Bilder und Animationen ist jedoch begrenzt: Wenn dem Administrator wie in Logstalgia nur noch bunte Punkte wirr um die Ohren fliegen, ist er trotz der hübschen Oberfläche am Ende kaum schlauer als bei einem Blick in das sehr textlastige Accesslog selbst.

Für andere Aufgaben eignen sich die grafischen Log-Auswerter schon eher. So können die Werkzeuge dem Admin einen ersten Fingerzeig auf (sich anbahnende) Probleme geben. Sausen beispielsweise bei Logstalgia zu viele Punkte mit einem 404-Fehler am Schläger vorbei, scheint sehr wahrscheinlich etwas mit den Links auf der Website nicht zu stimmen. Ob dem tatsächlich so ist, müssen dann weitere Untersuchungen mit anderen Programmen zeigen.

Die meisten der vorgestellten Programme bieten auf ihrer Homepage ein Video an, das Administratoren einen recht guten Überblick von den Möglichkeiten vermittelt. Letztendlich macht es aber auch einfach mehr Spaß, dabei zuzusehen, wie die Kreise in den Trichter oder die Punkte gegen einen Schläger fliegen, als sich durch die langen Zahlenkolonnen der Logdateien zu wühlen.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben