Statistiques et analyse de log avec Awstats (postfix & apache)

awstats logo gif

Garder un œil sur son serveur web ou son serveur mail.

AWStats est un outil d’analyse statistique. Programmé en perl, il vous fournira une belle interface web et en français s'il vous plaît. Contrairement aux idées reçu Awstats ne sert pas uniquement pour Apache, il fonctionne avec de nombreux services comme Postifx par exemple.

Site officiel : http://awstats.sourceforge.net/

Téléchargement :

La dernière version est la 6.95, la 7 ne devrait pas trop tarder.

cd /opt/
wget http://prdownloads.sourceforge.net/awstats/awstats-6.95.tar.gz
tar xvzf awstats-6.95.tar.gz
cd awstats-6.95

Installation :

Important à savoir durant l'installation Awstats redémarrera votre serveur web apache.

Rendez vous dans le repertoire tools des sources d'Awstats et lancez l'installation comme ci-dessous :

perl awstats_configure.pl

Ouvrez une autre console sur votre serveur pour pouvoir vérifier les chemins des fichiers que vous allez renseigner, histoire de ne pas faire d'erreur.

Exemple d'installation :

----- 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:
/opt/awstats-6.95
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

-----> Check for web server install

Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:Program filesapache groupapacheconfhttpd.conf
Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf

-----> Check and complete web server config file '/etc/httpd/conf/httpd.conf'
  Add 'Alias /awstatsclasses "/opt/awstats-6.95/wwwroot/classes/"'
  Add 'Alias /awstatscss "/opt/awstats-6.95/wwwroot/css/"'
  Add 'Alias /awstatsicons "/opt/awstats-6.95/wwwroot/icon/"'
  Add 'ScriptAlias /awstats/ "/opt/awstats-6.95/wwwroot/cgi-bin/"'
  Add '<Directory>' directive
  AWStats directives added to Apache config file.

-----> Update model config file '/opt/awstats-6.95/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] ? y

-----> 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:
> web

-----> 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):
>

-----> Create config file '/etc/awstats/awstats.web.conf'
 Config file /etc/awstats/awstats.web.conf created.

-----> Restart Web server with '/sbin/service httpd restart'
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

-----> 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:
/opt/awstats-6.95/wwwroot/cgi-bin/awstats.pl -update -config=web
Or if you have several config files and prefer having only one command:
/opt/awstats-6.95/tools/awstats_updateall.pl now
Press ENTER to continue...
mkdir -p /opt/awstats-6.95/var/lib/awstats-web

Créer la tache planifiée :

crontab -e
/opt/awstats-6.95/wwwroot/cgi-bin/awstats.pl -update -config=web

Visualiser la chose :

Rendez vous à cette adresse avec votre navigateur Firefox (ne fonctionne pas avec internet explorer :p)

http://ip-serveur/awstats/awstats.pl?config=web

Modifier la configuration :

Le fichier de configuration est vraiment bien fait et très clair vous ne devriez pas vous y perdre.

Éditez le fichier awstats.web.conf :

vi /etc/awstats/awstats.web.conf

Modifiez les valeurs suivantes si besoin est et selon votre serveur :

  • LogFile="/var/log/httpd/access_log"
  • LogType=W
  • LogFormat=1

Valider les modifications de config :

Tapez simplement cette commande (la même que pour la tache cron) :

perl /opt/awstats-6.95/wwwroot/cgi-bin/awstats.pl -update -config=web

Si tout fonctionne correctement vous devriez obtenir quelque chose comme ceci :

/opt/awstats-6.95/wwwroot/cgi-bin/awstats.pl -update -config=web
Create/Update database for config "/etc/awstats/awstats.web.conf" by AWStats version 6.95 (build 1.943)
From data in log file "/var/log/httpd/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: 538928
 Found 0 dropped records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 538928 new qualified records.

Arrivez ici nous avons notre Awstats qui analyse les logs de notre serveur web, mais peut etre vouliez vous plutot l'installer pour votre serveur de mail ? pas de souci c'est quelques petites modifications dans le fichier de configuration.

Awstats pour Postfix par exemple :

A savoir, cette même manipulation fonctionne avec Sendmail.

Éditez votre fichier de configuration :

vi /etc/awstats/awstats.web.conf

Modifiez les valeurs suivantes :

LogFile="perl /chemin-vers/maillogconvert.pl standard < /var/log/maillog |" 

et :

LogType=M
LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"
LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForWormsDetection=0
LevelForSearchEnginesDetection=0
LevelForFileTypesDetection=0
ShowMenu=1
ShowSummary=HB
ShowMonthStats=HB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=0
ShowHostsStats=HBL
ShowAuthenticatedUsers=0
ShowRobotsStats=0
ShowEMailSenders=HBML
ShowEMailReceivers=HBML
ShowSessionsStats=0
ShowPagesStats=0
ShowFileTypesStats=0
ShowFileSizesStats=0
ShowBrowsersStats=0
ShowOSStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=1

Valider les modifications :

/opt/awstats-6.95/wwwroot/cgi-bin/awstats.pl -update -config=mail

Retournez jeter un œil sur votre interface awtats, normalement pas mal de chose on changé :)

Biensur vous avez la possibilité d'avoir les deux, des statistiques pour votre serveur web et pour votre serveur mail mais pour cela il vous faudra deux fichiers de configuration bien distinct et deux taches Cron.

Petit aperçu : Awstats pour serveur mail

ls -lah /etc/awstats/
total 128
-rw-r--r-- 1 root root 61119 Apr  2 15:30 awstats.mail.conf
-rw-r--r-- 1 root root 61013 Apr  2 15:36 awstats.web.conf

Calcul des statistiques web à minuit et calcul des statistiques mail à minuit 2 :

crontab -l
0 0 * * * /opt/awstats-6.95/wwwroot/cgi-bin/awstats.pl -update -config=web
02 0 * * * /opt/awstats-6.95/wwwroot/cgi-bin/awstats.pl -update -config=mail

Voila un petit aperçu de Awstats n'hésitez pas a partager vos avis et expériences sur le sujet.

Vus : 1751
Publié par System Linux : 211