• Website & Hosting
  • Domains & E-Mails
  • Online Shops
  • Server
  • Digitales Büro
  • Managed Cloud
  • Academy
  • Über uns
Wähle einen Artikel
Matomo auf vServer installieren
Matomo auf vServer installieren

0. Überblick

  • Verwendetes System: Debian 11 64 bit 
  • Testsystem: vServer XXL 2.0
  • Genutzter User: Ich nehme alles als „root“ vor
  • Zeitdauer: ca. 10 Minuten
  • Schwierigkeit: Einfach. Nur Code kopieren 😉
  • Besonderheiten:
  • Grundlage ist folgende Anleitung: Traefik Reverse Proxy installieren Diese Anleitung muss zuerst ausgeführt werden.
  • Die Installation von Docker / Docker Compose wird hier vorausgesetzt.

1. Matomo installieren

1.1 Einleitung

Matomo (https://matomo.org) ist eine open source Web Analyse Plattform. Der Vorteil von Matomo gegenüber beispielsweise Google Analytics ist, dass ihr alle Daten auf eurem Server habt. Dies ist im Sinne der DSGVO wichtig und so könnt ihr sicherstellen, dass alle Daten in der EU (Deutschland) verbleiben. Ebenfalls könnt ihr genau einstellen, was ihr überhaupt tracken möchtet.

1.2 Infos zu yml Dateien

Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Ihr könnt den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator

1.3 Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. Matomo werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.

Um Matomo neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik.

1.3.1 Verzeichnis erstellen

Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von Matomo abspeichen. Dazu geben wir folgendes in der Konsole ein:

mkdir -p /opt/containers/matomo/{database,app}

Ihr könnt hier auch ein anderes Verzeichnis verwenden. Müsst dann aber die gesamte Anleitung entsprechend anpassen.

1.3.2 docker-compose.yml erstellen

Nun können wir mit der eigentlichen „Installation“ von Matomo beginnen. Dazu öffnet ihr folgende Datei:

nano /opt/containers/matomo/docker-compose.yml

Nun kopiert ihr folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren Matomo Container.

version: '3' 

services: 

  matomo-db: 

    image: mariadb 

    command: --max-allowed-packet=64MB 

    restart: unless-stopped 

    volumes: 

      - /opt/containers/matomo/database:/var/lib/mysql 

    environment: 

      - MYSQL_RANDOM_ROOT_PASSWORD= '1' 

      - MYSQL_PASSWORD=abc           ## Hier Passwort eingeben ## 

      - MYSQL_DATABASE=matomo 

      - MYSQL_USER=matomo 

    networks: 

      - default 

  matomo-app: 

    image: matomo:fpm-alpine 

    restart: unless-stopped 

    volumes: 

      - /opt/containers/matomo/app:/var/www/html 

    environment: 

      - MATOMO_DATABASE_HOST=matomo-db 

      - MATOMO_DATABASE_ADAPTER=mysql 

      - MATOMO_DATABASE_TABLES_PREFIX=matomo_ 

      - MATOMO_DATABASE_USERNAME=matomo 

      - MATOMO_DATABASE_PASSWORD=abc        ## Hier selbes Passwort eingeben ## 

      - MATOMO_DATABASE_DBNAME=matomo 

    networks: 

      - default 

  matomo-web: 

    image: nginx:alpine 

    restart: unless-stopped 

    volumes: 

      - /opt/containers/matomo/app:/var/www/html:ro 

      - ./matomo.conf:/etc/nginx/conf.d/default.conf:ro 

    labels: 

      - "traefik.enable=true" 

      - "traefik.http.routers.matomo-app.entrypoints=http" 

      - "traefik.http.routers.matomo-app.rule=Host(`matomo.euredomain.de`)" 

      - "traefik.http.middlewares.matomo-app-https-redirect.redirectscheme.scheme=https" 

      - "traefik.http.routers.matomo-app.middlewares=matomo-app-https-redirect" 

      - "traefik.http.routers.matomo-app-secure.entrypoints=https" 

      - "traefik.http.routers.matomo-app-secure.rule=Host(`matomo.euredomain.de`)" 

      - "traefik.http.routers.matomo-app-secure.tls=true" 

      - "traefik.http.routers.matomo-app-secure.tls.certresolver=http" 

      - "traefik.http.routers.matomo-app-secure.service=matomo-app" 

      - "traefik.http.services.matomo-app.loadbalancer.server.port=80" 

      - "traefik.docker.network=proxy" 

    networks: 

      - default 

      - proxy 

networks: 

  proxy: 

    external: true

Nun müssen wir noch einiges anpassen.

1.3.4 Hostname anpassen

Nun müsst ihr noch den Hostnamen anpassen, über welchen später Matomo erreichbar sein soll.

Diese beiden Zeilen müsst ihr anpassen.

    - "traefik.http.routers.matomo-app.rule=Host(`matomo.euredomain.de `)" 
    - "traefik.http.routers.matomo-app-secure.rule=Host(`matomo.euredomain.de`)"

In meinem Fall also:

    - "traefik.http.routers.matomo-app.rule=Host(`matomo.testbereich.net`)" 
    - "traefik.http.routers.matomo-app-secure.rule=Host(`matomo.testbereich.net`)"

1.3.5 Passwörter anpassen

Nachdem ihr den Hostnamen angepasst habt, müsst ihr noch das MySQL Kennwort anpassen.

Folgende Zeilen müsst ihr ändern:

MYSQL_PASSWORD=abc           ## Hier Passwort eingeben ## 
MATOMO_DATABASE_PASSWORD=abc        ## Hier selbes Passwort eingeben ##

Ich ändere also meine Kennwörter ab. Dies könnte beispielsweise so sein:

MYSQL_PASSWORD=Fjabez34!          ## Hier Passwort eingeben ##
MATOMO_DATABASE_PASSWORD=Fjabez34!           ## Hier selbes Passwort eingeben ##

Nun sind wir fertig.

1.4 nginx Konfiguration anlegen

Nun legen wir noch eine Konfigurationsdatei für unseren Webserver im Container an. Dazu gebt ihr folgenden Befehl ein:

nano /opt/containers/matomo/matomo.conf

In die Datei kopiert ihr folgenden Code:

upstream php-handler { 

server matomo-app:9000; 

} 

server { 

listen 80; 

add_header Referrer-Policy origin; # make sure outgoing links don't show the URL to the Matomo instance 

root /var/www/html; # replace with path to your matomo instance 

index index.php; 

try_files $uri $uri/ =404; 

##  only allow accessing the following php files 

location ~ ^/(index|matomo|piwik|js/index|plugins/HeatmapSessionRecording/configs).php { 

#  regex to split $uri to $fastcgi_script_name and $fastcgi_path 

fastcgi_split_path_info ^(.+\.php)(/.+)$; 

#  Check that the PHP script exists before passing it 

try_files $fastcgi_script_name =404; 

include fastcgi_params; 

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 

fastcgi_param PATH_INFO $fastcgi_path_info; 

fastcgi_param HTTP_PROXY ""; # prohibit httpoxy: https://httpoxy.org/ 

fastcgi_pass php-handler; 

} 

##  deny access to all other .php files 

location ~* ^.+\.php$ { 

deny all; 

return 403; 

} 

##  disable all access to the following directories 

location ~ /(config|tmp|core|lang) { 

deny all; 

return 403; # replace with 404 to not show these directories exist 

} 

location ~ /\.ht { 

deny all; 

return 403; 

} 

location ~ js/container_.*_preview\.js$ { 

expires off; 

add_header Cache-Control 'private, no-cache, no-store'; 

} 

location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)$ { 

allow all; 

##  Cache images,CSS,JS and webfonts for an hour 

##  Increasing the duration may improve the load-time, but may cause old files to show after an Matomo upgrade 

expires 1h; 

add_header Pragma public; 

add_header Cache-Control "public"; 

} 

location ~ /(libs|vendor|plugins|misc/user) { 

deny all; 

return 403; 

} 

##  properly display textfiles in root directory 

location ~/(.*\.md|LEGALNOTICE|LICENSE) { 

default_type text/plain; 

} 

} 

2. Matomo starten

Gebt nun folgendes ein, um euren Matomo Container zu starten:

docker compose -f /opt/containers/matomo/docker-compose.yml up -d

Geht nun mit eurem Webbrowser auf eure Webseite (z.B. matomo.euredomain.de). Dort sollte nach einigen Sekunden folgendes zu sehen sein:

Hier klickt ihr nun auf „Nächste“.

Jetzt wird ein Systemcheck durchgeführt. Hier sollte alles „grün sein“.

Nun kommt ihr zur Datenbankeinrichtung. Unser Docker Skript hat alle Werte bereits übertragen. Ihr müsst also nur „Nächste“ klicken.

Nun habt ihr die Datenbank erfolgreich angebunden.

Im nächsten Schritt müsst ihr einen Administrator Account anlegen.

Nun müsst ihr lediglich noch den Namen eurer Webseite angeben, welche ihr später tracken wollt. Dies könnt ihr aber später jederzeit noch anpassen. Bei mir ist dies unsere Wordpress Instanz (wordpress.testbereich.net).

Im letzten Schritt seht ihr einen Tracking Code. Diesen benötigen wir jedoch NICHT. Daher könnt ihr hier einfach weiter klicken.

Jetzt seid ihr fertig mit der Einrichtung.

Nachdem ihr euch nun angemeldet habt, solltet ihr folgendes sehen.

Hier bekommt könnt ihr euch auch die „Liste der zur Integration von Matomo vorhandenen Plugins“ anschauen. Der Link führt auf diese Webseite (https://matomo.org/integrate)

Dort könnt ihr euch die verschiedenen Plugins zur Integration anschauen.

3. Integration von Matomo in Wordpress

Hier zeige ich euch nun, wie ihr Matomo DSGVO Konform in euren Wordpress Blog integrieren könnt.

3.1 Einstellungen bei Matomo

Zuerst loggt ihr euch in euer Matomo Webinterface ein. Anschließend klickt ihr oben rechts auf das Zahnrad.

Hier klickt ihr nun auf „Privatsphäre --> Daten anonymisieren“.

Wählt nun diese Einstellungen aus und klickt auf Speichern.

Nun klickt ihr auf „Websites --> Tracking-Code“.

Hier klickt ihr nun auf „anzeigen“ im Bereich „Erweitert“.

Hier passt ihr jetzt die Einstellungen entsprechend dem Bild an.

Etwas weiter unten seht ihr nun unseren Tracking Code. Diesen benötigen wir später. Also lasst die Webseite hier bitte noch offen.

3.2 Matomo Authen­ti­fi­zie­rungs­token generieren

Nun erstellen wir ein Token zur Authentifizierung, welches wir später für unser Wordpress Plugin benötigen werden. Dazu geht ihr im Matomo Webinterface auf den Punkt „Persönlich --> Sicherheit“.

Hier scrollt ihr nun nach unten und klickt auf „Neuen Token generieren“.

Anschließend gebt ihr noch euer Kennwort ein.

Nun gebt ihr noch eine Beschreibung ein. Bei mir ist das „Wordpress – dogado.de“.

Nun bekommt ihr ein Token angezeigt. Dieses Token benötigen wir später. Also lasst diese Webseite bitte noch offen.

3.3 Matomo Plugin unter Wordpress installieren

Nun meldet ihr euch bei Wordpress als Administrator an. Klickt nun auf „Plugins“.

Anschließend auf „Installieren“.

Nun sucht ihr nach „Matomo“ und bekommt anschließend folgendes angezeigt.

Nun klickt ihr bei diesem Plugin auf „Jetzt installieren“.

Anschließend müsst ihr das Plugin noch aktivieren. Klickt dazu auf „Aktivieren“.

Zur Konfiguration des Plugins klickt ihr auf „Einstellungen --> WP-Matomo“.

Hiermüsst ihr jetzt eure Matomo URL angeben. Bei mir ist das beispielsweise https://matomo.testbereich.net. Nun gebt ihr noch den „Auth Token“ ein, welches wir in Abschnitt 3.2 generiert haben.

Wenn alles erfolgreich war, dann sollte es nun so bei euch aussehen.

Klickt nun auf „Tracking aktivieren“.

'


Nun wählt ihr „Manuelle Eingabe“ und klickt auf Speichern.

Jetzt sollte es so aussehen:

Hier kopiert ihr nun den Code aus Abschnitt 3.1 hinein.

Anschließend klickt ihr auf Speichern.

4. Tracking im Matomo Dashboard anschauen

Nun müsst ihr mit eurem Webbrowser einmal auf eure getrackte Webseite gehen, damit es einen Besucher in der Statistik gibt. Dies ist wichtig, da sich sonst das Dashboard nicht öffnet!

Anschließend könnt ihr bei Matomo auf Dashboard klicken.

Nun seht ihr euer Dashboard und könnt euch die erfassten Besuche anschauen.

Unter den Reitern „Besucher“ und „Verhalten“ könnt ihr noch viel mehr über eure Besucher erfahren, beispielsweise wie lange sie auf eurer Webseite waren, mit welchem Browser und vieles mehr.

Nächster Artikel
Mattermost Chatsystem auf vServer/VPS installieren
Weitere passende Themen