User Tools

Site Tools


informatique:logiciels:awstats

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
informatique:logiciels:awstats [2013/10/14 20:45] – external edit 127.0.0.1informatique:logiciels:awstats [2020/02/24 10:19] (current) – relecture partielle pteu
Line 4: Line 4:
 //avec une Debian (et plus généralement Linux)// //avec une Debian (et plus généralement Linux)//
  
-{{http://awstats.sourceforge.net/docs/images/awstats_logo4.png }}+{{:informatique:logiciels:awstats_logo6.png |}}
  
-[[http://awstats.sourceforge.net Awstats]] est un script perl qui interprète les logs Apache pour en faire des graphiques et des statistiques. Pur l'installer :+[[http://awstats.sourceforge.net Awstats]] est un script perl qui parcourt les logs Apache pour en faire des graphiques et des statistiques. Pur l'installer :
  
-  aptitude install awstats+<code bash> 
 +aptitude install awstats 
 +</code>
  
-On va ensuite modifier quelques options dans le fichier de configuration ''/etc/awstats.conf'' :+Pour différentier les fichiers de confs par site, il faut les nommer en incluant le ''ServerName'' configuré dans Apache, par exemple pour le site pteu.fr le fichier doit se nommer awstats.pteu.fr.conf.
  
-  LogFile="/var/log/apache2/access.log" +Quelques options intéressante à surveiller/modifier dans les fichiers de configuration ''/etc/awstats/''
-  SiteDomain="hostname+  * ''LogFile="/var/log/apache2/access.log"'' : indique l'endroit où se trouve les fichiers de logs à parser 
-  HostAliases="localhost 127.0.0.1 votre_IP_publique" +  * ''SiteDomain="pteu.fr"'' : à remplir avec tous le/les hostname du serveur web ; il peut y en avoir plusieurs mais en général il s'agit de l'URL d'accès au site 
-  LogType=W+  * ''HostAliases="localhost 127.0.0.1 votre_IP_publique"'' : liste tous les moyens d'accès au site (adresse IP, accès loopback, DNS sur l'intranet, alias, etc) 
 +  * ''LogType=W'' : Précise le type de log à traiter, par défaut "W" pour un site web, mais Awstats sait également traiter les logs de mail ou FTP par exemple 
 +  * ''LogFormat=1'' : Pour indiquer le format de log utilisé par le serveur web ; pour plus de détails il vaut mieux utiliser le format //combined// dans Apache puisqu'il intègre les UserAgent. 
 +  * ''SkipHosts="127.0.0.1 ::1 REGEX[^192\.168\.]"'' : pour exclure des traitement les IPs de certains clients, notamment les accès admin ou la supervision qui fausseraient les stats
  
-Ce qui correspond, dans l'ordre : +Pour les logs "combined
-  * le chemin vers le fichier de log d'Apache +  s'assurer que le format des logs créés par Apache sont "conformes" : dans le fichier de config //général// d'Apache 2 ''/etc/apache2/apache2.conf'', décommentez (si besoin) la ligne : 
-  * préciser votre //hostname// (par exemple "pteu.hd.free.fr"+<code bash> 
-  * éventuellement +LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" '%{User-Agent}i'" combined 
-  * on spécifie qu'on utilise un log de serveur web (par défaut c'est déjà spécifié) +</code> 
- +  * dans le fichier de conf //spécifique// de votre vhost (''/etc/apache2/sites-available/default'' par défaut), vérifiez que la directive ''CustomLog /var/log/apache2/access.log combined'' est bien présente. 
-Pour obtenir des stats plus précises (notamment les OS et navigateurs des internautes), on va utiliser le format //combined// des log d'Apache. Ils enregistrent plus d'informations et prennent donc plus de place. On spécifie le format du log avec la directive +  * relancer Apache : ''systemctl restart apache2'' ou ''service apache restart''
-  LogFormat=1 +
- +
-Il faut s'assurer que le format des logs créés par Apache sont "conformes" : dans le fichier de config //général// d'Apache 2 ''/etc/apache2/apache2.conf'', décommentez (si besoin) la ligne : +
-  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" '%{User-Agent}i'" combined +
- +
-Dans le fichier de conf //spécifique// de votre vhost (''/etc/apache2/sites-available/default'' par défaut), vérifiez que la directive +
-  CustomLog /var/log/apache2/access.log combined +
-est bien présente. +
- +
-Si vous avez modifié quelque chose dans l'un ou l'autre des fichiers de conf, n'oubliez pas de relancer apache +
-  /etc/init.d/apache2 reload+
  
 Lancez ensuite la commande suivante Lancez ensuite la commande suivante
Line 43: Line 37:
  
 Vu que le script est assez lourd, il peut être judicieux de ne générer qu'une seule fois par jour un rapport, sous forme de fichier html statique : Vu que le script est assez lourd, il peut être judicieux de ne générer qu'une seule fois par jour un rapport, sous forme de fichier html statique :
-  /usr/lib/cgi-bin/awstats.pl -config=<hostname> -update -output -staticlinks > awstats.html+<code bash> 
 +/usr/lib/cgi-bin/awstats.pl -config=<hostname> -update -output -staticlinks > awstats.html 
 +</code>
  
 En plaçant ce fichier dans la racine du serveur web on pourra y accéder par http://hostname/awstats.html . En plaçant ce fichier dans la racine du serveur web on pourra y accéder par http://hostname/awstats.html .
  
 Pour générer toutes les stats (pas uniquement les stats générales), on utilise la commande [[http://awstats.sourceforge.net/docs/awstats_tools.html#awstats_buildstaticpages awstats_buildstaticpages]] : Pour générer toutes les stats (pas uniquement les stats générales), on utilise la commande [[http://awstats.sourceforge.net/docs/awstats_tools.html#awstats_buildstaticpages awstats_buildstaticpages]] :
-  /usr/lib/cgi-bin/awstats_buildstaticpages.pl -config=hostname -update -awstatsprog=/usr/lib/cgi-bin/awstats.pl -dir=/path/to/htdocs/awstats/+<code bash> 
 +/usr/lib/cgi-bin/awstats_buildstaticpages.pl -config=hostname -update -awstatsprog=/usr/lib/cgi-bin/awstats.pl -dir=/path/to/htdocs/awstats/ 
 +</code>
  
-Pour automatiser la création de pages html, on utilise [[http://fr.wikipedia.org/wiki/Cron cron]: +Pour automatiser la création de pages html, on pourrait utiliser cron mais il est plus judicieux de le lancer juste avant la rotation de log initiée par logrotate, donc on édite le fichier ''/etc/logrotate.d/apache2'' pour y glisser la commande ''awstats_buildstaticpages.pl'' en prerotate. Dans mon cas j'ai déjà une gestion de scripts prerotate définie dans ma conf : 
-On édite la crontab +/var/log/apache2/*.log { 
-  crontab -e+[..] 
 +prerotate 
 +   if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ 
 +      run-parts /etc/logrotate.d/httpd-prerotate;
 +   fi; 
 +endscript 
 +</code> 
 +''run-parts'' exécute tous les scripts trouvés dans le répertoire /etc/logrotate.d/httpd-prerotate, c'est donc dans ce dernier que je vais placer mon script 
 +<code bash> 
 +vi /etc/logrotate.d/httpd-prerotate/awstat/pteu.fr.sh
  
-Et on rajoute cette ligne qui exécutera la commande à 1h00 du matin tous les jours : +/usr/share/awstats/tools/awstats_buildstaticpages.pl -config=pteu.fr -update -awstatsprog=/usr/lib/cgi-bin/awstats.pl -dir=/var/www/html/awstats
-  0 1  *         /usr/lib/cgi-bin/awstats_buildstaticpages.pl -config=<hostname> -update -awstatsprog=/usr/lib/cgi-bin/awstats.pl -dir=/path/vers/htdocs/awstats/+
  
-Ensuite on redémarre le service cron (en fait ce n'est pas nécessaire) : +chmod +x /etc/logrotate.d/httpd-prerotate/awstat/pteu.fr.sh 
-  /etc/init.d/cron restart+</code>
  
  
informatique/logiciels/awstats.txt · Last modified: 2020/02/24 10:19 by pteu