Compilation de logs Apache

  • Jun 26, 2011
  • debian, linux, logs, awstats, système
  • JLepage

Situation
Je viens de tomber sur un petit soucis de logs Apache avec AwStats.
Pour je ne sais quelle raison (si, je le sais, mais ce n’est pas le sujet), AwStats ne prenait pas en compte mes logs Apache. Je n’ai pas eu le temps de traiter le problème immédiatement, j’ai donc pas mal de rotation de logs à réinjecter dans AwStats.
Seulement, AwStats est assez "capricieux", il ne veut manger les logs Apache que trier par date croissantes... Il faut donc lui donner les logs un par un, depuis le premier fichier jusqu’au dernier. Fastidieux...

Théorie
Avec AwStats, est livré un "petit" script Perl qui va grandement nous faciliter la tâche : "logresolvemerge.pl"
Ce fichier prend les logs en arguments, et les fusionne en sortie standard (stdout).

Pratique
- On va rendre executable le fichier (je suppose que vous êtes sur une debian, avec le package AwStats installé).
 

chmod +x /usr/share/doc/awstats/examples/logresolvemerge.pl
ln -s /usr/share/doc/awstats/examples/logresolvemerge.pl /usr/local/bin


- On dézippe les logs
 

cd /var/log/apache2/ 
gunzip *log.[0-9]*.gz 


- On merge les logs ensemble dans un nouveau fichier

 

logresolvemerge.pl -dnslookup jlepage.info-access.log.[0-9]* > jlepage.info-merged.log


- Je conseille de rézipper les logs de rotation inutilisés

 

gzip jlepage.info-*.log.[2-9]*
gzip jlepage.info-*.log.1[0-9]* 


- Il ne reste plus qu’à redonner le nouveau fichier de log à manger à AwStats.

Et voilà :)