Awstats – passer de Apache à Nginx

Si vous pensez à faire le changement le jour où vous passez d’un serveur à l’autre c’est très simple.
Il vous suffira d’éditer le fichier /etc/awstats/awstats-nom-de-domaine.conf et d’éditer la ligne

LogFile=””

Et d’y mettre le path du nouveau fichier de log.

Je parlerai dans un autre poste de la partie affichage grâce à nginx, ici on parse déjà les bons fichiers de log, c’est déjà pas mal.

Heu, et si j’avais oublié?

C’est là que ça se corse. Nginx fait automatiquement du renommage puis de la compression de ses anciens logs. Et donc quand awstats parse le log, il ne parse que les requêtes du jour. Il va donc falloir tout décompresser, agréger, demander à awstats de parser, puis nettoyer nos déchets.

Décompression

Allez dans le /var/log/nginx/ repérez le nom de domaine/log qui vous intéresse faites en sorte de lister que les ACCESS log gzippés.

ls lgnap.helpcomputer.org-access.log*.gz #pour moi par exemple :)

faites un gunzip sur ces fichiers

gunzip lgnap.helpcomputer.org-access.log*.gz

Rangement

ensuite il nous faut les ranger dans le bon ordre

ls lgnap.helpcomputer.org-access.log* | sort -Vr

  • sort : permet de trier
  • -V : trie par version (et comme chaque fichier est suffixé par un numéro de “version” c’est niquel)
  • -r : inverse (pour avoir la plus vieille version au début)

Agrégation

Il faudra encore afficher le contenu de chaque fichier du ls et tout globaliser dans un seul fichier. J’ai fait un mini script pour ça, le voici :

#/bin/sh

LIST=`ls lgnap.helpcomputer.org-access.log* | sort -Vr`
for i in $LIST
do
        cat $i >> lgnap.agregated.log;
done

Parser ce fichier

Cfr la première étape vous allez indiquer le path du fichier dans lequel on a tout agrégé. Forcer le parsing du fichier avec la commande suivante :

/usr/lib/cgi-bin/awstats.pl -config=lgnap.helpcomputer.org

  • awstats.pl le script
  • -config= “nom-de-domaine” (extrait de /etc/awstats/awstats-nom-de-domaine.conf)

Un petit message vous dira ce qui a été parsé avec succès, vous n’avez plus qu’a faire comme si tout ceci n’avait jamais eu lieu et mettre le fichier de log de nginx original “/var/log/nginx/lgnap.helpcomputer.org-access.log” dans le fichier de config.

Nettoyage

Il faudra ensuite (pour bien faire) regzipper les fichiers que vous avez gunzippé

gzip …

Et supprimer le fichier où on avait tout agrégé aussi lgnap.agregated.log

Enjoy ;)

Sources

 

Posted in Hosting by El Gnap at January 14th, 2012.
Tags: , , , , ,

Comments are closed.