AWStats

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

AWStats est un outil puissant et complet d'analyse de log. Il est très pratique, et très utilisé, pour surveiller (entre autre) des serveurs Web

J'ai choisi dans ce tuto d'installer AWStats sur une squeeze.

La configuration ne diffère pas beaucoup d'une Lenny.

Surveillance d'un domaine

Installation

# aptitude install awstats

ou

# apt-get install awstats


Configuration

# cp /etc/awstats/awstats.conf /etc/awstats/awstats.zehome.conf
# nano /etc/awstats/awstats.zehome.conf
LogFile="/var/log/apache2/access.log"
SiteDomain="zehome.org"

Mise à jour et préparation de la base

Lancer le perl suivant avec votre nom de domaine à la place de zehome

# /usr/lib/cgi-bin/awstats.pl -config=zehome -update
Create/Update database for config "/etc/awstats/awstats.zehome.conf" by AWStats version 6.95 (build 1.943)
From data in log file "/var/log/apache2/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)...
Reverse DNS lookup for ::1 not available without ipv6 plugin enabled.
Jumped lines in file: 0
Parsed lines in file: 587
 Found 0 dropped records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 587 new qualified records.

Configuration de apache2

# nano /etc/apache2/apache2.conf
Alias /awstats-icon/ /usr/share/awstats/icon/
<Directory /usr/share/awstats/icon>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# apache2ctl restart

Modification de la tâche cron

# nano /etc/cron.d/awstats
0,10,20,30,40,50 * * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.conf -a -r /var/log/apache/access.log ]  && /usr/lib/cgi-bin/awstats.pl -config=awstats -update >/dev/null
0,10,20,30,40,50 * * * * www-data perl /usr/lib/cgi-bin/awstats.pl -config=zehome -update > /dev/null

Utilisation

Accédez à votre page en faisant:

http://zehome.org/cgi-bin/awstats.pl?config=zehome

Surveillance de plusieurs "virtualhosts" sur le même serveur apache2

Nous supposerons que vous avez deux sites virtuels (vous pouvez en avoir évidemment autant que vous le voulez...) :

# apache2ctl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server squeeze.zehome.org (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost squeeze.zehome.org (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost piwik.zehome.org (/etc/apache2/sites-enabled/piwik:1)
         port 80 namevhost wiki.zehome.org (/etc/apache2/sites-enabled/wiki:1)
Syntax OK

Dans chaque virtualhost ajouter un fichier log spécifique

<virtualhost *:80>
ServerName http://piwik.zehome.org
ErrorLog /var/log/apache2/piwik.zehome.org.log
CustomLog /var/log/apache2/piwik.zehome.org.log combined
.....
</virtualhost>

<virtualhost *:80>
ServerName http://wiki.zehome.org
ErrorLog /var/log/apache2/wiki.zehome.org.log
CustomLog /var/log/apache2/wiki.zehome.org.log combined
.....
</virtualhost>
# apache2ctl restart

Vous remarquerez que apache aura créé lui-même les fichiers log nécessaires...

Créons une configuration de awstat par virtual host

# nano /etc/awstats/awstats.piwik.zehome.org.conf
LogFile="/var/log/apache2/piwik.zehome.org.log"
LogFormat = 1
LogType=W
DNSLookup=1
SiteDomain="piwik.zehome.org"
HostAliases="127.0.0.1 192.168.1.254 http://piwik.zehome.org piwik.zehome.org"
DirIcons="/awstats-icon"
AllowFullYearView=3
# nano /etc/awstats/awstats.wiki.zehome.org.conf
LogFile="/var/log/apache2/wiki.zehome.org.log"
LogFormat = 1
LogType=W
DNSLookup=1
SiteDomain="wiki.zehome.org"
HostAliases="127.0.0.1 192.168.1.254 http://wiki.zehome.org wiki.zehome.org"
DirIcons="/awstats-icon"
AllowFullYearView=3

Dans HostAliases on peut mettre tous les noms et adresses IP par lesquels ce site est joignable (donc qui peuvent identifier ce site dans les logs apache).

intégrer nos fichiers de conf dans le cron de awstats

Modifier le fichier /etc/cron.d/awstats

# nano /etc/cron.d/awstats
0,10,20,30,40,50 * * * * root /bin/sh /root/awstats.sh

Créer le fichier /root/awstats.sh

# nano /root/awstats.sh
perl /usr/lib/cgi-bin/awstats.pl -config=piwik.zehome.org -update > /dev/null
perl /usr/lib/cgi-bin/awstats.pl -config=wiki.zehome.org -update > /dev/null

Et le rendre exécutable :

# chmod +x awstats.sh

Pour ne rater aucune information, bien penser à lancer aussi le script /root/awstats.sh lors des logrotate de apache en inserant dans le fichier /etc/logrotate.d/apache2 les lignes

  1. nano /etc/logrotate.d/apache2
...
prerotate
/bin/sh /root/awstats.sh
endscript
...

vous remarquerez que l'on utilise plus du tout le fichiers /etc/awstats/awstats.conf par défaut.

Accéder aux stats

pour chaque stat, utiliser une URL differente relative au fichier de conf de awstats

http://squeeze.zehome.org/cgi-bin/awstats.pl?config=wiki
http://squeeze.zehome.org/cgi-bin/awstats.pl?config=piwik

Si les statistiques n'ont pas été initialisées, vous aurez droit à ce message en haut de page :

Last Update: 	Never updated (See 'Build/Update' on awstats_setup.html page)

Si les statistiques on bien été mise à jour, vous aurez ceci :

Last Update: 	26 Dec 2010 - 16:19

Page sur le forum

Site Web officiel de AWStats

Lol 26 décembre 2010 à 07:28 (CST)