Statistiques et analyse de log avec Awstats (postfix & apache)
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.