This page is also available in English (Englisch)

Wie richte ich die automatische Archivierung von Berichten ein?

Wenn Ihre Webseite mehr als einige hundert Besucher täglich hat (super!), könnte Piwik zur Verarbeitung der Daten einige Minuten in Anspruch nehmen. Die einfachste Möglichkeit, diese Wartezeiten zu vermeiden, ist die Einrichtung eines Cron-Jobs auf Ihrem Server, der die Daten stündlich automatisch verarbeitet.

Wie richte ich einen Crontab ein, der meine Berichte automatisch verarbeitet?

Um die automatische, stündliche Verarbeitung der Piwik-Berichte anzustoßen, können Sie einen Cron-Job einrichten. Ein Crontab ist ein zeitgesteuerter Ablaufdienst, der in Unix-Servern (und Derivaten) vorhanden ist. Sie benötigen einen SSH-Zugang zu Ihrem Server um die Konfiguration vorzunehmen:

# crontab -e

und dann fügen Sie folgende Zeilen hinzu:

MAILTO="ihre-email-adresse@example.com"
5 * * * * www-data /pfad/zu/piwik/misc/cron/archive.sh > /dev/null

Das Archivierungsskript von Piwik wird dann stündlich aufgerufen. Im Allgemeinen dauert der Vorgang weniger als eine Minute. Auf größeren Webseiten (10.000 Besucher und mehr), kann der Archivierungsprozess mehr als 30 Minuten in Anspruch nehmen.

Beschreibung der Parameter: www-data ist der Benutzer unter dem der Cron-Job ausgeführt wird, dies sollte im Normalfall der Webserver-Benutzer sein. Manchmal ist dies auch "apache". Alle Fehler die zur Laufzeit des Cronjobs passieren werden automatisch an die Adresse ihre-email-adresse@example.com geschickt.

Beschreibung des "Linux-Cron"-Tools: Das cron-Tool verwendet zwei verschiedene Konfigurations-Typen: Den System-Crontab und User-Crontabs. Der einzige Unterschied zwischen diesen Formaten ist das sechste Feld. Im System-Crontab ist das sechste Feld der Name des Benutzers unter dem das Kommando ausgeführt wird. Das befähigt das System-Crontab, Kommandos unter jedem beliebigen Benutzer auszuführen. In einem User-Crontab ist das sechste Feld der Befehl, der ausgeführt werden soll. Alle Befehle laufen unter dem Benutzer, der das Crontab eingerichtet hat; Das ist eine wichtige Sicherheitsfunktion. Wenn Sie Ihr Crontab als User-Crontab einrichten, schreiben Sie also stattdessen:

5 0 * * * /pfad/zu/piwik/misc/cron/archive.sh > /dev/null

Dieser Cronjob löst den Archivierungsprozess "Tag / Woche / Monat / Jahr" jede Nacht um 00:05 aus. Dies stellt sicher, dass die Daten bereits verarbeitet wurden, wenn Sie Ihr Piwik-Interface besuchen: Piwik wird also schnell laufen.

Den Cron-Befehl testen: Stellen Sie die Crontab-Funktionalität sicher, indem Sie den Befehl manuell ausführen

# sh /pfad/zu/piwik/misc/cron/archive.sh

Sie sollten nun eine XML-Ausgabe sehen, die die Besucherzahlen für das jeweilige Datum enthält.

Tipp für Webseiten unter mittler bis hoher Besucherlast

Deaktivieren Sie die Browsergestützte Verarbeitung von Berichten und begrenzen Sie den Zeitintervall zwischen den Verarbeitungsvorgängen auf eine Stunde

Wir empfehlen dringend die Auto-Archivierung, wie oben beschrieben, zu konfigurieren. Nun können Sie sicher die Browser-gestützte Auto-Archivierung deaktivieren um sicherzustellen, dass Ihre Piwik-Benutzer nicht den aufwendigen Archivierungsprozess auslösen. In Ihrer Piwik-Konfigurationsdatei config/config.ini.php können Sie am Anfang folgendes einfügen:

[General]
time_before_today_archive_considered_outdated = 3600
enable_browser_archiving_triggering = false

Die heutige Statistik hat nun eine Geltungsdauer von einer Stunde. Damit ist sichergestellt, dass die Berichte nicht zu häufig verarbeitet werden.

Erhöhen Sie den verfügbaren Speicher

Wenn Sie den Fehler "Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate X bytes)" bekommen, können Sie den Speicher erhöhen, der PHP zugewiesen ist. Bearbeiten Sie Ihre /etc/php5/cli/php.ini-Konfigurationsdatei und ändern Sie z.B.:

memory_limit = 128M

Dies beeinflusst nur PHP CLI. Die Konfiguration Ihres Webservers bleibt unverändert. Die Crontab Auto-Archivierung sollte nun funktionieren und Piwik läuft sehr schnell!

Weitere Informationen bezüglich der Piwik-Archivierung

  • Ihre Piwik-Datenbank wird mit der Zeit größer. Das ist normal. Archive von unvollständigen Zeitperioden werden von Piwik gelöscht (z.B. wenn Sie eine Wochen-Archivierung in der Mitte der Woche ausgelöst haben). Andere Archive sind davon unabhängig. Hierfür werden in der MySQL-Datenbank Archive für jeden Tag, jede Woche, jeden Monat und jedes Jahr angelegt. Dies stellt sicher, dass das User-Interface und der Datenzugriff stets schnell reagiert, aber benötigt Festplattenspeicher. Zukünftig wäre ein Plugin vorstellbar, das ein paar alte Daten entfernt (z.B., dass nur die Top50-Zeilen pro Bericht behalten werden).
  • Im Moment entfernt die Archivierung keine Aufzeichnungen. Zukünftig werden die Aufzeichnungen entweder gelöscht oder in andere Tabellen oder Dateien verschoben.
  • Häufigere Archivierungen pro Tag haben lediglich den Effekt, dass die heutigen Berichte öfter aktualisiert werden. Dies wird nicht die Speicheranforderung für andere Zeitperioden ändern: Die Piwik-Archivierung läuft nicht inkrementell.
  • Es besteht ein Problem bezüglich dem Speicherverbrauch der Piwik-Archivierung. Das könnte bei sehr großen Piwik-Installationen ein Problem sein.
  • Wenn Sie die Piwik Auto-Archivierung nicht aktivieren wird Piwik die Verarbeitung auslösen, sobald ein Benutzer einen Bericht anfordert. Die kann oft sehr langsam sein und eine schlechte Bedienbarkeit verursachen (Benutzer müssen N Sekunden warten), deshalb empfehlen wir die Einrichtung der automatischen Archivierung bei mittel bis stark ausgelasteten Webseiten.
Entries (RSS)