Installation
L’installation de base car, même s’il n’est pas dans sa dernière version, Awstats est disponible dans les dépôts de base de Debian. On lance donc la commande :
sudo apt-get install awstats
Une fois installé il est nécessaire de configurer différents éléments pour que le script de mise à jour puisse accéder aux informations à comptabiliser.
Configuration de logrotate pour récupérer les données des logs d’Apache
Le script appelé en cron par awstats, dans le fichier /etc/cron.d/awstats
est utilisé avec l’utilisateur de base d’Apache à savoir www-data
. Il est donc nécessaire que cet utilisateur puisse avoir accès aux différents fichiers de logs.
Pour cela on édite le fichier qui gère la rotation des logs d’Apache :
sudo nano /etc/logrotate.d/apache2
On remplace la ligne commençant par create
par la suivante :
create 644 root adm
Cette ligne indique que les logs générés sont créés avec l’utilisateur root
et le groupe adm
avec les droits 644
. Normalement vous n’avez eu à modifier dans cette ligne que le dernier chiffre qui devait être 0
.
On va en profiter également pour ajouter une commande exécutée juste avant la rotation des logs d’apache, afin d’éviter de perdre des visites dans les comptes.
Pour ce faire, dans le même fichier, juste avant la ligne débutant par postrotate
, ajoutez celles-ci :
prerotate if [ -x /usr/share/awstats/tools/update.sh ]; then /usr/share/awstats/tools/update.sh > /dev/null fi endscript
La commande /usr/share/awstats/tools/update.sh
correspond au script bash lancé pour mettre à jour les données collectées.
Après avoir sauvegarder, on donne les droits 644
à chaque fichier access.log
créés par Apache ainsi que 755
au répertoire /var/log/apache2
. Les fichiers par défaut sont dans le répertoire /var/log/apache2/
.
On lance donc la commande suivante :
chmod 644 /var/log/apache2/access.log* chmod 755 /var/log/apache2/
Vous devez le faire également sur les fichiers dont vous auriez pu modifier l’emplacement dans les différents virtualhosts.
Modification de la configuration d’Apache relative à Awstats
Dans un premier temps, on va régler le format par défaut des fichiers de logs analysés.
On crée le ensuite le répertoire qui contiendra les fichiers nécessaires à créer pour la visualisation :
sudo mkdir /var/www/awstats
On va ensuite créer un vitualhost spécifique "awstats" à la consultation des logs.
On édite donc le fichier suivant :
sudo nano /etc/apache2/sites-available/awstats
Dans lequel on met ceci (modifiez en fonction d’un nom de domaine pointant sur votre serveur, dans notre cas stats.domaine.example
) :
<VirtualHost *:80> ServerName stats.domaine.example ServerAdmin postmaster@domaine.example ScriptAliasMatch ^/awstats\.pl$ /usr/lib/cgi-bin/awstats.pl DocumentRoot /var/www/awstats <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all AuthUserFile /var/www/awstats/.htpasswd AuthName "Restricted Access" AuthType Basic Require valid-user </Directory> Alias /awstats-icon/ /usr/share/awstats/icon/ <Directory /usr/share/awstats/icon> Options None AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost>
On active ensuite le site avec la commande :
sudo a2ensite awstats
On crée le htpass pour l’authentification, où username
est à remplacer par votre nom d’utilisateur :
sudo htpasswd -c /var/www/awstats/.htpasswd username
Si vous souhaitez ajouter un autre utilisateur, utilisez la même commande en enlevant l’option -c
qui sert à créer le fichier et bien sûr username
qui est déjà créé.
On donne les bons droits au fichier htpasswd créé :
chown -Rvf www-data:www-data /var/www/awstats/.htpasswd
On peut ensuite redémarrer le serveur Apache pour prendre en compte les modifications :
sudo /etc/init.d/apache2 restart
Configuration de Awstats lui-même
Lors de la mise à jours des informations, le script de collecte parcourt l’ensemble des fichiers du répertoire /etc/awstats
finissant par .conf
et les passe en paramètre du script.
Un fichier de configuration par virtualhost Apache
Pour avoir les statistiques de chaque sous domaine, la meilleure solution est que chaque virtualhost utilise son propre fichier de log access.log
via la directive CustomLog
dans leur configuration. Leur format doit être combined
.
Ensuite, pour chaque virtualhost, on va créer un fichier de configuration pour awstats.
Prenons l’exemple du domaine domaine.example
, on souhaite par exemple récupérer les statistiques du virtualhost qui affiche www.domaine.example
.
La définition de ses logs doit ressembler à cela dans son virtualhost par exemple :
CustomLog /var/log/apache/domaine.log combined
On crée un nouveau fichier de configuration awstats en copiant celui de référence :
sudo cp /etc/awstats/awstats.conf /etc/awstats/www.domaine.example.conf
Puis on édite cette nouvelle configuration :
sudo nano /etc/awstats/www.domaine.example.conf
On y met au moins ces lignes :
LogFile="/var/log/apache2/domaine.log" LogFormat = 1 LogType=W DNSLookup=1 SiteDomain="domaine.example" HostAliases="127.0.0.1 http://www.domaine.example domaine.example" DirIcons="/awstats-icon" AllowFullYearView=3
Les statistiques sont alors visibles à l’adresse http://stats.domaine.example/awstats.pl?config=www.domaine.example
, vous devrez vous identifier grâce au htpasswd créé plus tôt. Le paramètre d’URL www.domaine.example
correspond au nom de fichier de configuration d’awstats auquel on enlève awstats.
et .conf
.
Lors de la première connexion, si la tâche CRON n’a toujours pas eu lieu, vous pouvez lancer manuellement l’analyse des logs par la commande :
sudo -u www-data /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -update -config=www.domaine.example
# Le 2 février 2014 à 18:41, par marcimat En réponse à : Installation et configuration de base d’Awstats
Outre les quelques modifications de configuration pour apache 2.4 (fichiers de configuration aux extensions .conf , directives Require etc) il est possible que le module pour gérer les CGI ne soit pas actif, et dans ce cas là, le script Perl de awstats s’affiche au lieu de s’exécuter.
Une solution possible :
Télécharger
Répondre à ce message
# Le 9 août 2015 à 13:00, par edosko45 En réponse à : Installation et configuration de base d’Awstats
Bonjour,
A quel moment on place un fichier dans le répertoire /var/www/awstats/ outre .htpasswd ?
Le problème dans la configuration de awstats est la même avec chaque produit qui utilise Apache, il faut faire de façon à ne pas modifier le fonctionnement de Apache et il y a toujours un cas dans lequel le fonctionnement des sites web est impactée...
Bonne doc, merci !
Répondre à ce message
# Le 10 août 2015 à 10:12, par Quentin Drouet En réponse à : Installation et configuration de base d’Awstats
Il n’y a rien d’autre à mettre dans le répertoire en question, il ne sert que pour le
htpasswd
pour le stocker à un endroit mémorisable facilement.Ce fichier peut être mis n’importe où, il suffit donc de changer son chemin dans la configuration du virtualhost.
La modification de la conf apache est pour avoir un virtualhost pour la consultation des stats seulement.
Répondre à ce message
# Le 9 mai 2016 à 14:30, par hauru En réponse à : Installation et configuration de base d’Awstats
Bonjour,
J’ai un problème avec la conf d’apache :
Quelqu’un aurait une solution ?
Répondre à ce message
# Le 29 janvier 2018 à 11:32, par Anonymous En réponse à : Installation et configuration de base d’Awstats
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
A corriger en
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Répondre à ce message
# Le 30 janvier 2018 à 09:52, par Quentin Drouet En réponse à : Installation et configuration de base d’Awstats
Merci je viens de corriger
Répondre à ce message