This page is also available in English (Anglais)

Comment paramétrer l'auto-archivage de vos états ?

Si votre site Web a plus de quelques centaines de visites par jour (bravo !!), le temps de traitement de vos données sur Piwik devrait être seulement de quelques minutes. Pour réduire encore ces  temps d'attente, la meilleure solution consiste à programmer une tâche cron sur votre serveur de sorte que vos données soient automatiquement traitées toutes les heures.

Comment installer un crontab pour archiver automatiquement vos états ?

Pour déclencher automatiquement un archivage Piwik toutes les heures, vous pouvez installer un crontab. Un crontab est un service de planification qui existe sur les serveurs de type Unix. Il vous faut un accès SSH à votre serveur pour pouvoir le définir :
# crontab -e

ajouter ensuite les lignes :
MAILTO="youremail@example.com"
5 * * * * www-data /path/to/piwik/misc/cron/archive.sh > /dev/null

Le script d'archivage Piwik s’exécutera toutes les heures. Généralement, il s’exécute en moins d'une minute. Sur de plus grands sites Web (10.000 visites et plus), l’archivage Piwik peut prendre jusqu'à 30 minutes.

Description des paramètres : www-data est l'utilisateur sous lequel le travail de cron sera exécuté, il devrait généralement être votre utilisateur pour le serveur web. C'est quelquefois "apache". Tous les messages d'erreur résultant de l'exécution du travail de cron seront envoyés à l'adresse youremail@example.com.

Description de l'utilitaire 'linux cron' : L'utilitaire cron utilise deux types différents de fichiers de configuration, le crontab système et les crontabs utilisateur La seule différence entre ces deux formats porte sur le sixième champ. Dans le crontab système, le sixième champ est le nom d’un utilisateur pour qui la commande sera exécutée. Cela donne au crontab système la capacité d'exécuter des commandes sous n'importe quel utilisateur. Dans un crontab utilisateur, le sixième champ est la commande à exécuter, et toutes les commandes s’exécutent sous l'utilisateur qui a créé le crontab ; c'est une fonctionnalité importante de sécurité. Si vous installez votre crontab comme crontab utilisateur, vous écrirez alors à la place :

5 * * * * /path/to/piwik/misc/cron/archive.sh > /dev/null

Ce travail de cron déclenchera chaque jour le processus d'archivage jour/semaine/mois/année à 00:05AM. Ceci vous assurera que lorsque vous visitez votre interface Piwik, les données ont déjà été traitées : Piwik se chargera rapidement.

Test de la commande cron : S'assurer que le crontab fonctionnera réellement en exécutant la commande
# sh /path/to/piwik/misc/cron/archive.sh

dans l’interface. Vous devriez voir la sortie XML contenant votre nombre de visites pour chaque date.

Astuce pour les sites Web de trafic moyen à élevé

Désactiver l’archivage Piwik déclenché depuis le navigateur et limiter les états Piwik mis à jour à chaque heure

Nous recommandons fortement d'installer l’archivage automatique comme expliqué ci-dessus. Vous pouvez aussi désactiver maintenant et sans risque l'archivage automatique du navigateur, ce qui assure que vos utilisateurs Piwik ne déclencheront pas le processus lourd d'archivage. Vous pouvez aller à l'onglet des "Paramétrages généraux" dans votre panneau d’administration Piwik et sélectionner

  • Permettre à l’archivage Piwik de se déclencher lorsque les états sont visualisés dans le  navigateur : Non
  • Les états du jour seront traités au plus chaque 3600 secondes

Cliquer sur Save pour sauvegarder vos changements.

Les statistiques d'aujourd'hui auront une durée de vie d'une heure, ce qui permet de s’assurer que les états ne seront pas traités trop souvent.

Accroître la mémoire

Si vous avez l'erreur Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate X bytes), ), vous pouvez accroître la mémoire allouée par PHP. Modifiez votre fichier /etc/php5/cli/php.ini file, et paramétrez par exemple :
memory_limit = 128M

Ceci affectera seulement PHP CLI, la configuration du serveur restera inchangée. L'archivage de crontab devrait maintenant fonctionner et Piwik devrait être très rapide !

Comment installer l'auto-archivage en utilisant le Planificateur de Tâches sous Windows ?

Piwik contient un script Powershell (situé dans : piwik/misc/cron/archive.windows.ps1), et qui vous permet d’installer l'archivage automatique.
Ouvrez le script dans un éditeur de texte de votre choix et modifiez la première ligne en fonction de votre configuration système.
$PHP_INI = "C:Windowsphp.ini"
La valeur de $PHP_INI doit refléter le chemin "'complet"' vers votre php.ini.

Configuration du script

Vous devez également vous assurer que php5.exe ou php.exe se trouve sur un chemin qui est spécifié dans la variable d'environnement de %PATH%. Sélectionner "'Start"'- > "'Run"' et taper  "cmd" pour ouvrir une ligne de commande. Taper ensuite "'php.exe -version"' et cliquer sur Entrée pour vérifier si PHP soit disponible ou pas. Si vous devez changer la variable %PATH%, consultez le document Comment gérer les variables d'environnement dans Windows.

Planification

Pour ouvrir le Planificateur de tâches sous Windows (XP, 7, Serveur 2003/2008), cliquer sur Tous les programmes, pointer sur Accessoires dans le menu, ensuite sur Outils système, puis cliquer sur Tâches Planifiées. Cliquer sur "'Ajouter une tâche planifiée"' et nommer la tâche par exemple. "Auto-archivage Piwik". Cliquer sur l'onglet "'Déclenchement"' et ajouter un nouveau déclenchement. Sélectionner pour créer un déclenchement selon un horaire, à exécuter journellement et toutes les heures. Confirmer les paramétrages et passer sur l'onglet Action. Ajouter une nouvelle action et sélectionner pour démarrer un programme.  

Nous voulons démarrer "'powershell.exe"' en utilisant les arguments supplémentaires –Noninteractive –Noprofile –Command "&{}"    (dans lequel est le chemin complet vers votre script archive.windows.ps1).

C'est fait ! Si vous avez besoin d'aide à propos de l’archivage automatique sous Windows en utilisant le script Powershell, prière de rapporter vos questions ici.

Pour en savoir plus sur l'archivage Piwik

  • La taille de votre base de données Piwik grossira avec le temps, ce qui est normal. Piwik supprimera les archives qui ont été traitées sur des périodes incomplètes (c'est-à-dire quand vous avez archivé une semaine au milieu de cette semaine), mais ne supprimera pas les autres archives. Vous aurez donc des archives pour chaque jour, chaque semaine, chaque mois et chaque année dans les tableaux de mysql. Ils assurent une réponse UI et un accès aux données très rapides, mais exigent de l'espace disque. À l'avenir il est possible d’imaginer des extensions qui supprimeraient certaines des données anciennes (par exemple, conserver seulement les 50 rangées supérieures pour chaque état).
  • A ce stade, l’archivage ne supprime pas les journaux. À l'avenir, ces journaux seront supprimés ou transférés dans d'autres tableaux ou fichiers.
  • L'archivage réalisé plusieurs fois par jour entraîne seulement une mise à jour plus fréquente de l’état du jour. Il n’entraîne pas de changement des exigences mémoire pour les autres périodes : L'archivage Piwik n'est pas incrémental.
  • Il existe un problème de mémoire pour l'archivage Piwik. Celui-ci peut concerner les très grosses installations Piwik.
  • Si vous n'installez pas l'archivage automatique, l'archivage s’effectuera quand un utilisateur demandera un état Piwik. Il sera alors lent et occasionnera une mauvaise expérience pour l'utilisateur (les utilisateurs devront attendre N secondes), c’est pourquoi nous recommandons d'installer l’archivage automatique pour sites Web ayant un niveau de visites moyen à élevé, comme expliqué ci-dessus.
Entries (RSS)