Awstats : Mise en place d'Awstats, interpréteur de logs web
Contents
1 Introduction
AWStats est un analyseur de log web (mais aussi FTP, Streaming et mail) offrant des vues graphiques statiques mais aussi dynamiques des statistiques d'accès à vos serveurs web.
Il permet d'afficher le nombre de visites, de visiteurs uniques, de pages, de hits, de transfert, par domaine/pays, hôte, heure, navigateur, OS, ... Il peut être lancé grâce à des scripts CGI ou en ligne de commande.
AWStats est un logiciel libre sous licence GPL.
L’installation d’Awstats est simple : ce logiciel interprète les logs d’Apache (toutes les commandes auxquelles le serveur à répondu) pour vous fournir des graphiques et tableaux compréhensibles sous forme de page internet.
2 Installation
Installez Awstats à l’aide de la commande
aptitude |
aptitude install awstats |
3 Configuration
3.1 Apache
Dans la configuration, je viens modifier ces lignes si je suis sous Apache:
/etc/awstats/awstats.conf |
LogFile="/var/log/apache2/access.log" SiteDomain="deimos.fr" |
L’affichage de la page web interprétant les logs nécessitera des images : vous avez deux solutions pour que l'adresse http://votre_adresse/awstats-icon renvoie aux images awstats : utiliser un alias Apache ou créer un dossier awstats-icon dans votre espace Apache et y mettre les images de awstats, pour cette dernière solution, tapez :
mkdir /var/www/awstats-icon cp -r /usr/share/awstats/icon/* /var/www/awstats-icon |
3.2 Lighttpd
Prenez cette configuration si vous êtes sous Lighttpd :
/etc/awstats/awstats.conf |
LogFile="/var/log/lighttpd/access.log" SiteDomain="deimos.fr" LogFormat=1 |
Nous allons avoir besoin de configurer également lighttpd :
Puis nous allons activer cette configuration :
ln |
cd /etc/lighttpd/conf-enabled && ln -s /etc/lighttpd/conf-available/50-awstats.conf . |
3.3 Crontab et Multi-domaines
Il existe par défaut, une ligne dans la crontab qui fait bien son taf. Mais si vous êtes en multi domaines et donc plusieurs fichiers de configuration dans /etc/awstats/, il va falloir ruser un peu. Je vous conseil donc de commenter la ligne courante dans ce fichier de cron :
Et soit de rajouter des lignes du type :
/etc/cron.d/awstats |
0,10,20,30,40,50 * * * * www-data /usr/lib/cgi-bin/awstats.pl -config=deimos.fr 0,10,20,30,40,50 * * * * www-data /usr/lib/cgi-bin/awstats.pl -config=mavro.fr |
Pour différencier vos domaines (ici deimos.fr et mavro.fr), ou bien de créer un petit script comme ceci et de le mettre à la place dans la cron :
Un petit coup de chmod pour les droits d'exécution et c'est bon.
3.4 Protection d'Awstats
Vous n'avez certainement pas envie que vos statistiques soient accessibles depuis n'importe ou et donc vous allez pouvoir vous protéger avec un htacess ou autre chose.
3.4.1 htaccess sous Apache
This documentation is on how to protect a directory by htaccess (login + password).
Insert thos lines and adapt to your configuration (/etc/apache2/sites-enabled/000-default) :
/etc/apache2/sites-enabled/000-default |
<Directory /var/www/myhtaccess> AllowOverride AuthConfig Order allow,deny allow from all </Directory> |
Then create a file .htaccess in /var/www/myhtaccess and put this :
Then create your access file with the user (/etc/apache2/htaccesspassword) :
htpasswd |
htpasswd -c /etc/apache2/htaccesspassword username |
For the next time, to add users, just get off "-c" like that :
htpasswd |
htpasswd /etc/apache2/htaccesspassword username |
Don't forget to restart apache :-)
For a good documentation, follow this : Documentation on Htaccess
3.4.2 htdigest sous Lighttpd
Les htaccess n'existent pas sous Lighttpd, mais il y a un équivalent de taille. Vérifiez avant de commencer que le module mod_auth est bien chargé.
Nous allons dans un premier temps générer (avec -c pour la première fois, comme un htaccess) un fichier contenant les identifiants pour être autoriser à consulter tel ou tel site :
htdigest |
htdigest -c /etc/lighttpd/.passwd 'Authorized users only' deimos |
Je créer ici l'utilisateur deimos. Le realm (ici 'Authorized users only') va nous permettre de différencier les différents fichiers de login/mot de passe que nous allons pouvoir avoir car nous ne pouvons en spécifier qu'un seul pour tout le serveur.
Ensuite on rajoute ces lignes dans la configuration global de lighttpd :
/etc/lighttpd/lighttpd.conf |
auth.backend = "htdigest" auth.backend.htdigest.userfile = "/etc/lighttpd/.passwd" auth.debug = 2 |
Puis je rajoute à l'endroit qui m'intéresse la protection :
/etc/lighttpd/lighttpd.conf |
auth.require = ( "/docs/" => ( "method" => "digest", "realm" => "Authorized users only", "require" => "valid-user" ) ) |
On redémarre lighty et c'est bon. L'exemple ci dessus montre comment ajouter la restriction à l'endroit qui nous intéresse, nous allons donc le faire en modifiant notre conf d'awstats :