Tobias ScheibleCybercrime Dozent & Live Hacking Speaker
Umzug einer Piwik-Installation

Piwik unterbrechungsfrei umziehen

Möchte man eine Piwik-Installation auf einen neuen Server umziehen, die für mehrere Websites eine Statistik erstellt, sollten dabei natürlich möglichst wenige Besucher „verpasset“ werden. Da ich vor kurzem so einen Fall hatte, habe ich diese Anleitung erstellt, wie ihr Piwik in 6 Schritten quasi unterbrechungsfrei umziehen könnt.

Dienstag, 28. Januar 2014
10 Kommentare
Freie OpenSource Statistik-Software
Piwik 2.0 Benutzeroberfläche
Open Web AnalyticsNeue Benutzeroberfläche von Piwik 2.0

Piwik ist eine mächtige OpenSource Statistiksoftware, welche Besucher und Seitenaufrufe einer Website erfassen kann. Kürzlich wurde Piwik mit einer neuen Optik und zahlreichen Verbesserungen auf die Version 2.0 aktualisiert. Zieht man Piwik komplett mit einer Domain auf einen neunen Server, ist die Aktualisierung der DNS-Einstellungen meist ein Problem. Denn diese werden an verschiedenen Stellen (z.B. ISP, Router, Betriebssystem) zwischengespeichert und meist erst nach mehreren Stunden aktualisiert. In dieser Zeit landen die Besucher, wenn die DNS-Einstellungen zwischengespeichert sind, auf dem alten Server und die anderen Besucher auf dem neuen. Was bedeutet, dass bis zu 24 Stunden die Zahlen von Piwik nicht korrekt sind.

Um dies zu vermeiden, ziehe ich Piwik auf eine neue Subdomain um und richte eine Weiterleitung im Ordner der alten Installation ein. Das hat den Vorteil, dass die Unterbrechung sehr gering ist, da der Umzug unabhängig von den DNS-Einstellungen ist und der Piwik-Tracking-Code nicht überall angepasst werden muss. Nachdem die ursprüngliche Domain umgezogen ist, kann dann der ursprüngliche Pfad auch wieder verwendet werden.

Wie immer gilt für solche Anleitungen, dass vorher immer ein Backup erstellt werden sollte und die Schritte nur durchgeführt werden sollten, wenn ihr das notwendige Know-how habt und somit versteht, was ihr verändert. Die verschiedenen Angaben und Befehle können sich natürlich je nach System und Installation unterscheiden. In meinem Beispiel liegt Piwik auf dem alten Server unter example.com/piwik und wird auf dem neuen Server unter piwik.exmaple.com eingerichtet.

1. Piwik-Daten vom alten auf den neuen Server kopieren

Einfach den kompletten Piwik-Ordner per (S)FTP herunterladen und in das Subdomain-Verzeichnis auf den neuen Server kopieren. Wer mehr Erfahrung hat, kopiert per SSH mit SCP die Daten direkt von Server zu Server.

2. Datenbank auf dem neuen Server anlegen

Als Nächstes muss auf dem neuen Server eine neue Datenbank angelegt werden. Dies geschieht bei einem gemieteten Webspace üblicherweise über die Verwaltungsoberfläche euers Anbieters.

3. Anpassen der Piwik-Konfigurationsdatei config.ini.php

Die neue Daten für die Datenbank müssen nun in die Datei „config.php“ im Ordner „config“ eingetragen werden. Piwik hat noch einen Sicherheitsmechanismus und überprüft die Domain, auf die es ausgeführt wird. Stimmt diese nicht mit der Domain in der Konfigurationsdatei überein, erscheint eine Fehlermeldung. Daher muss noch die neue Subdomain piwik.example.com hinzugefügt werden.

host = "SERVER"
username = "BENUTZER"
password = "PASSWORT"
dbname = "DATENBANK"
trusted_hosts[] = "example.com"
trusted_hosts[] = "piwik.exmaple.com"

4. Backup der MySQL-Datenbank auf dem alten Server

Jetzt kommen wir zum eigentlichen Umzug der Tracking-Daten. Dazu muss auf dem alten Server ein Backup der Piwik-Datenbank erstellt und herunter geladen werden. Am einfachsten funktioniert dies über das Tool PHPMyAdmin. Je nach Größe der Datenbank kann dies schon einen Moment dauern. Alternativ kann auch hier per SSH mit MYSQLDUMP das Backup erstell werden:

mysqldump -uBENUTZER –pPASSWORT DATENBANKALT > piwik.sql

und gleich per SCP auf den neuen Server kopiert werden:

scp piwik.sql BENUTZERSERVER@piwik.exmaple.com:/tmp/piwik.sql

5. Einspielen des MySQL-Backups auf den neuen Server

Auf dem neuen Server kann nun mit PHPMyAdmin das herunter geladene Backup in die neue Datenbank importiert werden. Oder wieder per SSH mit MYSQL auf dem neuen Server das kopierte Backup importieren:

mysql -uBENUTZER -pPASSWORT DATENBANKNEU < /tmp/piwik.sql

Nun sollte Piwik auf dem neuen Server funktionieren. Das kann einfach getestet werden, indem ihr euch kurz beim Piwik-Backend anmeldet.

6. Einrichten der Umleitung auf dem alten Server

Zum Schluss muss noch eine Weiterleitung eingerichtet werden, damit der Tracking-Code von der neuen Piwik-Version geladen wird. Geht dazu auf den alten Server in das Piwik Verzeichnis und löscht alle Dateien und Unterordner und fügt eine .htaccess-Datei mit dem folgenden „Mod-Rewrite“ Befehl ein:

RewriteEngine On
RewriteRule ^(.*)$ http://piwik.exmaple.com/$1

Mit diesem Befehl werden alle Anfragen von „example.com/piwik“ zu „piwik.example.com“ umgeleitet. Und somit wird ab diesem Zeitpunkt die Piwik-Installation auf dem neuen Server verwendet.

Fazit Piwik-Umzug

Mit dieser Methode existiert die Unterbrechung nur zwischen dem Zeitpunkt des Datenbank Backups und der Einrichtung der Weiterleitung. Je nach Datenbankgröße und Technik sollten die Unterbrechungen nur zwischen 5 und 10 Minuten liegen. Noch schneller würde es gehen, wenn die Schritte für den Umzug der Datenbank per Script komplett automatisiert werden. Eine andere Alternative wäre der Abgleich der beiden Datenbanken miteinander, um so die entstandenen Einträge während des Umzugs zu ergänzen.

Über Tobias Scheible

Tobias Scheible

Hallo, mein Name ist Tobias Scheible. Ich bin begeisterter Informatiker und Sicherheitsforscher mit den Schwerpunkten Cyber Security und IT-Forensik. Mein Wissen teile ich gerne anhand von Fachartikeln hier in meinem Blog und in meinem Fachbuch. Als Referent halte ich Vorträge und Workshops für Verbände und Unternehmen u. a. auch offene Veranstaltungen für den VDI und die IHK.