Matomo-Berichte per Cronjob generieren

Matomo ist eine freie Software zur Webanalytik. Früher war Matomo unter dem Namen Piwik bekannt. Wenn Matomo Berichte auf der Weboberfläche anzeigt, so werden diese vorher generiert. Geschieht dies beim Aufruf der Berichte, kann dies, vor allem bei größeren Berichten, zu Problemen führen, da der Server entsprechend viel Zeit für die Erstellung benötigt und dies sich auf die Ladezeit der Weboberfläche auswirkt.

Die Archivierung bei der Anzeige im Browser sollte deaktiviert werden

Als Lösung bietet es sich an die Aufgabe, der Berichterzeugung und Datenaggregierung, an einen Cronjob auszulagern. Dazu muss im ersten Schritt die Crontab-Datei geöffnet werden:

sudo -u www-data crontab -e

Ich die sich öffnende Crontab-Datei wird nun folgende Zeile eingetragen:

*/15 *    * * *   php /var/www/example/matomo/console core:archive > /dev/null

Nachdem die Crontab-Datei gespeichert wurde, wird der Task zur Archivierung und Erstellung der Berichte alle 15 Minuten automatisch gestartet. In den Matomo-Einstellungen unter System -> Allgemeine Einstellungen findet sich der Punkt Archivierungseinstellungen. Hier muss die Archivierung im Browser deaktiviert werden. Damit werden Berichte in Matomo nun per Cronjob erzeugt und beeinflussen die Ladezeiten der Weboberfläche nicht mehr.

Piwik ist nun Matomo

Bis zum ersten April dauert es noch einige Tage, so das man davon ausgehen darf, dass der Blogeintrag des Piwik-Teams ernst gemeint ist. Piwik hört in Zukunft auf den Namen Matomo. Bei Piwik handelt es sich um eine Software zur Webanalyse, ähnlich dem bekannten Google Analytics. Begründet wird dies mit einem Zitat von Matthieu Aubry, seines Zeichen der Entwickler von Piwik:

After an epic 10 year journey creating and perfecting the best open digital analytics solution, we felt it was a good time to refresh our brand to reflect how far we have come and to reaffirm our vision: To create, as a community, the leading international open source digital analytics platform, that gives every user full control of their data.

Einer der Gründe für die Umbenennung ist im Namens- bzw. Markenrecht zu sehen. Dafür wurde ein kurzer, leicht zu merkender Name gesucht und am Ende kam Matomo heraus. Matomo bedeutet im japanischen Ehrlichkeit, was nicht unbedingt die schlechteste Bedeutung für das Projekt ist.

Unter anderem mit einem Mailing wurde der Namenswechsel angekündigt

Neben dem Namen soll sich, laut der veröffentlichten FAQ, nichts weiter am Projekt ändern. Matomo wird weiterhin freie Software bleiben. Die neue Heimat des Projektes ist unter matomo.org zu finden. Ebenfalls umgezogen sind die GitHub-Repositories, der Twitter-Account und einige andere Social Media Accounts.

Piwik Integration in MediaWiki

Mit der Erweiterung Piwik Integration gibt es eine aktiv entwickelte Möglichkeit Piwik in MediaWiki-Seiten zu integrieren. Um die Erweiterung in Betrieb zu nehmen muss der Quelltext auf GitHub bezogen werden. In der MediaWiki-Installation wird der Quelltext in den Ordner extenstions/Piwik/ kopiert. Anschließend muss die LocalSettings.php bearbeitet werden. Dort werden folgende Zeilen hinzugefügt:

#Piwik
require_once "$IP/extensions/Piwik/Piwik.php";
$wgPiwikURL = "piwik.example.com";
$wgPiwikIDSite = "3";

Die Werte $wgPiwikURL und $wgPiwikIDSite müssen dabei natürlich durch die korrekten Werte ausgetauscht werden. Bei der $wgPiwikURL muss darauf geachtet werden das kein Protokoll (HTTP/HTTPS) mit angegeben wird, da die Integration sonst fehlschlägt.

Piwik 1.9.2, die Backdoor und deren Entfernung

Wie Heise berichtet, ist die aktuelle Version von Piwik (1.9.2) mit einer Backdoor versehen. Augenscheinlich fand die Infektion gestern, nach 15:18 Uhr statt, Updates welche vorher eingespielt wurden, sollten nicht betroffen sein.

Erkennen kann man eine infizierte Version an der Zeichenkette:

eval(gzuncompress(base64_decode

Sollte diese Zeile in der Piwik Installation auftauchen so sollte man folgende Schritte durchführen:

  • die Datei “piwik/core/DataTable/Filter/Megre.php” löschen
  • aus der Datei “piwik/core/Loader.php” die letzten sechs Zeilen löschen (beginnend mit “<?php Error_Reporting(0)”)
  • die Piwik Installation nach Dateien durchsuchen, welche nicht zu Piwik gehören und diese entfernen

Alternativ kann man das ganze neu installieren, mit der entsprechenden Github Version welche unter https://github.com/piwik/piwik/archive/1.9.2.zip zu finden ist.

Update:
Mittlerweile gibt es bei Piwik einen Sicherheitsbericht in welchem unter anderem steht das die Versionen von 16:43 Uhr bis Mitternacht kompromittiert sind.

Update (2):
Die im Sicherheitsbericht empfohlene Säuberung sieht so aus:

  • “piwik/config/config.ini.php” sichern
  • “piwik/” Verzeichnis löschen
  • neuste Piwikversion herunterladen
  • auf den Server hochladen
  • “config.ini.php” wieder in den Ordner “piwik/config/” packen

Danach ist die Piwik Installation wieder sauber.

Weitere Informationen gibt es unter:
http://forum.piwik.org/read.php?2,97666
http://www.golem.de/news/webanalyse-backdoor-in-piwik-1211-95956.html

Piwik in die MediaWiki integrieren

Um Piwik in die MediaWiki zu integrieren gibt es eine Extension die auf den “Piwik Integration” hört. Das Problem dieser Extension ist das sie seit 2009 nicht mehr weiterentwickelt wurde. Bedingt dadurch funktioniert das ganze nicht mehr mit der aktuellen Media Wiki Version.

Abhilfe schafft hier die Extension “PCR GUI Inserts” welche unter http://www.mediawiki.org/wiki/Extension:PCR_GUI_Inserts zu finden ist. Mit dieser Extension ist es möglich Code auf der MediaWiki einzubinden. Im Gegensatz zu anderen Verfahren, wie z.B. dem direkten editieren der Templatedateien funktioniert diese Lösung auch nach einem Update der MediaWiki Version weiter.

Für die Installation muss man dabei folgende Schritte befolgen:

  • Extension herunterladen
  • den entpackten Ordner in den “extensions” Ordner der MediaWiki hochladen
  • die “LocalSettings.php” bearbeiten

Bei der Bearbeitung der “LocalSettings.php” muss nur die Zeile:

require_once( "$IP/extensions/PCRGUIInserts/pcr_guii.php" );

an das Ende der Datei angefügt werden. Danach ist die “PCR GUI Inserts” Erweiterung aktiv. Nun muss nur noch der Piwik Tracking Code eingebaut werden. Dazu gibt es in der entsprechenden Wiki ein schönes Beispiel:

$wgPCRguii_Inserts['SkinAfterBottomScripts']['on'] = true;
$wgPCRguii_Inserts['SkinAfterBottomScripts']['content'] = '<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.example.com/" : "http://piwik.example.com/");
document.write(unescape("%3Cscript src=\'" + pkBaseURL + "piwik.js\' type=\'text/javascript\'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://piwik.example.com/piwik.php?idsite=2" style="border:0" alt="" /></p></noscript>';

Diese Zeilen werden dabei auch in die “LocalSettings.php” geschrieben. Natürlich müssen die entsprechenden Domainnamen angepasst werden, sowie die passende Nummer für die zu trackende Webseite benutzt werden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Piwik
http://de.wikipedia.org/wiki/MediaWiki