[Présentation | Analyser les logs d'Apache avec webalizer ( Présentation , installation , utilisation) | Analyser les logs avec awstats ( Présentation , installation, utilisation ) | Analysez les logs d'un site non hébergé localement ]

Dernière modification 27 février 2013

Analyser les logs d'Apache avec Webalizer et Awstats

Configuration réseau

( cette page est disponible au téléchargement au format pdf)


Présentation

Cette page présente deux outils pour analyser les logs d'Apache. Le premier webalizer est sûrement le plus connu, le deuxième awstats est le nouveau venu dans le domaine, il gagne à être connu car il fournit une information plus riche que webalizer. Les deux outils ont la particularité d'afficher leurs résultats dans une page web.
Awstats fait appel à un script CGI, ce qui n'est pas le cas de webalizer qui pourra servir pour un site web sécurisé (CGI désactivé) accessible sur internet.
 
 
[retour haut de la page ]

Analyser les logs d'Apache avec webalizer

Présentation

Webalizer est un outil qui permet de présenter de manière synthétique les logs d'apache sous forme de pages html avec graphique. Vous pouvez le récupérer à l'URL www.mrunix.net/webalizer/   sous la forme d'une archive tarball webalizer-2.23-05-src.tgz
 
[retour haut de la page ]

Installation

Préalablement on installera les packages suivants gd-devel, zlib1-devel, libpng-devellib64jpeg62-devel, geopip-devel et db1-devel

On installera également la base de données de géolocalisation qu'on peut trouver  par ici ftp://ftp.mrunix.net/pub/webalizer/geodb/

en tant que root on crée le répertoire suivant

mkdir /usr/share/GeoDB

dans lequel on désarchive le tarball

tar xvfz webalizer-geodb-20130201.tgz

Maintenant on récupère les drapeaux, on le décompresse dans le répertoire suivant

cd /usr/local/apache2/logs
tar xvfz webalizer-flags.tgz

cela va donner un répertoire flags, on change le propriétaire en tapant

chown -R root:root flags/

Dans un répertoire de travail pour décompresser l'archive principale, on tapera:

tar xvfz webalizer-2.23-05-src.tgz

Cela va nous créer un répertoire webalizer-2.23-05 dans lequel on tape en tant que simple utilisateur:

./configure --with-language=french --enable-dns --enable-geoip

L'option enable-dns permet d'avoir le nom de la machine qui s'est connecté sur le site plutôt que son adresse IP, c'est quand même plus parlant, enable-geoip permet d'avoir sa position géographique. On tape maintenant

make

et enfin en tant que root

make install

Voilà le résultat

mkdir -p /usr/local/bin
mkdir -p /usr/local/share/man/man1
mkdir -p /usr/local/etc
/usr/bin/install -c webalizer /usr/local/bin/webalizer
/usr/bin/install -c wcmgr /usr/local/bin/wcmgr
rm -f /usr/local/bin/webazolver
ln -s webalizer /usr/local/bin/webazolver
/usr/bin/install -c -m 644 webalizer.1 /usr/local/share/man/man1/webalizer.1
/usr/bin/install -c -m 644 wcmgr.1 /usr/local/share/man/man1/wcmgr.1
rm -f /usr/local/share/man/man1/webazolver.1
ln -s webalizer.1 /usr/local/share/man/man1/webazolver.1
/usr/bin/install -c -m 644 sample.conf /usr/local/etc/webalizer.conf.sample

Comme toujours si les chemins ne vous plaisent pas:

configure --help

Maintenant on crée le fichier de configuration en partant d'un fichier exemple qui a été installé sous /usr/local/etc

cp /usr/local/etc/webalizer.conf.sample /usr/local/etc/webalizer.conf

Dans ce fichier on doit définir les paramètres suivants, 

le nom du fichier de log d'apache à analyser

LogFile        /usr/local/apache2/logs/lena.hoarau.org/access_log

l'emplacement des fichiers générés par webalizer

OutputDir     /usr/local/apache2/logs/webalizer

le nom du site à analyser

HostName        lena.kervao.org

les fichiers qui seront pris en compte dans les stats

PageType        htm*
PageType        cgi
#PageType       phtml
PageType        php
#PageType       pl

l'emplacement où se trouvera la base de donnée nécessaire à la résolution DNS

DNSCache        dns_cache.db

le nombre de process

DNSChildren 5

on active la base de données de géolocalisation

GeoDB yes

emplacement de la base

GeoDBDatabase   /usr/share/GeoDB/GeoDB.dat

on active les informations géographiques liées aux adresses IP

GeoIP yes

emplacement de la base

GeoIPDatabase /usr/share/GeoIP/GeoIP.dat

on active l'affichage des drapeaux

CountryFlags yes

emplacement du répertoire des drapeaux

FlagDir /usr/local/apache2/logs/flags

Pour que vos propres requêtes ne soient pas prises en compte pour les visites (remplacez par votre nom de domaine)

HideSite        *kervao.fr

Pour que vos visites ne soient pas prises en compte pour le compte des "referers"

Pour le domaine local

HideReferrer    kervao.fr

Pour les accès directs

HideReferrer    Direct Request

pour cacher les liens à partir de votre site

HideReferrer   www.funix.org

pour cacher les liens à partir de google

HideReferrer google

[retour haut de la page ]

Utilisation

Il suffit de taper webalizer, par défaut il lira les paramètres présents dans le fichier /usr/local/etc/webalizer.conf

Webalizer V2.23-05 (Linux 2.6.33.5-desktop-2mnb x86_64) French
Using logfile /usr/local/apache2/logs/lena.hoarau.org/access_log (clf)
DNS Lookup (5): 12 addresses in 6 seconds, 2/sec
Using DNS cache file dns_cache.db
Using Webalizer GeoDB 20101001-1
Creating output in /usr/local/apache2/logs/webalizer
Hostname for reports is 'lena.kervao.org'
History file not found...
Generating report for Septembre 2010
Generating report for Octobre 2010
Saving history information...
Generating summary report
4231 records in 1 seconds, 4231/sec

Sinon la syntaxe est la suivante 

webalizer /chemin-dacces/access_log

Cela nous crée à l'endroit où vous avez tapé la commande les fichiers html suivants:

index.html
usage_200111.html

Et les graphiques suivants:

ctry_usage_200111.png
hourly_usage_200111.png
daily_usage_200111.png
usage.png

Je vous invite à cliquer ici pour voir ce que ça donne en vrai.
Si ça ne vous convient pas, vous pouvez rentrer des options à webalizer, pour en avoir la liste:

webalizer -help

webalizer peut maintenant être appelé régulièrement avec cron, sur ma Mandriva, j'ai rajouté le fichier webalizer (avec des droits en exécution) sous /etc/cron.daily

#!/bin/bash
cd /usr/local/apache/webalizer/online
/usr/local/bin/webalizer /usr/local/apache/logs/online-access_log
cd /usr/local/apache/webalizer/ohoarau
/usr/local/bin/webalizer /usr/local/apache/logs/ohoarau-access_log

Les stats seront donc mis à jour tous les jours.


NOTE si au lancement de  vous obtenez comme erreur

Reading history file... webalizer.hist
Error: Skipping oversized log record
Error: Skipping oversized log record
Error: Skipping oversized log record
Error: Skipping oversized log record
Error: Skipping oversized log record
Error: Skipping oversized log record

C'est normal c'est juste un petit malin qui a envoyé une requête hyper longue pour faire tomber votre serveur, il semblerait que IIS soit sensible à ce genre d'attaque. Webalizer se contente d'ignorer ce genre de stats.

Pour pouvoir faire les stats d'un site que vous n'hébergez pas localement, c'est par ici.

 

[retour haut de la page ]

 

Analyser les logs d'Apache avec awstats

Présentation

Awstat est un outil pour analyser les logs d'apache, il est plus riche que webalizer, vous pouvez le trouver à l'URL awstats.sourceforge.net, c'est une archive au format tarball awstats-7.1.tgz qu'on récupérera.
[retour haut de la page ]

Installation et configuration

On décompresse l'archive en tapant :

tar xvfz awstats-7.1.tgz

Cela va nous donner le répertoire awstats-7.1. Dans un premier temps on va devoir modifier légèrement le fichier de config d'apache httpd.conf dans le cas où vous utilisez des hôtes virtuels, voici un exemple de configuration

<VirtualHost 192.168.13.11:1234>
ServerName funix.homelinux.org
DocumentRoot /roger/homepage/online
ErrorLog logs/online-error_log
TransferLog logs/online-access_log
CustomLog logs/online-access_log combined
</VirtualHost>

On doit mettre combined pour le paramètre CustomLog. N'oubliez pas de relancer  apache  en cas de  modification

/etc/rc.d/init.d/httpd restart

Maintenant on doit créer le répertoire /etc/awstats

mkdir /etc/awstats

Pour la configuration d'awstats on ira dans le répertoire tools

cd awstats-7.1/tools

Dans le cas d'une mise à jour on tapera

perl awstats_updateall.pl now -awstatsprog=/chemin-absolu/awstats-7.1/wwwroot/cgi-bin/awstats.pl -configdir=/etc/awstats/

/etc/awstats est le répertoire où se trouve les fichiers de configuration de vos serveurs. Voilà le résultat

Running '"/chemin-absolu/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -update -config=funix.homelinux.org:1234 -configdir="/etc/awstats/"' to update config funix.homelinux.org:1234
Update for config "/etc/awstats/awstats.funix.homelinux.org:1234.conf"
With data in log file "/usr/local/apache/logs/online-access_log"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 26968)
Jumped lines in file: 26968
 Found 26968 already parsed records.
Parsed lines in file: 130
 Found 52 dropped records,
 Found 65 corrupted records,
 Found 0 old records,
 Found 13 new qualified records.

Running '"/chemin-absolu/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -update -config=ohoarau.homelinux.org:1234 -configdir="/etc/awstats/"' to update config ohoarau.homelinux.org:1234
Update for config "/etc/awstats/awstats.ohoarau.homelinux.org:1234.conf"
With data in log file "/usr/local/apache/logs/ohoarau-access_log"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 11746)
Jumped lines in file: 11746
 Found 11746 already parsed records.
Parsed lines in file: 0
 Found 0 dropped records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 0 new qualified records.

Running '"/chemin-absolu/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -update -config=olivier.funix.org -configdir="/etc/awstats/"' to update config olivier.funix.org
Update for config "/etc/awstats/awstats.olivier.funix.org.conf"
With data in log file "/usr/local/apache/logs/olivier/olivier.funix.org.log"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 6034)
Jumped lines in file: 6034
 Found 6034 already parsed records.
Parsed lines in file: 0
 Found 0 dropped records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 0 new qualified records.

Running '"/chemin-absolu/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -update -config=www.funix.org -configdir="/etc/awstats/"' to update config www.funix.org
Update for config "/etc/awstats/awstats.www.funix.org.conf"
With data in log file "/usr/local/apache/logs/funix/www.funix.org.log"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 13987)
Jumped lines in file: 13987
 Found 13987 already parsed records.
Parsed lines in file: 0
 Found 0 dropped records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 0 new qualified records

Dans le cas d'une première installation, on tapera (dans l'exemple ci-dessous, je dispose de deux serveurs Apache (version 1.3 et 2) avec les serveurs web virtuels http://funix.homelinux.org:1234 et http://ohoarau.homelinux.org:1234) en tant que root

perl awstats_configure.pl

voilà le résultat

----- AWStats awstats_configure 1.0 (build 1.8) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for      
one web server. You can try to use it to let it do all that is possible     
in AWStats setup, however following the step by step manual setup           
documentation (docs/index.html) is often a better idea. Above all if:       
- You are not an administrator user,                                        
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).

-----> Running OS detected: Linux, BSD or Unix
Warning: AWStats standard directory on Linux OS is '/usr/local/awstats'.
If you want to use standard directory, you should first move all content
of AWStats distribution from current directory:
/usr/local/linux/web/awstats-7.1
to standard directory:
/usr/local/awstats
And then, run configure.pl from this location.
Do you want to continue setup from this NON standard directory [yN] ? y

ici il trouve les fichiers de configuration de mes deux serveurs Apache

-----> Check for web server install
  Found Web server Apache config file '/usr/local/apache/conf/httpd.conf'
  Found Web server Apache config file '/usr/local/apache2/conf/httpd.conf'

Il modifie les deux fichiers de configuration, il modifie également les fichiers pour mettre à jour le format d'archivage des logs

-----> Check and complete web server config file '/usr/local/apache2/conf/httpd.conf'
  Add '<Directory>' directive
  AWStats directives added to Apache config file.

-----> Check and complete web server config file '/usr/local/apache/conf/httpd.conf'
Warning: You Apache config file contains directives to write 'common' log files
This means that some features can't work (os, browsers and keywords detection).
Do you want me to setup Apache to write 'combined' log files [y/N] ? y
  Add 'Alias /awstatsclasses "/usr/local/linux/web/awstats-7.1/wwwroot/classes/"'
  Add 'Alias /awstatscss "/usr/local/linux/web/awstats-7.1/wwwroot/css/"'
  Add 'Alias /awstatsicons "/usr/local/linux/web/awstats-7.1/wwwroot/icon/"'
  Add 'ScriptAlias /awstats/ "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/"'
  Add '<Directory>' directive
  AWStats directives added to Apache config file.

-----> Update model config file '/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.model.conf'
  File awstats.model.conf updated.

Il met à jour son propre fichier de configuration

-----> Update model config file '/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.model.conf'
  File awstats.model.conf updated.

-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ?

on indique ici l'URL du serveur web à analyser (adresse:port)

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> funix.homelinux.org:1234

Définition du chemin pour stocker les fichiers de configuration pour chaque serveur à analyser

-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>

Création du fichier de configuration du serveur mentionné plus haut

-----> Create config file '/etc/awstats/awstats.funix.homelinux.org:1234.conf'
 Config file /etc/awstats/awstats.funix.homelinux.org:1234.conf created.

Apache est relancé automatiquement

-----> Restart Web server with '/sbin/service httpd restart'
/etc/init.d/httpd restart: httpd restarted

-----> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/linux/web/awstats-6.95/wwwroot/cgi-bin/awstats.pl -update -config=funix.homelinux.org:1234
Or if you have several config files and prefer having only one command:
/usr/local/linux/web/awstats-6.95/tools/awstats_updateall.pl now
Press ENTER to continue...

A SIMPLE config file has been created: /etc/awstats/awstats.funix.homelinux.org:1234.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'funix.homelinux.org:1234' with command:
> perl awstats.pl -update -config=funix.homelinux.org:1234
You can also read your statistics for 'funix.homelinux.org:1234' with URL:
> http://localhost/awstats/awstats.pl?config=funix.homelinux.org:1234

Press ENTER to finish...

Il a créé un fichier de configuration pour le site concerné /etc/awstats/awstats.funix.homelinux.org:1234.conf dans ce fichier j'ai modifié les paramètres suivants:

- Celui qui indique le chemin du fichier de log brut à analyser

LogFile="/usr/local/apache/logs/online-access_log"

- pour activer la résolution de nom DNS

DNSLookup=1

- Celui qui contiendra les données obtenues

DirData="/usr/local/var/awstats"

- Pour indiquer le fichier index de votre site

DefaultFile="index.php"

- Pour ignorer les marchines de votre domaine

SkipHosts="127.0.0.1 REGEX[^192\.168\.13\.]  REGEX[\.kervao\.fr$]"

- Si votre site est identifié par une autre URL il faut la rajouter ici (mettre un espace comme champ séparateur)

HostAliases="funix.homelinux.org:1234"

Pensez à créer préalablement ce répertoire

mkdir /usr/local/var/awstats

Pour voir si tout marche on se place maintenant en tant que root sous awstats-7.1/wwwroot/cgi-bin et on tape

./awstats.pl -config=funix.homelinux.org:1234 -update

Voilà le résultat

Create/Update database for config "/etc/awstats/awstats.www.online.kervao.fr.conf" by AWStats version 7.1 (build 1.943)
From data in log file "/usr/local/apache2/logs/online-access_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 4255
 Found 4 dropped records,
 Found 6 corrupted records,
 Found 0 old records,
 Found 4245 new qualified records.

Sur les versions précédentes il y avait un léger bug, voilà une ligne typique de log

192.168.0.11 - - [19/Feb/2004:10:58:17 +0100] "GET /images/journal.gif HTTP/1.1" 304 - "http://funix.homelinux.org:1234/fr/linux/index.php?ref=tips&page=menu" "Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.4) Gecko/20
030630"

Or parfois Apache archive ceci

192.168.0.11 - - [19/Feb/2004:10:58:24 +0100] "GET / HTTP/1.1" 200 17493

A défaut d'information il laisse des champs vides et awstats n'apprécie guère (il n'analyse pas les logs...). Je n'ai pas le recul suffisant pour savoir si ça était corrigé avec la 6.8.

Si vous avez un deuxième site virtuel, créer un autre fichier /etc/awstats/awstats.mon-domaine-virtuel.conf sur le même modèle que précédemment. Dans mon cas il suffit de taper

cp /etc/awstats/awstats.funix.homelinux.org:1234.conf  /etc/awstats/awstats.ohoarau.homelinux.org:1234.conf

Dans ce fichier pensez à modifier les paramètres pour l'URL et le fichier de logs d'Apache à analyser.

A noter que vu la méthode employée (voir chapitre suivant) pour utiliser awstats, j'ai supprimé les lignes qu'awstats à rajouter dans mes fichiers de configuration d'Apache.
Si vous voulez utiliser awstats en tant que cgi-bin accessible d'Apache, vous devez laisser ces lignes.

[retour haut de la page ]

Utilisation

Voilà comment j'utilise awstats, j'ai créé un fichier awstats (droit exécutable) sous /etc/cron.daily qui s'exécute donc tous les jours et permet de réaliser les stats pour mes deux adresses web virtuelles

#!/bin/bash
/usr/local/linux/web/awstats-7.1/tools/awstats_buildstaticpages.pl -config=ohoarau.homelinux.org:1234 -update -lang=fr -dir=/usr/local/apache2/htdocs/awstats/ohoarau -awstatsprog=/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl

/usr/local/linux/web/awstats-7.1/tools/awstats_buildstaticpages.pl -config=funix.homelinux.org:1234 -update -lang=fr -dir=/usr/local/apache2/htdocs/awstats/online  -awstatsprog=/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl


L'option -dir permet de sauvegarder sous forme html les statistiques obtenus. Pour terminer le répertoire icon d'awstats doit être accessible sur votre serveur web, pour cela dans le fichier de configuration d'Apache, j'ai rajouté les directives suivantes

Alias /awstatsicons/ "/usr/local/linux/web/awstats-7.1/wwwroot/icon/"

<Directory "/usr/local/linux/web/awstats-7.1/wwwroot/icon">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Vous remplacerez bien sûr par le chemin en absolu d'awstats. Par ailleurs j'ai mis les droits qui allaient bien pour le répertoire d'awstats

chmod 755 awstats-7.1/

Voilà ce que ça donne dans je lance mon script /etc/cron.daily/awstats

Launch update process : "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -update -configdir=
Build main page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output
Build alldomains page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=alldomains
Build allhosts page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=allhosts
Build lasthosts page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=lasthosts
Build unknownip page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=unknownip
Build allrobots page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=allrobots
Build lastrobots page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=lastrobots
Build session page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=session
Build urldetail page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=urldetail
Build urlentry page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=urlentry
Build urlexit page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=urlexit
Build osdetail page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=osdetail
Build unknownos page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=unknownos
Build browserdetail page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=browserdetail
Build unknownbrowser page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=unknownbrowser
Build refererse page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=refererse
Build refererpages page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=refererpages
Build keyphrases page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=keyphrases
Build keywords page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=keywords
Build errors404 page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=ohoarau.homelinux.org:1234 -staticlinks -lang=fr -output=errors404
20 files built.
Main HTML page is 'awstats.ohoarau.homelinux.org:1234.html'.
Launch update process : "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -update -configdir=
Build main page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output
Build alldomains page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=alldomains
Build allhosts page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=allhosts
Build lasthosts page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=lasthosts
Build unknownip page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=unknownip
Build allrobots page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=allrobots
Build lastrobots page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=lastrobots
Build session page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=session
Build urldetail page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=urldetail
Build urlentry page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=urlentry
Build urlexit page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=urlexit
Build osdetail page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=osdetail
Build unknownos page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=unknownos
Build browserdetail page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=browserdetail
Build unknownbrowser page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=unknownbrowser
Build refererse page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=refererse
Build refererpages page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=refererpages
Build keyphrases page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=keyphrases
Build keywords page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=keywords
Build errors404 page: "/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl" -config=funix.homelinux.org:1234 -staticlinks -lang=fr -output=errors404
20 files built.
Main HTML page is 'awstats.funix.homelinux.org:1234.html'.


si vous avez une erreur du style

bash: /usr/local/linux/web/awstats-7.1/tools/awstats_buildstaticpages.pl: /usr/bin/perl^M: bad interpreter: Aucun fichier ou répertoire de ce type

il suffit d'éditer le fichier awstats_buildstaticpages.pl et de virer le ^M après perl (avec mcedit par exemple).

Maintenant sous les répertoires /usr/local/apache2/htdocs/awstats/online et /usr/local/apache2/htdocs/awstats/ohoarau je me retrouve avec des fichiers html, pour le premier le fichier d'entrée est awstats.funix.homelinux.org:1234.html et pour l'autre awstats.ohoarau.homelinux.org:1234.html
A partir d'une page web accessible sur votre serveur web (page d'accueil par exemple), j'ai fait un lien vers ces pages de statistiques.
Il faudra éventuellement rajouter le répertoire /usr/local/apache2/htdocs/awstats/online dans une directive Directory dans le fichier httpd.conf si nécessaire.

Voilà quelques aperçus (non exhaustifs)








Pour pouvoir faire les stats d'un site que vous n'hébergez pas localement, c'est par ici.
[retour haut de la page ]

Analysez les logs d'un site hébergé non localement

Pour être concret, j'ai mon site funix.org qui est hébergé chez online, j'ai moyen de récupérer les logs d'Apache bruts, chaque jour un fichier log est créé et qui a pour syntaxe www.funix.org_AAAAmmjj.log.gz (AAAA année, mm mois, jj jour), ce fichier se trouve dans le répertoire log_apache qui se trouve au niveau de la racine. Tant que la taille max n'est pas atteinte, les fichiers logs sont créés, c'est à moi de les supprimer localement. Si avec cron, je demande une mise à jour des stats quotidienne, je le demande pour la veille.
Voilà le script qui permet de récupérer les stats de la veille, et qui le place dans le répertoire /usr/local/apache/logs/funix

#!/bin/bash
# construction du format de la date
jour=`date +%e`
mois31="janvier mars mai juillet août octobre décembre"
mois30="avril juin septembre novembre"
if  [ $jour -eq "1" ];
then
  mois=`date +%B`
  # ca c'est le mois de février, à modifier éventuellement
  hier="28"
  for mois31
  do
       if [ $mois== "[$mois31]"]
       then
            hier=31
       fi
  done
  for mois30
  do
       if [ $mois== "[$mois30]"]
       then
             hier=30
       fi
  done
else
  hier=`expr $jour - 1`
fi
longueur=`expr length $hier`
if [ $longueur -eq "1" ];
then
              hier=0$hier
fi
anneemois=`date +%G%m`
veille=$anneemois$hier

# je me déplace dans le répertoire qui va bien et je supprime les vieux fichiers log
cd /usr/local/apache/logs/funix
rm -f /usr/local/apache/logs/funix/*.log
# récupération des logs par ftp
wget -c ftp://privftp.pro.proxad.net/log_apache/www.funix.org_$veille.log.gz --user=login --password=motdepasse
# je décompresse l'archive et la renomme
gunzip www.funix.org_$veille.log.gz
mv www.funix.org_$veille.log www.funix.org.log
# pour ne pas avoir à  faire le ménage des fichiers logs sur le serveur ftp, on le réalise automatiquement
ftp -n <<lafin
open privftp.pro.proxad.net
user login motdepasse
cd log_apache
binary
delete  www.funix.org_$veille.log.gz
bye
lafin

# je lance l'analyse des logs par webalizer
# les résultats se retrouveront dans /usr/local/apache/logs/funix
/usr/local/bin/webalizer /usr/local/apache/logs/funix/www.funix.org.log

Pour réaliser des stats avec awstats, j'ai créé un fichier /etc/awstats/awstats.www.funix.org.conf dans lequel j'ai modifié les paramètres suivants

LogFile="/usr/local/apache/logs/funix/www.funix.org.log"

SiteDomain="www.funix.org"

HostAliases="www.funix.org"

Voilà la commande à rajouter à la fin du script pour lancer une analyse par awstats

/usr/local/linux/web/awstats-7.1/tools/awstats_buildstaticpages.pl -config=www.funix.org -update -lang=fr -dir=/usr/local/apache2/htdocs/awstats/funix -awstatsprog=/usr/local/linux/web/awstats-7.1/wwwroot/cgi-bin/awstats.pl

Les fichiers résultats vont se retrouver sous /usr/local/apache2/htdocs/awstats/funix

Placer maintenant ce script sous /etc/cron.daily pour qu'il soit appelé tous les jours (à 4h du mat pour une Mandriva par défaut).

 
[Retour page d'accueil FUNIX] [retour haut de la page ]