Piwik und Conky

Mit unserem neuen Interface im Blog haben wir auch Piwik auf unseren Server eingeführt, ein open source Countservice, analog zu Google Analytics in Echtzeit. Dieses Tool bietet über API die Möglichkeit, maßgeschneiderte Daten der Besucherauswertung zu exportieren und diese Daten regelmäßig zu erneuern (Echtzeit). So kann man an über verschiedene Protokolle Besucherzahlen, Referer, Besucherländer und weitere Details ausgeben lassen, in die eigene Homepage oder in Programme einbinden.
Im Folgenden möchte ich eine Möglichkeit präsentieren, wie man seine aktuellen Besucherzahlen mit Conky auf dem Desktop anzeigen lassen kann.

Vorbereitung

Zunächst muss man sich Gedanken darüber machen, wie man an die aktuellen Besucherzahlen herankommt und diese auf dem PC hinterlegt. Im Hauptmenü der Piwik-API kann man unter einer Vielzahl von möglichen Funktionen, Protokollen und Zahlen wählen, welche mit einer langen Buchstaben und Zahlenkette authentifiziert sind, wählen. Im Beispiel wähle ich die Funktion VisitsSummary.get, welche die Besucherzahlen in einem bestimmten Intervall ausgibt, und ändere die URL so, dass sie die Zahlen den aktuellen Tages ausgibt (period=day&date=today) und das XML-Format hat.
Da es mit einem wget-Befehl leider nicht möglich ist, diese Daten herunterzuladen, greife ich zu einem Umweg: Ich erstelle eine PHP-Datei auf meinem Webspace mit dem Inhalt
<?php
$zeug = file_get_contents("http://example.com/index.php?module=API&method=VisitsSummary.get&idSite=1&period=day&date=today&format=xml&token_auth=ganz_geheimer_code");
echo $zeug;
?>

und lasse diese später mittels wget herunterladen.

Das Skript

Um die Zahl der aktuellen Besucher mit Conky anzeigen zu lassen, muss man beispielsweise mit einem Bash-Skript die Datei, die man vom Webspace herunterlädt noch bearbeiten, bis letztlich die „nackte“ Zahl ausgegeben wird. Folglich ergibt sich folgendes Skript, das mit einem Haufen sed-Befehlen die Datei bearbeitet:

wget -c http://example.com/obige_datei.php -O ./hallo.txt
cat ./hallo.txt | grep nb_visits\> | sed 's/	<nb_visits>//g' | sed 's/<\/nb_visits>//g'
rm -f hallo.txt

In die .conkyrc kommt nun noch folgender Befehl, und schon wird die Besucherzahl in Conky ausgegeben:

Besucher heute: ${font Monospace:size=20}${execi 120 "/pfad/zum/obigen/skript.sh"}${font}

Et voilà, die Ausgabe in Conky aktualisiert sich alle zwei Minuten. Mit Referern und anderen Funktionen funktioniert das natürlich äquivalent.


Wem das noch nicht reicht, der kann mit diesem Bash-Skript die Topseiten ausgeben lassen, von denen die Besucher kommen. Diese werden gleich formatiert in Spalten mit der jeweiligen absoluten Zahl der Besucher ausgegeben.

Mehr informationen dank Python

Conky kann nicht nur die Ausgabe von bash-Skripten anzeigegen, sondern auch die Textausgabe von Python-Programmen. Durch den größeren Funktionsumfang von Python sind auch mehr Informationen möglich, oder zumindest einfacher abrufbar. So kann man mit diesem Python-skript sich anzeigen lassen, woher die Besucher kamen, wieviele es waren, und wieviele nach einer Seite abgesprungen sind. Hierbei wird aus dem XML-Dokument ausgelesen. Dabei kann man selbst bestimmen, welche Knoten ausgelesen werden sollen, und welche nicht. Dieses Skript kann mit Leichtigkeit an alle anderen XML-Dokumente angepasst werden, wie zum Beispiel die Länderliste. Die Ausgabe kann dann wie oben in Conky eingeben werden. Ob dies so sinnvoll ist, ist die Frage, da die Liste relativ lang werden kann, und dementsprechend viel Platz verbraucht. Ich benutze es jedenfalls nicht, wollt nur mal schauen, was alles machbar ist 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert