AWStats

De Wiki de Jordan LE NUFF
< Outillage
Révision datée du 26 mai 2020 à 07:13 par Jordan (discussion | contributions) (Page créée avec « == Présentation == Cette page a pour objet de décrire les gestes techniques liés au logiciel AWStats. == Description == ''AWStats est un logiciel analyseur de fichiers… »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche

Présentation

Cette page a pour objet de décrire les gestes techniques liés au logiciel AWStats.

Description

AWStats est un logiciel analyseur de fichiers log - ou journaux d'activité - des serveurs Web, FTP et de messagerie offrant des vues graphiques statiques mais aussi dynamiques des statistiques d'accès aux serveurs.

Il permet d'afficher le nombre de visites, de visiteurs uniques, de pages, de hits, de transfert, par domaine/pays, hôte, heure, navigateur, OS, … Il peut être lancé grâce à des scripts CGI ou en ligne de commande.

AWStats est un logiciel libre sous licence GPL v3+.

Installation

Le but de la configuration est de rendre accessible les informations de AWStats au travers d'une page http://monserveur/awstats.

Se connecter au serveur Apache concerné et télécharger la dernière version d'AWStats depuis le site officiel :

wget https://prdownloads.sourceforge.net/awstats/awstats-7.8.tar.gz

Exemple :

Putty icon.png Console SSH

Créer le dossier dans lequel seront installées les sources :

mkdir /local/awstats

Décompresser les sources dans le dossier cible :

tar -zxf awstats-7.8.tar.gz -C /local/awstats

Créer un lien symbolique vers la version en cours :

ln -s awstats-7.8 /local/awstats/current

Corriger le propriétaire des fichiers :

chown -R root:root /local/awstats

Configuration automatique (déconseillée)

Se rendre dans le dossier tools des sources :

cd /local/awstats/current/tools

Lancer l'assistant de configuration d'AWStats :

perl awstats_configure.pl

Exemple :

Putty icon.png Console SSH

Bien que l'assistant soit intéressant à lancer pour comprendre les actions qu'il réalise, il reste limité dans la mesure où il n'est pas capable de gérer une configuration Apache avec des vhosts et des fichiers de logs différents.

Il est donc préférable de réaliser une configuration manuelle.

Configuration manuelle (conseillée)

S'aider de la page d'administration d'Apache pour localiser les différents fichiers/dossiers nécessaires à cette partie.

Prérequis Apache

AWStats étant un programme écrit en Perl, il faut qu'Apache puisse l'interpréter. Pour cela, il faut configurer Apache pour autoriser CGI. CGI (Common Gateway Interface) définit une méthode d'interaction entre un serveur web et des programmes générateurs de contenu externes, plus souvent appelés programmes CGI ou scripts CGI.

Pour ce faire, il faut :

  • Activer les modules mod_alias, mod_cgi et mod_cgid
    LoadModule cgid_module modules/mod_cgid.so
    LoadModule cgi_module modules/mod_cgi.so
    LoadModule alias_module modules/mod_alias.so
    
  • Ajouter la directive AddHandler dans la section <IfModule mime_module> du fichier de configuration principal d'Apache :
    • AddHandler cgi-script .cgi .pl
    Cela aura pour effet d'indiquer à Apache que les fichiers .cgi et .pl devront être interprétés comme des scripts CGI.

Définir le format des logs

Il est plus simple pour AWStats de définir le format des logs à un des format par défaut d'Apache : combined. Sans ce format, il faudra mettre en œuvre une configuration particulière pour qu'AWStats interprète correctement les logs d'Apache.

Editer le(s) fichier(s) de configuration d'Apache concerné(s) par la remontée d'informations voulue et définir le format des logs "CustomLog" à combined.

Exemple :

278 ...
279 #
280 CustomLog "|/local/www/current/bin/rotatelogs -l -t -n 15 /data/logs/myserver/localhost_http_access.log 10M" combined
281 
282 #
283 ...

Publier AWStats sur Apache

Vérifier si le nom du serveur est publié au travers d'un vhost :

`lsof -p $(ps -f --ppid 1|grep httpd|awk '{print $2}')|grep bin/httpd|awk '{print $NF}'` -S 2>&1 | grep "namevhost $HOSTNAME"|awk -F[\(\):] '{print $2}'

Exemple :

Putty icon.png Console SSH

Si le retour est vide, cela signifie que le nom de serveur n'est pas publié au travers d'un vhost. Il faudra, au choix :

  • Vérifier si la configuration principale publie le nom du serveur, c'est-à-dire que la page http://monserveur/ est accessible depuis l'extérieur du serveur.
    • Dans ce cas, il faudra juste ajouter la configuration de AWStats au fichier de configuration principal d'Apache
  • Vérifier si la configuration principale ne publie que sur la boucle locale du serveur, c'est-à-dire que la page http://localhost n'est accessible que depuis le serveur lui-même
    Ce cas étant très contraignant dans un environnement avec plusieurs serveurs, il sera donc préférable, au choix, de :
    • Modifier la configuration principale pour publier le nom de serveur
    • Publier le nom de serveur au travers d'un vhost

Dans tous les cas, une fois le fichier de configuration relative à la publication du nom de serveur trouvé, l'éditer et y ajouter les lignes suivantes :

## Configuration de AWStats
# Directives to allow use of AWStats as a CGI
Alias /awstatsclasses "/local/awstats/current/wwwroot/classes/"
Alias /awstatscss "/local/awstats/current/wwwroot/css/"
Alias /awstatsicons "/local/awstats/current/wwwroot/icon/"
ScriptAlias /awstats "/local/awstats/current/wwwroot/cgi-bin/"

# This is to permit URL access to scripts/files in AWStats directory.
<Directory "/local/awstats/current/wwwroot">
	DirectoryIndex awstats.pl
	Options FollowSymLinks ExecCGI
	AllowOverride None
	Require ip 172
</Directory>
## Fin de configuration de AWStats

Créer une configuration AWStats

Important ! Pour chaque site/URL à surveiller, correspond un fichier de logs Apache et, par conséquent, doit correspondre également un fichier de configuration AWStats.

Créer le répertoire dans lequel seront stockées les données générées par AWStats :

mkdir /local/awstats/data

Donner les droits à l'utilisateur Apache :

chown -R www:www /local/awstats/data

Comme indiqué dans le fichier de configuration modèle d'AWStats /local/awstats/current/wwwroot/cgi-bin/awstats.model.conf :

...
# Copy this file into awstats.www.mydomain.conf and edit this new config file
# to setup AWStats (See documentation in docs/ directory).
# The config file must be in /etc/awstats, /usr/local/etc/awstats or /etc (for
# Unix/Linux) or same directory as awstats.pl (Windows, Mac, Unix/Linux...)
...

Les fichiers des différentes configurations d'AWStats doivent être stockés, au choix, dans le dossier /etc/awstats, /usr/local/etc/awstats ou /etc.

Créer donc le dossier /etc/awstats :

mkdir /etc/awstats

Dans les sources d'AWStats déployées, faire une copie du fichier /local/awstats/current/wwwroot/cgi-bin/awstats.model.conf vers le dossier /etc/awstats :

  • Dans le cas d'une configuration unique, le fichier peut se nommer awstats.conf ou awstats.monsite.conf
  • Dans le cas d'une configuration multiple, le fichier doit impérativement se nommer awstats.monsite.conf

En effet, le comportement par défaut d'AWStats est de lire le fichier de configuration correspondant au paramètre qu'on lui aura passé awstats.monsite.conf. En l'absence de ce paramètre et/ou du fichier de configuration correspondant, AWStats cherchera à lire le fichier awstats.conf.

Dans le cadre d'une utilisation d'AWStats sur plusieurs sites (monsite, monsite2, monsupersite ...), lancer la commande suivante :

cp /local/awstats/current/wwwroot/cgi-bin/awstats.model.conf /etc/awstats/awstats.monsite.conf

Les options de configuration d'AWStats sont nombreuses, mais les options nécessaires à son fonctionnement de base sont les suivantes :

  • LogFile
Chemin pointant vers le fichier de log défini par la directive CustomLog d'Apache du site à analyser
  • LogType
Type de log à analyser. Pour un serveur web, il faut définir cette option à W
  • LogFormat
Format du log à analyser. Pour un serveur Apache avec le format prédéfini combined, il faut définir cette option à 1
  • LogSeparator
Séparateur de champs du fichier de log. Inutilisé si l'option LogFormat est défini sur 1, 2, 3 ou 4
  • DNSLookup
Activer la résolution inverse DNS. Les IP sont résolues et ne sont pas affichées.
  • DynamicDNSLookup
Activer la résolution inverse DNS uniquement lorsque des rapports sont produits.
  • DirData
Chemin pointant vers le dossier dans lequel AWStats va stocker les résultats de ses analyses
  • DirCgi
URL absolue ou relative de la localisation du dossier cgi-bin d'AWStats. Utilisé uniquement lorsque qu'AWStats est lancé en ligne de commande.
  • DirIcons
URL absolue ou relative de la localisation du dossier icon d'AWStats. Utilisé uniquement lorsque qu'AWStats est lancé en ligne de commande.
  • SiteDomain
Domaine du site à surveiller. Cela correspond, dans le cas d'un serveur web Apache, au contenu de la directive ServerName.
  • HostAliases
Domaine du site à surveiller. Cela correspond, dans le cas d'un serveur web Apache, au contenu de la directive ServerAlias.
  • AllowToUpdateStatsFromBrowser
Permet de relancer l'analyse d'AWStats depuis le navigateur. Implique que le dossier défini par l'option DirData et son contenu sont accessible en lecture/écriture par l'utilisateur utilisé par le serveur web
  • AllowFullYearView
Autorise ou non l'analyse sur une année depuis le navigateur et/ou en ligne de commande. Utile pour limiter la consommation de ressources du serveur.

Ainsi, un exemple de configuration de départ serait ceci :

LogFile="/data/logs/myapp.mydomain.com/myapp.mydomain.com_http_access.log"
LogType=W
LogFormat=1
LogSeparator=" "
SiteDomain="myapp.mydomain.com"
HostAliases="myapp.mydomain.com"
DNSLookup=0
DynamicDNSLookup=0
DirData="/local/awstats/data"
DirCgi="http://myserver/awstats"
DirIcons="http://myserver/awstatsicons"
AllowToUpdateStatsFromBrowser=1
AllowFullYearView=2

Quelques options supplémentaires utiles :

EnableLockForUpdate=1
Logo="logo-myApp_180x120.png"
LogoLink="http://myapp.mydomain.com"

Plus d'informations sur les différentes options possibles dans la documentation officielle d'AWStats.

Initialisation

La première analyse doit être lancée en ligne de commande. Pour ce faire, se rendre dans le dossier contenant les scripts CGI d'AWStats (par exemple /local/awstats/current/wwwroot/cgi-bin) et lancer la commande suivante :

cd /local/awstats/current/wwwroot/cgi-bin
perl awstats.pl -config=myapp -update

Exemple :

Putty icon.png Console SSH

Utilisation

Se rendre sur la page web sur laquelle a été installé AWStats (voir la section Publier AWStats sur Apache) en ajoutant avec le paramètre "config" la configuration concernée, par exemple http://myserver/awstats/?config=myapp.mydomain.com :

AWStats

Il est possible d'avoir une configuration par défaut si on cherche à atteindre http://myserver/awstats sans paramètre. Pour ce faire, il faut créer un fichier /etc/awstats/awstats.conf.

Astuce : Il peut être intéressant de créer un lien symbolique pointant vers une configuration existante.