Eigener Webanalysedienst mit Matomo

05.02.2020
In diesem Beitrag möchte ich euch zeigen, wir ihr unter Debian 10 'buster' ganz einfach einen eigenen Webanalysedienst mit Matomo (ehemals Piwik) aufsetzen könnt, um eure Webseiten zu analysieren. Der Vorteil dabei ist natürlich, dass ihr die Daten eurer Besucher nicht an einen Dritten weitergeben müsst, wie es z.B. bei der Verwendung des weit verbreiteten Google Analytics der Fall ist.

Hinweis: Ihr benötigt für viele oder alle Schritte dieser Anleitung einen User mit sudo Rechten oder den root User. Ich nutze den root User, tut ihr dies nicht, müsst ihr bei den angegebenen Befehlen "sudo" voranstellen, z.B. "sudo apt update".

Sprungmarken: Voraussetzungen Installation Einrichtung

Server Update

Bevor ihr mit der eigentlichen Anleitung beginnt, solltet ihr vorab den Server updaten!

apt update && apt dist-upgrade && apt autoremove && apt clean

Mit dieser Befehls-Kombination aktualisiert ihr die Paketquellen, sucht nach Upgrades für installierte Pakete, entfernt überflüssige Abhängigkeiten und leert den Paket-Cache. "dist-upgrade" hat gegenüber "upgrade" den Vorteil, dass zusätzlich geprüft wird, ob durch geänderte Abhängigkeiten bestimmte Pakete deinstalliert bzw. neu installiert werden sollten.

Voraussetzungen

Grundsätzlich empfiehlt es sich, einen eigenen Server für Matomo einzurichten und keine anderen Webseiten oder Ähnliches darauf laufen zu lassen. Ihr benötigt dafür einen Server dessen Leistung den Anforderungen genügt. Diese skalieren im Wesentlichen mit der Anzahl der Seitenaufrufe der Webseiten die ihr analysieren wollt. Matomo selbst empfiehlt bei bis zu 100.000 Seitenaufrufen im Monat einen Server mit 2 CPU Kernen, 2 GB Ram und 50 GB SSD Speicher. Bei bis zu 1.000.000 Seitenaufrufen pro Monat, wird ein Server mit 4 CPU Kernen, 8 GB Ram und 250 GB SSD Speicher empfohlen. Bei noch mehr Seitenaufrufen, wird bereits empfohlen, die Matomo Seite und dessen Datenbank auf 2 Server zu verteilen.

Für den Anfang reicht den meisten vermutlich erstmal die Angabe bei bis zu 100.000 Seitenaufrufen. Meiner Erfahrung nach, reicht dafür sogar eine CPU mit nur einem Kern, die 2 GB Ram sollte man aber schon mindestens haben. Zudem benötigt ihr für Matomo einen eingerichteten Webserver mit PHP & MariaDB. Solltet ihr bisher noch keinen eingerichtet haben, könnt ihr euch gerne meinen Beitrag Webserver mit Nginx, PHP7 & MariaDB anschauen.

Matomo installieren

Nachdem ihr die Voraussetzungen erfüllt habt, könnt ihr Matomo auch schon installieren. Geht zuerst in den Ordner, in dem ihr Matomo später drin haben wollt. Installiert danach unzip, falls ihr es nicht schon installiert habt. Anschließend könnt ihr es runterladen, entpacken & das Archiv sowieso die Anleitung löschen.

cd /cloud/websites/
apt -y install unzip
wget https://builds.matomo.org/matomo.zip && unzip matomo.zip && rm matomo.zip && rm How\ to\ install\ Matomo.html

Nun müsst ihr den Matomo Ordner nur noch in einer Seitenkonfiguration eures Webservers angeben. Wie das für Nginx funktioniert, erfahrt ihr im oben verlinkten Beitrag von mir. Dort wird auch erklärt, wie ihr ein kostenloses TLS Zertifikat bekommt, wozu ich dringend raten würde. Nachfolgend zeige ich euch ein Beispiel wie eine Seitenkonfiguration aussehen könnte, wenn ihr den Webserver wie in meiner Anleitung eingerichtet habt:

server {
  listen 80;
  server_name analytics.domain.tld;
  return 301 https://analytics.domain.tld$request_uri;
}
server {
  listen 443 ssl http2;
  server_name analytics.domain.tld;
  ssl_certificate /etc/nginx/sslcerts/analytics.domain.tld/fullchain.pem;
  ssl_certificate_key /etc/nginx/sslcerts/analytics.domain.tld/privkey.pem;
  root /cloud/websites/analytics.domain.tld;
  access_log /var/log/nginx/analytics.domain.tld_access.log;
  error_log /var/log/nginx/analytics.domain.tld_error.log error;
  include /etc/nginx/snippets/php_7-3.conf;
  include /etc/nginx/snippets/cache.conf;
}

Aufgepasst: Für diese Konfiguration muss der eben entpackte "matomo" Ordner in "analytics.domain.tld" umbenannt worden sein!

Matomo einrichten

Um Matomo einzurichten, könnt ihr nun die in eurer Seitenkonfiguration angegebene URL (z.B. analytics.domain.tld) im Browser eures Vertrauens öffnen. Euch sollte dann das Matomo Setup begrüßen und könnt bei Bedarfs als Erstes die Sprache von English auf Deutsch ändern. Anschließend klickt ihr auf Weiter und seht euch den System Check an. Dabei wird Matomo euch anzeigen, wenn beispielsweise Pakete fehlen oder sonst etwas nicht stimmt.

Bei mir fehlten 2 PHP Pakete. Die könnt ihr einfach nachinstallieren und Nginx dann neustarten.

apt install -y php7.3-gd php7.3-xml && service nginx restart

Anschließend könnt ihr die Seite im Browser neuladen. Wenn weiter nichts fehlt, sollte nun alles grün abgehakt sein und ihr könnt auf Weiter klicken. Falls dies nicht der Fall ist, lest die Erklärung auf der Seite zum entsprechenden Problem. In der Regel sollte das leicht verständlich sein, ansonsten könnt ihr auch eine Suchmaschine bemühen.

Nun müsst ihr die Daten für die Datenbank angeben, die Datenbank muss natürlich existieren. Habt ihr euren Webserver mit Hilfe meines Beitrags Webserver mit Nginx, PHP7 & MariaDB eingerichtet, könnt ihr einfach über PHPMyAdmin einen neuen User anlegen und dabei direkt eine Datenbank dazu erstellen. Natürlich könnt ihr das auch gerne über die Shell machen. Habt ihr eine Datenbank angelegt, gebt ihr die entsprechenden Daten dann im Setup an und klickt auf Weiter. Matomo wird dann die Datenbank mit den benötigten Tabellen befüllen.

Als Nächstes gilt es nun einen Administrator bzw. Super User anzulegen. Dieser hat alle Rechte innerhalb von Matomo. Gebt dazu einen Namen, ein Passwort und eine E-Mail Adressen an. Ihr könnt dann noch Entscheiden, ob ihr E-Mails über Matomo Updates und/oder Werbung von Matomo erhalten möchtet.

Im Vorletzten Schritt könnt ihr nun endlich eure erste Webseite angeben, die ihr analysieren möchtet. Ihr könnt natürlich nach dem Setup noch weitere Seiten anlegen. Gebt nun einen belieben Namen und die vollständige URL zu eurer Seite. Anschließend könnt ihr noch die Zeitzone einstellen und entscheiden, ob es sich um eine E-Commerce Seite handelt. Klickt ihr nun auf Weiter, kommt ihr zum letzten Schritt. Euch wird der Tracking Code angezeigt, den ihr in der angegebenen Seite einbauen müsst. Wer möchte, kann den Tracking Code vor dem Einfügen noch um eine Angaben erweitern, die verhindert das Matomo Cookies bei den Besuchern setzt. Das macht die Analyse Ergebnisse weniger genau, aber meiner Erfahrung nach macht das keinen signifikanten Unterschied. Mit deaktivierten Cookies sieht der Code dann so aus:

var _paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
  var u="//analytics.domain.tld/";
  _paq.push(['setTrackerUrl', u+'matomo.php']);
  _paq.push(['setSiteId', '1']);
  var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
  g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();

Habt ihr den Tracking Code kopiert und auf eurer Seite eingebaut, könnt ihr auf Weiter klicken und das Setup damit abschließen. Den Haken beim Anonymisieren von IP Adressen solltet ihr unbedingt drin lassen. Dann könnt ihr Weiter zu Matomo klicken und euch das erste Mal in das Dashboard einloggen. Als Erstes solltet ihr euch hier mal alle Einstellungen (Zahnrad oben rechts) anschauen und ggf. anpassen. Besonders hervorheben möchte ich den Punkt "Benutzer Opt-Out" unter "Privatsphäre". Dort findet ihr einen Iframe Code, mit dem Besucher dem Tracking durch Matomo bzw. euch widersprechen können. Dieses Iframe solltet ihr unbedingt in der Datenschutzerklärung der Seite die ihr mit Matomo analysiert einfügen.

Habt ihr euch alle Einstellungen angeschaut und diese ggf. nach euren Bedürfnissen angepasst, seid ihr mit der Einrichtung von Matomo fertig. Ihr könnt nun noch weitere Seiten hinzufügen oder etwas abwarten und euch die erhobenen Daten eurer Seite anschauen. Wer bereits Erfahrung mit Google Analytics hat, sollte sich auf dem Dashboard sehr schnell zurecht finden, da vieles ähnlich aufgebaut ist. Ansonsten schaut euch einfach in Ruhe alles an.

Zuletzt bearbeitet: 05.02.2020