AWStats
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
- 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
Lol 26 décembre 2010 à 07:28 (CST)