2010-11-09 19 views
3

J'ai un site avec plusieurs sous-domaines, tous les sous-domaines sont enregistrés dans le même fichier access_log. Depuis le fichier peut être si énorme, j'ai un script qui greps chaque sous-domaine dans son propre fichier.Comment puis-je obtenir awstats pour lire ce format de journal?

J'ai un format de fichier journal personnalisé dans Apache comme ceci:

"\"%{Host}i\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" 

Une ligne de mon fichier journal ressemble à ceci:

"brand.mysite.com" 176.32.1.18 - - [24/Oct/2010:11:24:45 -0400] "GET /Product/lookup HTTP/1.1" 200 5585 "http://www.customerhomepage.com/brand_name.htm" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322)" 

10 articles dans le format du journal, 10 articles en le journal. Vérifier.

Je suis en train d'analyser ces derniers avec awstats avec la LogFormat suivante dans mes awstats fichier config:

LogFormat = "\" % host_r \ » % hôte% logname% logname% time1% methodurl% Code% bytesd % refererquot% uaquot "

La seule sortie d'awstats provient de la section" Historique mensuel ". Tout le reste est vide ou nul.

Mon script de génération ressemble à ceci:

rm stats/*.txt 
cat access_log | grep brand > brand_access_log 
perl tools/awstats_updateall.pl -configdir=wwwroot/cgi-bin -awstatsprog=wwwroot/cgi-bin/awstats.pl now 
perl tools/awstats_buildstaticpages.pl -dir=stats -output=pagetype -config=brand -awstatsprog=wwwroot/cgi-bin/awstats.pl 

Qu'est-ce que je fais mal?

Répondre

3

Je ne savais pas que je pouvais simplement couper et coller la directive Apache LogFormat (avec un signe =) et cela fonctionnerait, je pensais que je devais utiliser awstats. Awstats utilisera la directive LogFormat de votre fichier httpd.conf et la remplacera par les identifiants awstats.

Je coupé et collé ceci dans mon fichier awstats.whatever.conf directement de mon Apache2 httpd.conf (puis ajouté le signe = après LogFormat):

LogFormat="\"%{Host}i\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" 
+0

mise à jour de votre réponse avec la coupe bash? – ajreal