17 décembre 2012

Gestion des logs

1.    Introduction

 L’analyse du trafic Web d’un site applicatif et les conditions dans lesquels ce trafic s’effectue deviennent de plus en plus des éléments essentiels du tableau de bord de suivi des applications Web. Encore faut-il disposer de la source d’information nécessaire à cette analyse. Dans ce document, il s’agit d’examiner :
  • Comment faire produire à une installation WebLogic les informations/traces ( logs) nécessaires à l’analyse du trafic ; et comment exploiter ces logs.
  •   Quels sont les principes généraux de configuration des outils d’analyse des logs ;
  • Comment publier les résultats des analyses.

Les logs générés par les différents serveurs WEB ou serveurs d'application obéissent à des formats soit standards de fait, soit standards définis par les instances du W3C.

Les principaux formats acceptés  par les analyseurs de logs sont:

- Le format dit « combined » Apache , encore appelé format  NCSA ou  Apache combined/ELF/XLF. C'est le format par défaut utilisé par WebLogic, dans une certaine mesure.

- Le format log étendu WC3 utilisé par Microsoft IIS et par un certain nombre de serveurs d'applications dont WebLogic.

Tous les analyseurs n’acceptent pas tous les formats.

2.1      La production des fichiers logs

Deux cas sont à considérer selon que les logs sont à produire par Apache ou par le serveur d'application WebLogic. Les logs produits par Apache concernent les applications utilisant Apache en frontal du serveur WebLogic. Pour les applications n’utilisant pas Apache en frontal, les logs à utiliser sont produits par le serveur d’application webLogic.


2.1.1     Production de logs par Apache

Placé en frontal d’un serveur d’application WebLogic, Apache produit, d’office, des logs susceptibles d’être analysées.  Très rapide, cette approche ne convient que pour les applications ayant opté pour une architecture présentant un serveur Apache en frontal.

Dans ce cas de figure, la configuration des logs est effectuée dans le fichier de configuration Apache, httpd.conf. On y précise:

-       Le nom du fichier log et sa localisation. Les recommandations de nommage de nos installations sont:

       /var/apache/logs/hoteVirtuel/hote_access.log

- Le format des logs. Dans le fichier de configuration d'Apache (httpd.conf), les formats de base sont généralement définis selon les lignes suivantes:

#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

Vous devez ensuite définir le fichier de log, en indiquant le format retenu. Exemple:

   CustomLog /var/apache/logs/hoteVirtuel/hote_access.log combined

Le format combined est celui recommandé pour la plupart des analyseurs de log.
 
Voici un exemple de définition,  d'une application WebLogic avec un Apache en frontal:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

<VirtualHost SRVR05-A>
     ServerAdmin webmaster@fxe.com
     DocumentRoot "C:\appli\httpd"
     ServerName SRVR05-A
     <Directory "C:/appli/httpd/srvtest12">
        Options Indexes FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from All
     </Directory>
            <IfModule mod_weblogic.c>
                        <Location /test12>
                        SetHandler weblogic-handler
                        WebLogicCluster 192.168.0.22:7201,192.168.0.28:7201
                        MatchExpression *.jsp
                        MatchExpression *.do
                        </Location>   
                        ErrorLog C:/var/apache/logs/srvtest12/srvtest12-error_log
                        CustomLog C:/var/apache/logs/srvtest12/srvtest12-access_log combined                        
            </IfModule>   
</VirtualHost>

Pour les applications dont l’architecture ne prévoit pas un frontal Apache, il faut se résoudre à utiliser directement les logs produits par WebLogic.

La configuration de la production des logs est effectuée à partir de la console d'administration , dans l'onglet <Configuration>/<logging>/<httpd> . On y précise, au moins:

            - le nom complet du fichier de logs;
            - le type de logs;
            - le type de rotation.

Deux types de logs peuvent être générés:

- Type common;
- Type Extended.

Mais ils ne sont pas tous analysables par tous les analyseurs !
 

2.1.2.1     Log WebLogic du type common


Le type Common ne correspond pas tout à fait  au type combined des logs Apache. Il  est toutefois le plus rapide à mettre en oeuvre, car il ne nécessite pas d'actions particulières dans l'entête du fichier de log. Mais nous devrons spécifier plus précisément son format dans la configuration de l'analyseur.

Exemple :

            LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd"

2.1.2.2     Log WebLogic du type Extended


Le type Extended, standard WC3 est reconnu par certains analyseurs. Il fournit plus d'informations, mais nécessite de placer préalablement en tête du fichier  log des directives définissant les champs devant être produits par le serveur d'application.

Exemple d'entête placé dans un fichier log : test12-access_log

#Version: 1.0
#Fields: date time c-ip cs-username cs-method cs-uri-stem cs-uri-query sc-status sc-bytes cs-version cs(User-Agent) cs(Referer)
#Software: WebLogic

Par la suite, WebLogic générera un fichier log du genre:

#Version: 1.0
#Fields: date time c-ip cs-username cs-method cs-uri-stem cs-uri-query sc-status sc-bytes cs-version cs(User-Agent) cs(Referer)
#Software: WebLogic
#Start-Date:     2006-04-04       16:52:002006-04-06      17:43:32           192.168.0.207   -           GET            /businessobjects/enterprise11/admin      -           302       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"           -
2006-04-06       17:43:32           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/     -           200       -            -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            -
2006-04-06       17:43:32           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/redirect.csp           -            302       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            -
2006-04-06       17:43:32           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/fr/default.csp                     302       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            -
2006-04-06       17:43:32           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/fr/admin.cwr          -            200       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            -
2006-04-06       17:43:33           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/fr/js/cookieHandler.js            -           200       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            "http://192.168.0.22:7301/businessobjects/enterprise11/admin/fr/admin.cwr"
2006-04-06       17:43:33           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/fr/admin.cwr            draw=header    200       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            "http://192.168.0.22:7301/businessobjects/enterprise11/admin/fr/admin.cwr"
2006-04-06       17:43:33           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/fr/admin.cwr            draw=logon       200       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            "http://192.168.0.22:7301/businessobjects/enterprise11/admin/fr/admin.cwr"
2006-04-06       17:43:33           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/fr/css/default.css    -            200       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            "http://192.168.0.22:7301/businessobjects/enterprise11/admin/fr/admin.cwr?draw=header"
2006-04-06       17:43:33           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/fr/js/helps.js          -            200       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            "http://192.168.0.22:7301/businessobjects/enterprise11/admin/fr/admin.cwr?draw=header"
2006-04-06       17:43:33           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/fr/images/buttonl.gif            -           200       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            "http://192.168.0.22:7301/businessobjects/enterprise11/admin/fr/admin.cwr?draw=logon"
2006-04-06       17:43:33           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/fr/images/buttonm.gif            -           200       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            "http://192.168.0.22:7301/businessobjects/enterprise11/admin/fr/admin.cwr?draw=logon"
2006-04-06       17:43:33           192.168.0.207   -           GET      /businessobjects/enterprise11/admin/fr/images/buttonr.gif            -           200       -           -           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"            "http://192.168.0.22:7301/businessobjects/enterprise11/admin/fr/admin.cwr?draw=logon"



3.     Les outils d'analyse



Je recommande l'outil d'analyse WebTrends (anciennement connu sous le nom de Log Analyzer). Ce produit est proposé en trois versions:

-       Small Business : 1 millions de pages analysables ;
-       Professionnal  : 5 millions de pages analysables;
-       Enterprise : 20 millions de pages analysables.

Un outil OpenSource très utilisé, et offrant une bonne couverture fonctionnelle, sur les plates-formes UNIX/LINUX et Windows: AWSTATS.

Quel que soit l'outil utilisé, le processus de configuration est à peu près le même. Je fournis celui concernant AWSTATS, à titre indicatif, sachant que le choix d'un outil d'analyse peut conduire  à revoir le choix du mode de production des logs.


3.1      Exemple de AWSTATS


Cet exemple, présenté pour l'environnement Windows, est similaire dans l'environnement LINUX RedHat.

3.1.1     Pré-requis

Les deux pré-requis à la mise en oeuvre de AWSTAT sont l'installation d'Apache 2 et de PERL.

3.1.1.1     Apache 2

 Installez Apache 2 à partir d'une distribution Apache 2
 

3.1.1.2     PERL

 Installez PERL à partir d'une distribution ActivePERL .

3.1.2     Installation

Avant de lancer l'installation de AWSTATS, définissez bien:

            - le type de logs;
            - le nom du fichier de configuration (égal au nom du site en général). AWSTAT génère un fichier de configuration appelé awstats.nomsite.conf.

L'installation s'effectue à partir du package Windows:  awstats-6.5.exe

L’image-écran ci-dessous doit s’afficher


Actionner le bouton <Suivant>.


Indiquez l’acceptation des conditions de licence.


Précisez le répertoire d’installation.


A l'issu de l'installation, AWSTATS lance son script de configuration, et complète automatiquement le fichier de configuration Apache (httpd.conf) avec ses paramètres :

#
# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "C:/Program Files/AWStats/wwwroot/classes/"
Alias /awstatscss "C:/Program Files/AWStats/wwwroot/css/"
Alias /awstatsicons "C:/Program Files/AWStats/wwwroot/icon/"
ScriptAlias /awstats/ "C:/Program Files/AWStats/wwwroot/cgi-bin/"

#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory "C:/Program Files/AWStats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>



A partir d'un éditeur, vous devrez ajuster les paramètres du fichier de configuration awstats.nomsite.conf


Les principaux paramètres à examiner sont les suivants:

LogFile
LogType
LogFormat
SiteDomain
HostAliases

LogFile

Ce paramètre permet de spécifier le nom complet du fichier de logs. Exemple:

            LogFile="C:/var/apache/logs/access.log"


LogType

Ce paramètre permet de spécifier le type de Log. Le type est W pour les serveurs Web et les serveurs d’application.

LogFormat

Ce paramètre permet de spécifier le format du fichier de log. On peut, soit indiquer un code correspondant à un format standard, soit spécifier, entre guillemets, le format des logs en utilisant les codes de formatage standard.

Exemple :

LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd"

SiteDomain

Ce paramètre spécifie l'adresse IP ou le nom du domaine (apparaissant dans les logs) et qui servira de filtre pour les lignes de log à retenir. Il est souvent complété par le paramètre HostAliases.

HostAliases

Ce paramètre spécifie les adresses IP, noms de domaines à retenir dans les analyses.

3.1.3.1     Fichier de paramètre pour des logs produits par Apache

# AWSTATS CONFIGURE FILE 6.5
#-----------------------------------------------------------------------------
# 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 than awstats.pl (Windows, Mac, Unix/Linux...)
# To include an environment variable in any parameter (AWStats will replace
# it with its value when reading it), follow the example:
# Parameter="__ENVNAME__"
# Note that environment variable AWSTATS_CURRENT_CONFIG is always defined with
# the config value in an AWStats running session and can be used like others.
#-----------------------------------------------------------------------------
# $Revision: 1.324 $ - $Author: eldy $ - $Date: 2005/10/30 15:56:38 $



#-----------------------------------------------------------------------------
# MAIN SETUP SECTION (Required to make AWStats work)
#-----------------------------------------------------------------------------

# "LogFile" contains the web, ftp or mail server log file to analyze.
# Possible values: A full path, or a relative path from awstats.pl directory.
# Example: "/var/log/apache/access.log"
# Example: "../logs/mycombinedlog.log"
# You can also use tags in this filename if you need a dynamic file name
# depending on date or time (Replacement is made by AWStats at the beginning
# of its execution). This is available tags :
#   %YYYY-n  is replaced with 4 digits year we were n hours ago
#   %YY-n    is replaced with 2 digits year we were n hours ago
#   %MM-n    is replaced with 2 digits month we were n hours ago
#   %MO-n    is replaced with 3 letters month we were n hours ago
#   %DD-n    is replaced with day we were n hours ago
#   %HH-n    is replaced with hour we were n hours ago
#   %NS-n    is replaced with number of seconds at 00:00 since 1970
#   %WM-n    is replaced with the week number in month (1-5)
#   %Wm-n    is replaced with the week number in month (0-4)
#   %WY-n    is replaced with the week number in year (01-52)
#   %Wy-n    is replaced with the week number in year (00-51)
#   %DW-n    is replaced with the day number in week (1-7, 1=sunday)
#                              use n=24 if you need (1-7, 1=monday)
#   %Dw-n    is replaced with the day number in week (0-6, 0=sunday)
#                              use n=24 if you need (0-6, 0=monday)
#   Use 0 for n if you need current year, month, day, hour...
# Example: "/var/log/access_log.%YYYY-0%MM-0%DD-0.log"
# Example: "C:/WINNT/system32/LogFiles/W3SVC1/ex%YY-24%MM-24%DD-24.log"
# You can also use a pipe if log file come from a pipe :
# Example: "gzip -d </var/log/apache/access.log.gz |"
# If there is several log files from load balancing servers :
# Example: "/pathtotools/logresolvemerge.pl *.log |"
#
#LogFile="/var/log/httpd/mylog.log"
LogFile="C:/var/apache/logs/access.log"


# Enter the log file type you want to analyze.
# Possible values:
#  W - For a web log file
#  S - For a streaming log file
#  M - For a mail log file
#  F - For a ftp log file
# Example: W
# Default: W
#
LogType=W

# Enter here your log format (Must match your web server config. See setup
# instructions in documentation to know how to configure your web server to
# have the required log format).
# Possible values: 1,2,3,4 or "your_own_personalized_log_format"
# 1 - Apache or Lotus Notes/Domino native combined log format (NCSA combined/XLF/ELF log format)
# 2 - IIS or ISA format (IIS W3C log format). See FAQ-COM115 For ISA.
# 3 - Webstar native log format.
# 4 - Apache or Squid native common log format (NCSA common/CLF log format)
#     With LogFormat=4, some features (browsers, os, keywords...) can't work.
# "your_own_personalized_log_format" = If your log is ftp, mail or other format,
#     you must use following keys to define the log format string (See FAQ for
#     ftp, mail or exotic web log format examples):
#   %host             Client hostname or IP address (or Sender host for mail log)
#   %host_r           Receiver hostname or IP address (for mail log)
#   %lognamequot      Authenticated login/user with format: "john"
#   %logname          Authenticated login/user with format: john
#   %time1            Date and time with format: [dd/mon/yyyy:hh:mm:ss +0000] or [dd/mon/yyyy:hh:mm:ss]
#   %time2            Date and time with format: yyyy-mm-dd hh:mm:ss
#   %time3            Date and time with format: Mon dd hh:mm:ss or Mon dd hh:mm:ss yyyy
#   %time4            Date and time with unix timestamp format: dddddddddd
#   %methodurl        Method and URL with format: "GET /index.html HTTP/x.x"
#   %methodurlnoprot  Method and URL with format: "GET /index.html"
#   %method           Method with format: GET
#   %url              URL only with format: /index.html
#   %query            Query string (used by URLWithQuery option)
#   %code             Return code status (with format for web log: 999)
#   %bytesd           Size of document in bytes
#   %refererquot      Referer page with format: "http://from.com/from.htm"
#   %referer          Referer page with format: http://from.com/from.htm
#   %uabracket        User agent with format: [Mozilla/4.0 (compatible, ...)]
#   %uaquot           User agent with format: "Mozilla/4.0 (compatible, ...)"
#   %ua               User agent with format: Mozilla/4.0_(compatible...)
#   %gzipin           mod_gzip compression input bytes: In:XXX
#   %gzipout          mod_gzip compression output bytes & ratio: Out:YYY:ZZpct.
#   %gzipratio        mod_gzip compression ratio: ZZpct.
#   %deflateratio     mod_deflate compression ratio with format: (ZZ)
#   %email            EMail sender (for mail log)
#   %email_r          EMail receiver (for mail log)
#   %virtualname      Web sever virtual hostname. Use this tag when same log
#                     contains data of several virtual web servers. AWStats
#                     will discard records not in SiteDomain nor HostAliases
#   %cluster          If log file is provided from several computers (merged by
#                     logresolvemerge.pl), use this to define cluster id field.
#   %extraX           Another field that you plan to use for building a
#                     personalized report with ExtraSection feature (See later).
#   If your log format has some fields not included in this list, use:
#   %other            Means another not used field
#   %otherquot        Means another not used double quoted field
#
# Examples for Apache combined logs (following two examples are equivalent):
# LogFormat = 1
# LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
#
# Example for IIS:
# LogFormat = 2
#
# LogFormat=3

LogFormat=1

# If your log field's separator is not a space, you can change this parameter.
# This parameter is not used if LogFormat is a predefined value (1,2,3,4)
# Backslash can be used as escape character.
# Example: " "
# Example: "\t"
# Example: "\|"
# Example: ","
# Default: " "
#
LogSeparator=" "

# "SiteDomain" must contain the main domain name, or the main intranet web
# server name, used to reach the web site.
# If you share the same log file for several virtual web servers, this
# parameter is used to tell AWStats to filter record that contains records for
# this virtual host name only (So check that this virtual hostname can be
# found in your log file and use a personalized log format that include the
# %virtualname tag).
# But for multi hosting a better solution is to have one log file for each
# virtual web server. In this case, this parameter is only used to generate
# full URL's links when ShowLinksOnUrl option is set to 1.
# If analysing mail log, enter here the domain name of mail server.
# Example: "myintranetserver"
# Example: "www.domain.com"
# Example: "ftp.domain.com"
# Example: "domain.com"
#
SiteDomain="192.168.0.22"

# Enter here all other possible domain names, addresses or virtual host
# aliases someone can use to access your site. Try to keep only the minimum
# number of possible names/addresses to have the best performances.
# You can repeat the "SiteDomain" value in this list.
# This parameter is used to analyze referer field in log file and to help
# AWStats to know if a referer URL is a local URL of same site or an URL of
# another site.
# Note: Use space between each value.
# Note: You can use regular expression values writing value with REGEX[value].
# Note: You can also use @/mypath/myfile if list of aliases are in a file.
# Example: "www.myserver.com localhost 127.0.0.1 REGEX[mydomain\.(net|org)$]"
#
HostAliases="businessobjects 192.168.0.207 192.168.0.22  SRVR05 cloud-SRV-05-B 127.0.0.1 localhost"

# If you want to have hosts reported by name instead of ip address, AWStats
# need to make reverse DNS lookups (if not already done in your log file).
# With DNSLookup to 0, all hosts will be reported by their IP addresses and
# not by the full hostname of visitors (except if names are already available
# in log file).
# If you want/need to set DNSLookup to 1, don't forget that this will reduce
# dramatically AWStats update process speed. Do not use on large web sites.
# Note: Reverse DNS lookup is done on IPv4 only (Enable ipv6 plugin for IPv6).
# Note: Result of DNS Lookup can be used to build the Country report. However
# it is highly recommanded to enable the plugin 'geoipfree' or 'geoip' to
# have an accurate Country report with no need of DNS Lookup.
# Possible values:
# 0 - No DNS Lookup
# 1 - DNS Lookup is fully enabled
# 2 - DNS Lookup is made only from static DNS cache file (if it exists)
# Default: 2
#
DNSLookup=2

# When AWStats updates its statistics, it stores results of its analysis in
# files (AWStats database). All those files are written in the directory
# defined by the "DirData" parameter. Set this value to the directory where
# you want AWStats to save its database and working files into.
# Warning: If you want to be able to use the "AllowToUpdateStatsFromBrowser"
# feature (see later), you need "Write" permissions by web server user on this
# directory (and "Modify" for Windows NTFS file systems).
# Example: "/var/lib/awstats"
# Example: "../data"
# Example: "C:/awstats_data_dir"
# Default: "."          (means same directory as awstats.pl)
#
DirData="."

# Relative or absolute web URL of your awstats cgi-bin directory.
# This parameter is used only when AWStats is run from command line
# with -output option (to generate links in HTML reported page).
# Example: "/awstats"
# Default: "/cgi-bin"   (means awstats.pl is in "/yourwwwroot/cgi-bin")
#
DirCgi="/awstats"

# Relative or absolute web URL of your awstats icon directory.
# If you build static reports ("... -output > outputpath/output.html"), enter
# path of icon directory relative to the output directory 'outputpath'.
# Example: "/awstatsicons"
# Example: "../icon"
# Default: "/icon" (means you must copy icon directories in "/mywwwroot/icon")
#
DirIcons="/awstatsicons"

3.1.3.2     Fichier de paramètre pour des logs produits par webLogic

# AWSTATS CONFIGURE FILE 6.5
#-----------------------------------------------------------------------------
# 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 than awstats.pl (Windows, Mac, Unix/Linux...)
# To include an environment variable in any parameter (AWStats will replace
# it with its value when reading it), follow the example:
# Parameter="__ENVNAME__"
# Note that environment variable AWSTATS_CURRENT_CONFIG is always defined with
# the config value in an AWStats running session and can be used like others.
#-----------------------------------------------------------------------------
# $Revision: 1.324 $ - $Author: eldy $ - $Date: 2005/10/30 15:56:38 $


#-----------------------------------------------------------------------------
# MAIN SETUP SECTION (Required to make AWStats work)
#-----------------------------------------------------------------------------

# "LogFile" contains the web, ftp or mail server log file to analyze.
# Possible values: A full path, or a relative path from awstats.pl directory.
# Example: "/var/log/apache/access.log"
# Example: "../logs/mycombinedlog.log"
# You can also use tags in this filename if you need a dynamic file name
# depending on date or time (Replacement is made by AWStats at the beginning
# of its execution). This is available tags :
#   %YYYY-n  is replaced with 4 digits year we were n hours ago
#   %YY-n    is replaced with 2 digits year we were n hours ago
#   %MM-n    is replaced with 2 digits month we were n hours ago
#   %MO-n    is replaced with 3 letters month we were n hours ago
#   %DD-n    is replaced with day we were n hours ago
#   %HH-n    is replaced with hour we were n hours ago
#   %NS-n    is replaced with number of seconds at 00:00 since 1970
#   %WM-n    is replaced with the week number in month (1-5)
#   %Wm-n    is replaced with the week number in month (0-4)
#   %WY-n    is replaced with the week number in year (01-52)
#   %Wy-n    is replaced with the week number in year (00-51)
#   %DW-n    is replaced with the day number in week (1-7, 1=sunday)
#                              use n=24 if you need (1-7, 1=monday)
#   %Dw-n    is replaced with the day number in week (0-6, 0=sunday)
#                              use n=24 if you need (0-6, 0=monday)
#   Use 0 for n if you need current year, month, day, hour...
# Example: "/var/log/access_log.%YYYY-0%MM-0%DD-0.log"
# Example: "C:/WINNT/system32/LogFiles/W3SVC1/ex%YY-24%MM-24%DD-24.log"
# You can also use a pipe if log file come from a pipe :
# Example: "gzip -d </var/log/apache/access.log.gz |"
# If there is several log files from load balancing servers :
# Example: "/pathtotools/logresolvemerge.pl *.log |"
#
LogFile="C:/var/apache/logs/access.log"

# Enter the log file type you want to analyze.
# Possible values:
#  W - For a web log file
#  S - For a streaming log file
#  M - For a mail log file
#  F - For a ftp log file
# Example: W
# Default: W
#
LogType=W

# Enter here your log format (Must match your web server config. See setup
# instructions in documentation to know how to configure your web server to
# have the required log format).
# Possible values: 1,2,3,4 or "your_own_personalized_log_format"
# 1 - Apache or Lotus Notes/Domino native combined log format (NCSA combined/XLF/ELF log format)
# 2 - IIS or ISA format (IIS W3C log format). See FAQ-COM115 For ISA.
# 3 - Webstar native log format.
# 4 - Apache or Squid native common log format (NCSA common/CLF log format)
#     With LogFormat=4, some features (browsers, os, keywords...) can't work.
# "your_own_personalized_log_format" = If your log is ftp, mail or other format,
#     you must use following keys to define the log format string (See FAQ for
#     ftp, mail or exotic web log format examples):
#   %host             Client hostname or IP address (or Sender host for mail log)
#   %host_r           Receiver hostname or IP address (for mail log)
#   %lognamequot      Authenticated login/user with format: "john"
#   %logname          Authenticated login/user with format: john
#   %time1            Date and time with format: [dd/mon/yyyy:hh:mm:ss +0000] or [dd/mon/yyyy:hh:mm:ss]
#   %time2            Date and time with format: yyyy-mm-dd hh:mm:ss
#   %time3            Date and time with format: Mon dd hh:mm:ss or Mon dd hh:mm:ss yyyy
#   %time4            Date and time with unix timestamp format: dddddddddd
#   %methodurl        Method and URL with format: "GET /index.html HTTP/x.x"
#   %methodurlnoprot  Method and URL with format: "GET /index.html"
#   %method           Method with format: GET
#   %url              URL only with format: /index.html
#   %query            Query string (used by URLWithQuery option)
#   %code             Return code status (with format for web log: 999)
#   %bytesd           Size of document in bytes
#   %refererquot      Referer page with format: "http://from.com/from.htm"
#   %referer          Referer page with format: http://from.com/from.htm
#   %uabracket        User agent with format: [Mozilla/4.0 (compatible, ...)]
#   %uaquot           User agent with format: "Mozilla/4.0 (compatible, ...)"
#   %ua               User agent with format: Mozilla/4.0_(compatible...)
#   %gzipin           mod_gzip compression input bytes: In:XXX
#   %gzipout          mod_gzip compression output bytes & ratio: Out:YYY:ZZpct.
#   %gzipratio        mod_gzip compression ratio: ZZpct.
#   %deflateratio     mod_deflate compression ratio with format: (ZZ)
#   %email            EMail sender (for mail log)
#   %email_r          EMail receiver (for mail log)
#   %virtualname      Web sever virtual hostname. Use this tag when same log
#                     contains data of several virtual web servers. AWStats
#                     will discard records not in SiteDomain nor HostAliases
#   %cluster          If log file is provided from several computers (merged by
#                     logresolvemerge.pl), use this to define cluster id field.
#   %extraX           Another field that you plan to use for building a
#                     personalized report with ExtraSection feature (See later).
#   If your log format has some fields not included in this list, use:
#   %other            Means another not used field
#   %otherquot        Means another not used double quoted field
#
#  Définition du LogFormat pour WebLogic  Common log format
#  ============================================
#

LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd"

# If your log field's separator is not a space, you can change this parameter.
# This parameter is not used if LogFormat is a predefined value (1,2,3,4)
# Backslash can be used as escape character.
# Example: " "
# Example: "\t"
# Example: "\|"
# Example: ","
# Default: " "
#
LogSeparator=" "

# "SiteDomain" must contain the main domain name, or the main intranet web
# server name, used to reach the web site.
# If you share the same log file for several virtual web servers, this
# parameter is used to tell AWStats to filter record that contains records for
# this virtual host name only (So check that this virtual hostname can be
# found in your log file and use a personalized log format that include the
# %virtualname tag).
# But for multi hosting a better solution is to have one log file for each
# virtual web server. In this case, this parameter is only used to generate
# full URL's links when ShowLinksOnUrl option is set to 1.
# If analysing mail log, enter here the domain name of mail server.
# Example: "myintranetserver"
# Example: "www.domain.com"
# Example: "ftp.domain.com"
# Example: "domain.com"
#
SiteDomain="192.168.0.5"


# Enter here all other possible domain names, addresses or virtual host
# aliases someone can use to access your site. Try to keep only the minimum
# number of possible names/addresses to have the best performances.
# You can repeat the "SiteDomain" value in this list.
# This parameter is used to analyze referer field in log file and to help
# AWStats to know if a referer URL is a local URL of same site or an URL of
# another site.
# Note: Use space between each value.
# Note: You can use regular expression values writing value with REGEX[value].
# Note: You can also use @/mypath/myfile if list of aliases are in a file.
# Example: "www.myserver.com localhost 127.0.0.1 REGEX[mydomain\.(net|org)$]"
#
HostAliases="businessobjects 192.168.0.207  192.168.0.5 192.168.0.22  SRVR05 cloud-SRV-05-B 127.0.0.1 localhost"

# If you want to have hosts reported by name instead of ip address, AWStats
# need to make reverse DNS lookups (if not already done in your log file).
# With DNSLookup to 0, all hosts will be reported by their IP addresses and
# not by the full hostname of visitors (except if names are already available
# in log file).
# If you want/need to set DNSLookup to 1, don't forget that this will reduce
# dramatically AWStats update process speed. Do not use on large web sites.
# Note: Reverse DNS lookup is done on IPv4 only (Enable ipv6 plugin for IPv6).
# Note: Result of DNS Lookup can be used to build the Country report. However
# it is highly recommanded to enable the plugin 'geoipfree' or 'geoip' to
# have an accurate Country report with no need of DNS Lookup.
# Possible values:
# 0 - No DNS Lookup
# 1 - DNS Lookup is fully enabled
# 2 - DNS Lookup is made only from static DNS cache file (if it exists)
# Default: 2
#
DNSLookup=2


# When AWStats updates its statistics, it stores results of its analysis in
# files (AWStats database). All those files are written in the directory
# defined by the "DirData" parameter. Set this value to the directory where
# you want AWStats to save its database and working files into.
# Warning: If you want to be able to use the "AllowToUpdateStatsFromBrowser"
# feature (see later), you need "Write" permissions by web server user on this
# directory (and "Modify" for Windows NTFS file systems).
# Example: "/var/lib/awstats"
# Example: "../data"
# Example: "C:/awstats_data_dir"
# Default: "."          (means same directory as awstats.pl)
#

DirData="."

# Relative or absolute web URL of your awstats cgi-bin directory.
# This parameter is used only when AWStats is run from command line
# with -output option (to generate links in HTML reported page).
# Example: "/awstats"
# Default: "/cgi-bin"   (means awstats.pl is in "/yourwwwroot/cgi-bin")
#
DirCgi="/awstats"


# Relative or absolute web URL of your awstats icon directory.
# If you build static reports ("... -output > outputpath/output.html"), enter
# path of icon directory relative to the output directory 'outputpath'.
# Example: "/awstatsicons"
# Example: "../icon"
# Default: "/icon" (means you must copy icon directories in "/mywwwroot/icon")
#
DirIcons="/awstatsicons"


La mise à jour  des statistiques s’effectue par exécution de lignes de commandes, en se plaçant par exemple dans le répertoire d’installation de AWSTATS. Le logiciel produit un compte rendu indiquant le nombre de lignes prises en compte.

Commande type :

perl awstats.pl -config=mysite -update



La mise à jour des statistiques peut être effectuée, soit manuellement, soit de façon automatique dans le cadre d’une tâche batch. La procédure mise en place doit tenir compte de la question de la rotation des fichiers de logs et aussi des facilités de publication.

3.1.5     Publication  des analyses

La publication des statistiques s’effectue par exécution de lignes de commandes permettant de générer les fichiers HTML livrant le résultat des analyses.

Commande type :
     
perl awstats.pl -config=mysite -output -staticlinks > awstats.mysite.html


 La publication des statistiques peut être effectuée, soit manuellement, soit de façon automatique dans le cadre d’une tâche batch. La procédure de publication doit tenir compte de la nécessité de d’une publication à destination  d’un site Web Apache.
 

3.1.6     Consultation des analyses

Comme indiqué plus haut, la procédure de constitution des fichiers de publication doit tenir compte de la nécessité de publier ceux-ci sur un site Web. La publication s’effectuera dans un site Apache, défini en VirtualHost dans le fichier de configuration d’Apache (httpd.conf), selon l’exemple ci-dessous :

NameVirtualHost SRVR05
<VirtualHost SRVR05>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "C:/Program Files/AWStats/wwwroot/cgi-bin"
    ServerName SRVR05
            <Directory "C:/Program Files/AWStats/wwwroot/cgi-bin">
                Options Indexes FollowSymLinks
                AllowOverride None
                Order allow,deny
                Allow from all
            </Directory>
    ErrorLog logs/stat-error_log
    CustomLog logs/stat-access_log combined
</VirtualHost>


Les statistiques peuvent ainsi être consultées en tapant l’URL de publication. 

Exemple :

            http://SRVR05/awstats.weblogic.html















Pour aider à la lecture des résultats, AWSTATS, sur sa première page de rapport, répartit les résultats dans 5 catégories :

  • Quand?
  • Qui?
  •  Navigation,
  •  Referrers,
  •  Autres.
 

3.1.7.1     QUAND


Les statistiques classées dans cette catégorie permettent de connaître quand le domaine (site) a reçu du trafic, et quel volume de trafic.

Section "Monthly history"

Cette section fournit une vue rapide sur le nombre de visiteurs, le nombre de visites, le nombre de pages, le nombre d’extractions, et la bande passante utilisée pour chaque mois de l’année considérée. Ces informations peuvent permettre un suivi du comportement du site, en terme de bande passante en particulier.

Section "Days of Month"
Cette section fournit une vue journalière sur le nombre de visiteurs, le nombre de visites, le nombre de pages, le nombre d’extractions, et la bande passante utilisée pour chaque mois de l’année considérée. Ces informations peuvent permettre un suivi du comportement du site, en terme de bande passante, de baisse ou de pic trafic.

Section "Days of Week"
Cette section fournit une vue journalière sur le nombre de visiteurs, le nombre de visites, le nombre de pages, le nombre d’extractions, et la bande passante utilisée par jour de la semaine.


Section "Hours"

Cette section fournit une vue journalière sur le nombre de visiteurs, le nombre de visites, le nombre de pages, le nombre d’extractions, et la bande passante utilisée par tranche horaire.


Section "Hosts"

La rubrique Hosts présente les 25 hôtes les plus utilisées par les visiteurs du site, avec, pour chaque machine hôte, le nombre de pages, le nombre  d’extractions, et la bande passante utilisée
 

3.1.7.2     QUI


Les statistiques classées dans cette catégorie permettent de connaître les acteurs à l'origine du trafic et leur localisation.

Section "Countries"

Sous la rubrique Countries, on trouve les 25 premiers (en volume) pays d’appartenance des visiteurs, et pour chacun, le nombre de pages, d’extractions, et la bande passante utilisée.

Full List présente les statistiques relatives aux autres pays.


Section "Hosts"

La rubrique Hosts présente les 25 premiers hôtes utilisés par les visiteurs du site, avec, pour chaque machine hôte, le nombre de pages, d’extractions, et la bande passante utilisée

Full List présente la liste complète des machines hôtes des visiteurs.

Last Visit présente les machines hôtes en commençant par les connexions les plus récentes.

Unresolved IP Address liste toutes les addresses IP sans résolutions de nom.

Section " Authenticated Users "

Authenticated Users. Cette rubrique présente tous les utilisateurs ayant procédé  l’accès à des pages nécessitant une authentification.

Sous la rubrique Full List on trouve la liste des utilisateurs.

Last Visit présente les utilisateurs  en commençant par les connexions les plus récentes.


Section " Robot/Spiders "

Cette rubrique indique les robots et scrutateurs/analyseurs de sites accédant au site.
Full List fournit la liste des robots.
Last visit présente la liste des robots, classés de la plus récente visite à la plus ancienne.

3.1.7.3     NAVIGATION


Les statistiques classées dans cette catégorie permettent de comprendre la navigation effectuée par les internautes, les pages parcourues, les navigateurs utilisés.

Visit duration

Cette rubrique est supposée indiquer le temps qu’a duré la visite. Elle est calculée uniquement si un visiteur a lu plus d’une page. Quel que soit le temps effectif mis par un utilisateur sur une seule page, si cet utilisateur ne parcourt pas une autre page, Visit duration sera calculé comme étant égal à 0.

File Type

File Type indique les types de fichiers accède, et pour chacun, le nombre d’extractions, le % par rapport au nombre total d’extraction, et le % de bande passante. On trouve dans cette section les pages du type gif, jpg, html, htm, phtp, etc.


Viewed

Viewed indique les 25 pages les plus lues


Full Liste présente la liste complète de pages lues

ENTRY
Entry indique la première page vue par un visiteur lors d’une visite. Classement  selon les pages lues en premier lieu.

EXIT
Exit indique la page par laquelle les visiteurs sortent le plus. Classement selon les pages faisant l’objet d’un grand nombre de sorties.

Operating Systems

Cette section fournit des indications sur les OS des visiteurs, version par version.
 

3.1.7.4     REFERRERS


Les statistiques classées dans cette catégorie permettent de savoir par quel biais les internautes atteignent le site. Elles permettent également de découvrir quels mots clés ou expressions ont été à l'origine de l'entrée des internautes sur le site, en partance des outils de recherche.

Origin permet de savoir par quel biais  les visiteurs arrivent sur le site ;
Referring Search Engines indique les moteurs de recherche ayant conduits au site.
Referring Sites indique les sites référençant votre site.
Search montre quels mots ou phrases ont été utilise par les moteurs de recherché pour conduire à votre site.
Search Keyphrases présente les 10 phrases les plus utilisées pour accéder à votre site et combien de fois.
 
Search Keywords présente les 10 mots les plus utilisées pour accéder à votre site et combien de fois.
 

3.1.7.5     AUTRES


Les statistiques classées dans cette catégorie  sont celles non couvertes par les autres classes.

Remarque : En haut de la page, il est possible de  sélectionner la date pour laquelle sont générés les rapports. Par défaut, c'est le mois et l'année courants qui sont pris en compte. Mais on peut changer cette date pour consulter des résultats antérieurs

3.1.7.6     Rubriques diverses


Liste des autres rubriques apparaissant dans les rapports.
Unique Visitor:
 Un "unique visitor" est un hôte qui a effectué au moins un click sur une page du site Web analysé, dans la période affichée. Si le visiteur identifié par cet host a effectué plusieurs visites sur le site, il est comptabilisé une seule fois. Dans le cas particulier où AWSTATS est utilisé dans sa forme CGI, il est possible, en cliquant sur le bouton "year", d'obtenir un rapport concernant toute l'année.

Visits

 ‘Visits’ indique le nombre total de  visites effectuées par l’ensemble des visiteurs. Pour cette information, il faut d’abord penser en terme de session,  c’est à dire une adresse IP accédant à une page, puis demandant d’autres pages, avec  un délai de moins d’une heure entre les demandes des différentes pages. Les pages ainsi demandées font partie de la visite. C’est ainsi qu’il faut s’attendre à avoir plusieurs pages par visite, et plusieurs visites par visiteur. (On suppose aussi que certaines IP se connectent avec des delais de moins d’une heure entre les requêtes).

Pages
Pages indique le nombre de pages referencées. Les pages comptabilisées sont celles  qui ne sont pas référencées dans le paramètre «NotPageList » ( et le cas échéant, celles référencées dans le paramètre « OnlyFiles »).  Le terme « Pages » se rapporte aux fichiers HTML, CGI, mais pas aux fichiers images, js, css…

Hits

Hits indique le nombre de fichiers demandés au serveur , à l’exception des fichiers référencés dans le parameter « SkipFiles ».

Bandwidth

 Bandwith indique le nombre total d’octets ( pages, images, fichiers) téléchargées par la navigation.
Remarque 1 : Ce nombre inclut uniquement le type de trafic retenu, lequel est spécifié par le paramètre « LogType ».
Remarque 2 : Ce nombre d’octets ne comprend pas les informations d’entête des protocoles (HTTP, HTTPS, TCP, IP.

Entry Page

Entry Page désigne la première page visualisée par un visiteur durant sa visite.
Remarque : Le nombre de « Entry Page » peut être différent du nombre « Exit Page », lorsqu’on a des visites à cheval sur deux mois.

Exit Page

Exit Page désigne la dernière  page visualisée par un visiteur durant sa visite.
Remarque : Le nombre de « Entry Page » peut être différent du nombre « Exit Page », lorsqu’on a des visites à cheval sur deux mois.

Session Duration

Session Duration indique le temps qu’un visiteur passe sur le site à chaque visite.

Grabber
« Aspirateur de site »

Direct access / Bookmark
Représente le nombre de hits concernant les visites arrive directement sur le site, sans provenir d’un autre site. Cela signifie que le visiteur est arrivé sur le site :
-          En tapant directement l’URL du site ;
-          En cliquant sur l’URL du site par le biai des favoris ;
-          En cliquant sur l’URL du site à partir d ‘un document autre qu’une page Web ;
-          En cliquant sur l’URL du site à partir d’un email.

3.1.8     Procédures d’exploitation


Les procédures d’exploitation restent à définir et à  construire par le projet, soit  en utilisant les outils offerts par les OS, soit en mettant en œuvre des outils d’ordonnancement du marché .

4.    Conclusion

Les outils d’analyse du trafic d’un site WEB constituent  des composantes  incontournables du tableau de bord de suivi de l’utilisation des sites applicatifs. Leur mise en place est relativement simple, mais nécessite la mise en place, autant que possible, de procédures automatisées de mise à jour et de publication.

































 

Bibliographie

  • ASP.NET Data Web Controls(Scott Michell)
  • Building Custom PHP Extensions(Blake Schwendiman)
  • Développer avec CORBA en JAVA ET C++(David Acremann)
  • Java Native Interface(Sheng Liang)
  • Mastering WebLogic Server(Gregory Nyberg; Robert Patrick)
  • Oracle Database 10g RAC on Linux(Julian Dyke; Steve Shaw)
  • Test Process Improvement(Martin Pol)
Back to top