Awstats Planification Génération

De EjnTricks

Une fois Awstats installée, il est utile de planifier la génération des rapports périodiquement pour éviter de le faire manuellement. La génération est déjà planifié lors de la rotation des logs de Apache.

Deux planifications sont à prévoir:

  • L'analyse des logs.
  • La génération des pages HTML statiques.

Des exemples de configurations sont décrites sur la documentation Ubuntu: http://doc.ubuntu-fr.org/awstats


Hand-icon.png Votre avis

Current user rating: 80/100 (1 votes)

 You need to enable JavaScript to vote


Icon-log.png Analyse des logs

La commande /usr/lib/cgi-bin/awstats.pl -config=www.jouvinio.net -update doit être exécutée périodiquement avec l'outil Crontab. L'exemple suivant, placé dans le fichier /etc/crontab, permet d'exécuter la mise à jour toutes les demies heures.

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
*/30 *  * * *   www-data /usr/lib/cgi-bin/awstats.pl -config=www.jouvinio.net -update > /dev/null
#


Mimetypes-html-icon.png Pages HTML statiques

De la même manière, la génération des pages statiques, via l'outil awstats_buildstaticpages.pl peut être planifiée.


System-Install-icon.png Installation initiale Ubuntu

L'installation de Awstats sous Ubuntu apporte déjà toute les fonctionnalités de planification souhaitées. Un fichier awstats est créé dans le répertoire /etc/cron.d, avec le contenu suivant:

*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

Ce qui entraîne la planification suivante:

  • Mise à jour des statistiques toutes les dix minutes.
  • Génération des pages statiques tous les jours à 3h10.

Ce script permet donc de parcourir l'ensemble des fichiers awstats.*.conf et awstats.conf dans le répertoire /etc/awstats, et d'exécuter le script awstats.pl sur chacun d'entre eux.

Attention, dans le cadre de cette installation, le script émet l'erreur suivante:

#sudo /usr/share/awstats/tools/update.sh
Error: SiteDomain parameter not defined in your config/domain file. You must edit it for using this version of AWStats.
Setup ('/etc/awstats/awstats.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).

En effet, les configurations n'ont pas été placées dans le fichier /etc/awstats/awstats.conf. Afin que le script fonctionne correctement, ce fichier est renommé.

#sudo mv /etc/awstats/awstats.conf /etc/awstats/awstats.conf.ori

De plus, le script fonctionne parfaitement en root, mais pas avec le compte www-data comme cela est spécifié dans la configuration Crontab.

#su - www-data -c "/usr/share/awstats/tools/update.sh
Create/Update database for config "/etc/awstats/awstats.www.jouvinio.net.conf" by AWStats version 7.0 (build 1.971)
From data in log file "/var/log/apache2/access.log"...
Error: Couldn't open server log file "/var/log/apache2/access.log" : Permission non accordée
Setup ('/etc/awstats/awstats.www.jouvinio.net.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).

En effet, seul le compte root peut accéder aux log de Apache pour l'installation par défaut sur Ubuntu. Ce qui fait que le compte www-data ne peut les lire, et donc produire les statistiques. L'opération la plus simple consiste à modifier la planification ainsi:

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
*/10 * * * * root [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

Il faut s'assurer que les scripts sont bien protégés en modification, pour ne pas permettre la modification de l'exécution. L'installation prend bien en compte cette vérification, car seul le compte root peut modifier les différents fichiers:

#ll /usr/share/awstats/tools
total 68
drwxr-xr-x 2 root root  4096 2012-03-05 00:07 ./
drwxr-xr-x 7 root root  4096 2012-03-01 20:11 ../
-rwxr-xr-x 1 root root 19591 2011-04-30 16:30 awstats_buildstaticpages.pl*
-rwxr-xr-x 1 root root  1166 2012-03-05 00:01 buildstatic.sh*
-rwxr-xr-x 1 root root 32020 2011-04-30 16:30 logresolvemerge.pl*
-rwxr-xr-x 1 root root   742 2011-04-06 01:32 update.sh*
#ll /usr/lib/cgi-bin/
total 720
drwxr-xr-x   2 root root   4096 2012-03-01 20:11 ./
drwxr-xr-x 145 root root  69632 2012-03-03 17:54 ../
-rwxr-xr-x   1 root root 658027 2011-04-30 16:30 awstats.pl*

Lors de l'installation du plugin rawlog, le même style d'erreur d'accès a été constaté. Il était impossible de parcourir les fichier de log sur une installation standard. Or une modification a été réalisée afin que le compte www-data puisse accéder aux log. Donc, la modification réalisée sur la planification n'est plus nécessaire dans ce cas. La configuration de la Crontab est donc restaurée.

*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

A ne pas oublier de modifier à nouveau le propriétaires des fichiers déjà générés.

#sudo chown www-data:www-data /var/lib/awstats/*
#sudo chmod 664 /var/lib/awstats/*


De la même façon, ce script parcours les fichiers awstats.*.conf et awstats.conf afin d'exécuter le script awstats_buildstaticpages.pl.