Plugin Rawlog Awstats

De EjnTricks

Ce plugin va permettre d'accéder et de requêter dans le fichier de log produit par Apache directement depuis Awstats. Cela est pratique lorsque l'on veut visualiser les informations, par exemple après avoir constaté un accès à une heure précise.

Hand-icon.png Votre avis

Current user rating: 92/100 (2 votes)

 You need to enable JavaScript to vote


System-Install-icon.png Installation

Il n'y a rien de compliqué pour installer ce plugin. Il est déjà prêt à être activé dans les fichiers de configuration des sites. Il s'active en supprimant le caractère de commentaire.

# PLUGIN: Rawlog
# REQUIRED MODULES: None
# PARAMETERS: None
# DESCRIPTION: This plugin adds a form in AWStats main page to allow users to see raw
# content of current log files. A filter is also available.
#
#LoadPlugin="rawlog"
LoadPlugin="rawlog"

Bug-icon.png Bug configuration

Pour une installation sur une machine Ubuntu, sans paramétrage particulier, la première utilisation présente un message d'erreur concernant l'accès à la log.

Error: Couldn't open server log file "/var/log/apache2/access.log" : Permission denied 

Setup ('/etc/awstats/awstats.www.jouvinio.net.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).



Le message est suffisamment clair, le process ne peut accéder au fichier. Maintenant, reste à comprendre pourquoi donc, puisque les logs sont bien consommées pour génération des rapports. Le contenu du répertoire de log ressemble à ceci:

drwxr-x---  2 root adm      4096 2012-03-09 01:51 ./
drwxr-xr-x 21 root root     4096 2012-03-10 07:58 ../
-rw-r-----  1 root adm   3187646 2012-03-10 11:31 access.log
-rw-r-----  1 root adm  50140004 2012-03-04 07:47 access.log.1
-rw-r-----  1 root adm     87916 2012-03-10 11:31 error.log
-rw-r-----  1 root adm     99040 2012-03-04 07:47 error.log.1
-rw-r-----  1 root adm         0 2012-02-28 07:38 other_vhosts_access.log
-rw-r--r--  1 root root    28045 2012-02-27 22:41 other_vhosts_access.log.1

Donc seul root et les utilisateurs du groupe adm peuvent avoir accès. Le process Apache étant lancé avec le compte www-data, il est donc pas étonnant que l'accès au fichier ne puisse aboutir, ce qui est confirmée par:

#sudo su - www-data -c "cat /var/log/apache2/access.log"
cat: /var/log/apache2/access.log: Permission non accordée

La solution la plus simple serait de rajouter le compte www-data dans le groupe adm. Cependant, cela pourrait être un peu radical et dangereux d'étendre les permissions de ce compte, qui est alors exposé via le site. Nous préférerons donc modifier les sécurités sur les fichiers pour accorder à www-data le droit de lecture.

#sudo chown root:www-data /var/log/apache2/*

Cependant cela n'est pas suffisant, et le message d'erreur persiste. Cela provient de la sécurité sur le répertoire /var/log/apache2, qui était aussi restrictive que pour les fichiers. Il ne fallait pas oublier de changer également celle-ci.

#sudo chown root:www-data /var/log/apache2

Bien entendu, cela n'est pas acceptable de devoir modifier les sécurités des fichiers à chaque fois. Il est nécessaire de modifier la configuration de Logrotate pour Apache, décrite dans l'article Logs Apache.

Viewer icon.png Rendu

En entête de page, un nouveau bandeau est présenté donnant accès à des fonctionnalités de recherche dans la log.


La zone de filtre va permettre de rechercher une chaîne de caractères dans la log. Par exemple, pour filtrer les accès du 10 Mars 2012, à 11h, il suffit de saisir 10/Mar/2012:11:, à condition que les logs Apache soient en mode combined, dans la zone Filtre.