Awstats Installation
Cet article présente l'installation de Awstats sur une machine Ubuntu pour générer les statistiques d'utilisation d'un serveur Apache.
Sommaire
Votre avis
Current user rating: 44/100 (2 votes)
|
|
Installation initiale
Installation paquet
L'application est disponible sous forme de paquet pour Ubuntu, et donc installable avec l'outil apt-get
#sudo apt-get install awstats Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les paquets supplémentaires suivants seront installés : libnet-xwhois-perl Paquets suggérés : libnet-dns-perl libnet-ip-perl libgeo-ipfree-perl Les NOUVEAUX paquets suivants seront installés : awstats libnet-xwhois-perl 0 mis à jour, 2 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 1 025 ko dans les archives. Après cette opération, 5 853 ko d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ? O Réception de : 1 http://fr.archive.ubuntu.com/ubuntu/ oneiric/main awstats all 7.0~dfsg-2 [1 002 kB] Réception de : 2 http://fr.archive.ubuntu.com/ubuntu/ oneiric/main libnet-xwhois-perl all 0.90-3 [23,0 kB] 1 025 ko réceptionnés en 1s (676 ko/s) Sélection du paquet awstats précédemment désélectionné. (Lecture de la base de données... 130818 fichiers et répertoires déjà installés.) Dépaquetage de awstats (à partir de .../awstats_7.0~dfsg-2_all.deb) ... Sélection du paquet libnet-xwhois-perl précédemment désélectionné. Dépaquetage de libnet-xwhois-perl (à partir de .../libnet-xwhois-perl_0.90-3_all.deb) ... Traitement des actions différées (« triggers ») pour « doc-base »... Processing 1 added doc-base file... Enregistrement des documents avec scrollkeeper... Traitement des actions différées (« triggers ») pour « man-db »... Paramétrage de awstats (7.0~dfsg-2) ... Paramétrage de libnet-xwhois-perl (0.90-3) ...
Quelques paquets sont nécessaires pour l'utilisation de awstats:
- libmldbm-perl
- libnet-xwhois-perl
- libgeo-ipfree-perl
Mise à part libnet-xwhois-perl
, ces paquets étaient déjà disponibles sur la machine.
Installation dépendances
Lors de l'installation, les paquets suivants sont suggérés:
- libnet-dns-perl
- libnet-ip-perl
- libgeo-ipfree-perl
Les paquets seront installés à l'aide de la commande apt-get
.
Paquet libnet-dns-perl
Lors de l'installation de celui-ci, d'autre paquet sont suggérés et seront installé récursivement.
#sudo apt-get install libnet-dns-perl Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les paquets supplémentaires suivants seront installés : libdigest-hmac-perl libnet-ip-perl Paquets suggérés : libio-socket-inet6-perl Les NOUVEAUX paquets suivants seront installés : libdigest-hmac-perl libnet-dns-perl libnet-ip-perl 0 mis à jour, 3 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 316 ko dans les archives. Après cette opération, 1 159 ko d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ? O Réception de : 1 http://fr.archive.ubuntu.com/ubuntu/ oneiric/main libdigest-hmac-perl all 1.03+dfsg-1 [12,1 kB] Réception de : 2 http://fr.archive.ubuntu.com/ubuntu/ oneiric/main libnet-ip-perl all 1.25-3 [28,1 kB] Réception de : 3 http://fr.archive.ubuntu.com/ubuntu/ oneiric/main libnet-dns-perl amd64 0.66-2ubuntu2 [276 kB] 316 ko réceptionnés en 0s (620 ko/s) Sélection du paquet libdigest-hmac-perl précédemment désélectionné. (Lecture de la base de données... 131621 fichiers et répertoires déjà installés.) Dépaquetage de libdigest-hmac-perl (à partir de .../libdigest-hmac-perl_1.03+dfsg-1_all.deb) ... Sélection du paquet libnet-ip-perl précédemment désélectionné. Dépaquetage de libnet-ip-perl (à partir de .../libnet-ip-perl_1.25-3_all.deb) ... Sélection du paquet libnet-dns-perl précédemment désélectionné. Dépaquetage de libnet-dns-perl (à partir de .../libnet-dns-perl_0.66-2ubuntu2_amd64.deb) ... Traitement des actions différées (« triggers ») pour « man-db »... Paramétrage de libdigest-hmac-perl (1.03+dfsg-1) ... Paramétrage de libnet-ip-perl (1.25-3) ... Paramétrage de libnet-dns-perl (0.66-2ubuntu2) ...
Le paquet libio-socket-inet6-perl
est suggéré et donc installé.
#sudo apt-get install libio-socket-inet6-perl Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les paquets supplémentaires suivants seront installés : libsocket6-perl Les NOUVEAUX paquets suivants seront installés : libio-socket-inet6-perl libsocket6-perl 0 mis à jour, 2 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 38,0 ko dans les archives. Après cette opération, 213 ko d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ? O Réception de : 1 http://fr.archive.ubuntu.com/ubuntu/ oneiric/main libsocket6-perl amd64 0.23-1build1 [24,3 kB] Réception de : 2 http://fr.archive.ubuntu.com/ubuntu/ oneiric/main libio-socket-inet6-perl all 2.65-1.1 [13,7 kB] 38,0 ko réceptionnés en 0s (204 ko/s) Sélection du paquet libsocket6-perl précédemment désélectionné. (Lecture de la base de données... 131781 fichiers et répertoires déjà installés.) Dépaquetage de libsocket6-perl (à partir de .../libsocket6-perl_0.23-1build1_amd64.deb) ... Sélection du paquet libio-socket-inet6-perl précédemment désélectionné. Dépaquetage de libio-socket-inet6-perl (à partir de .../libio-socket-inet6-perl_2.65-1.1_all.deb) ... Traitement des actions différées (« triggers ») pour « man-db »... Paramétrage de libsocket6-perl (0.23-1build1) ... Paramétrage de libio-socket-inet6-perl (2.65-1.1) ...
Le paquet libsocket6-perl
est suggéré et donc installé. Cependant sur la machine, il était déjà disponible.
#sudo apt-get install libsocket6-perl Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait libsocket6-perl est déjà la plus récente version disponible. libsocket6-perl passé en « installé manuellement ». 0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Paquet libnet-ip-perl
Du fait de précédente installation, ce paquet était déjà disponible sur la machine.
#sudo apt-get install libnet-ip-perl Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait libnet-ip-perl est déjà la plus récente version disponible. libnet-ip-perl passé en « installé manuellement ». 0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Paquet libgeo-ipfree-perl
# sudo apt-get install libgeo-ipfree-perl Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les NOUVEAUX paquets suivants seront installés : libgeo-ipfree-perl 0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 468 ko dans les archives. Après cette opération, 881 ko d'espace disque supplémentaires seront utilisés. Réception de : 1 http://fr.archive.ubuntu.com/ubuntu/ oneiric/universe libgeo-ipfree-perl all 1.111650-1 [468 kB] 468 ko réceptionnés en 0s (685 ko/s) Sélection du paquet libgeo-ipfree-perl précédemment désélectionné. (Lecture de la base de données... 131799 fichiers et répertoires déjà installés.) Dépaquetage de libgeo-ipfree-perl (à partir de .../libgeo-ipfree-perl_1.111650-1_all.deb) ... Traitement des actions différées (« triggers ») pour « man-db »... Paramétrage de libgeo-ipfree-perl (1.111650-1) ...
Paramétrage LogRotate de Apache
Une rotation des logs est activée pour le serveur Apache par défaut. Or si elle intervient avant le lancement de l'analyse des traces, des informations peuvent ne pas êter prise en compte. Il est donc important de modifier la configuration de Logrotate. Cette configuration se trouve dans le fichier /etc/logrotate.d/apache2
. L'objectif est de mettre en place l'analyse avant rotation.
Pour la version 11.X de Ubuntu, il faut modifier le fichier.
/var/log/apache2/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
prerotate
su - root -c "/usr/lib/cgi-bin/awstats.pl -config=www.jouvinio.net -update > /dev/null"
endscript
postrotate
/etc/init.d/apache2 reload > /dev/null
endscript
}
Pour la version 12.04 de Ubuntu, la configuration de la rotation est modifiée afin d'externaliser ce traitement par l'exécution des scripts dans le répertoire /etc/logrotate.d/httpd-prerotate
, par la commande run-part
, voir configuration logrotate pour apache2. Ces scripts sont exécutés avec la commande run-parts
.
Dans un permier temps, le répertoire /etc/logrotate.d/httpd-prerotate
est créé, si il n'existe pas déjà.
#sudo mkdir /etc/logrotate.d/httpd-prerotate
Puis un script update-awstats
y est créé avec la commande /usr/lib/cgi-bin/awstats.pl -config=www.jouvinio.net -update > /dev/null
. Ce script doit être complété en fonction des domaines audités.
#sudo touch /etc/logrotate.d/httpd-prerotate/update-awstats #sudo chmod 755 /etc/logrotate.d/httpd-prerotate/update-awstats
Le contenu du script permet de lancer les commande de mises à jour pour les différents sites:
#!/bin/sh
/usr/lib/cgi-bin/awstats.pl -config=www.jouvinio.net -update > /dev/null
Paramétrages
Configuration audit Apache
Le paragraphe suivant démontre la configuration à mettre en place pour générer les rapport sur le site www.jouvinio.net
. La première étape consiste en la copie du fichier de configuration générale. Le fichier doit porter le nom awstats.www.jouvinio.net.conf
dans le répertoire /etc/awstats
#sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.www.jouvinio.net.conf
Le contenu du répertoire /etc/awstats
est donc le suivant:
#ll /etc/awstats/ total 148 drwxr-xr-x 2 root root 4096 2012-03-01 20:41 ./ drwxr-xr-x 142 root root 12288 2012-03-01 20:11 ../ -rw-r--r-- 1 root root 61725 2011-04-30 16:30 awstats.conf -rw-r--r-- 1 root root 240 2011-04-06 01:32 awstats.conf.local -rw-r--r-- 1 root root 61725 2012-03-01 20:41 awstats.www.jouvinio.net.conf
La documentation sur le site de Ubuntu suggère les paramètres suivants dans le fichier de configuration:
Paramètre | Valeur | Utilisation |
---|---|---|
LogType | W | W est utilisé pour les log d'un site Web |
LogFormat | 1 | Format des logs Apache avec le paramètre combined.
A contrôler avec la configuration des logs dans la déclaration du serveur, paramètre CustomLog; Par exemple dans le fichier /ec/apache2/sites-enabled/000-default: CustomLog ${APACHE_LOG_DIR}/access.log combined |
LogFile | /var/log/apache2/access.log | Emplacement de la log d'accès du serveur Apache.
Comme pour LogFormat, vérifier la configuration dans la déclaration du serveur. |
SiteDomain | www.jouvinio.net | URL d'accès au site sur lequel les statistiques sont mises en place. |
Le fichier devient donc le suivant:
# AWSTATS CONFIGURE FILE 7.0
#-----------------------------------------------------------------------------
# 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.350 $ - $Author: eldy $ - $Date: 2010/09/29 19:16:21 $
#-----------------------------------------------------------------------------
# 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 are several log files from load balancing servers :
# Example: "/pathtotools/logresolvemerge.pl *.log |"
#
LogFile="/var/log/apache2/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=1
#LogFormat=4
# 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 analyzing mail log, enter here the domain name of mail server.
# Example: "myintranetserver"
# Example: "www.domain.com"
# Example: "ftp.domain.com"
# Example: "domain.com"
#
SiteDomain="www.jouvinio.net"
#SiteDomain=""
.
.
.
Publication sous Apache
Plugins
Bug d'installation
Icônes manquantes
Suite à l'installation et l'utilisation, il a été constaté dans les traces Apache des messages d'erreur sur des icônes.
[Fri Mar 02 01:29:36 2012] [error] [client 82.230.154.123] File does not exist: /usr/share/awstats/icon/browser/svn.png, referer: http://www.jouvinio.net/stats/awstats.pl?framename=mainright&output=browserdetail [Fri Mar 02 01:07:01 2012] [error] [client 82.230.154.123] File does not exist: /usr/share/awstats/icon/mime/swf.png, referer: http://www.jouvinio.net/stats/awstats.pl?month=02&year=2012&config=www.jouvinio.net&framename=mainright
La première erreur concerne une icône représentant l'outil SVN. Cependant, cette icône s'affiche sur certains rapports, avec avec l'URL subversion.png
. Afin de ne plus observer cette erreur, ce fichier est copié depuis l'emplacement /usr/share/awstats/icon/browser/subversion.png
vers /usr/share/awstats/icon/browser/svn.png
.
#sudo cp /usr/share/awstats/icon/browser/subversion.png /usr/share/awstats/icon/browser/svn.png
La seconde erreur concerne une icône pour le format swf
, devant se situer à l'emplacement /usr/share/awstats/icon/mime/swf.png
. Aucune correspondance n'a été trouvé pour ce formet, et une icône a été recherche sur IconArchive. Ce fichier est chargé à l'emplacement souhaité en reproduisant les permissions des autres images.
Update
Version 7.1.1 → 7.2
L'installation de Awstats a été réalisée à l'origine à l'aide de la commande apt-get
sur la machine Ubuntu. Il aurait été possible d'essayer de mettre à jour manuellement l'application. Cependant, le package est basé sur la dernière version à jour, et contient plusieurs patch.
Lors de la mise à jour, il a été décidé de faire confiance au contenu du paquet. Qui plus est, les modifications mises en places, pour les plugins par exemple, n'ont pas été modifiés. Ce qui a facilité la mise à jour.
Un point d'attention doit être porté sur le contenu du répertoire /etc/cron.d
:
#ll total 36 drwxr-xr-x 2 root root 4096 Dec 31 19:16 ./ drwxr-xr-x 153 root root 12288 Dec 31 18:55 ../ -rw-r--r-- 1 root root 102 Aug 24 2010 .placeholder -rw-r--r-- 1 root root 188 Dec 20 2012 anacron -rw-r--r-- 1 root root 240 Dec 31 19:15 awstats -rw-r--r-- 1 root root 510 Dec 12 20:01 php5
Voir aussi
Documentation Ubuntu: http://doc.ubuntu-fr.org/awstats