Page 1 of 1

AWStats für jeden Benutzer auswerten

Posted: 2006-07-04 03:34
by dennis3484
Hallo,

ich habe da ein kleines Problem mit AWStats. Es existieren mehrere Benutzer auf dem Server, die auch alle ihr eigenen public_html Verzeichnis unter /home/*/ haben. Nun möchte ich mit AWStats für jeden dieser Benutzer einzeln Statistiken erzeugen.

Mein Apache Logfile liegt unter /var/log/apache und nennt sich access.log.

Code: Select all

72.30.107.7 - - [02/Jul/2006:03:40:59 +0200] "GET /robots.txt HTTP/1.0" 404 284 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/yse$
72.30.226.205 - - [02/Jul/2006:03:41:00 +0200] "GET /~bla/cpg/displayimage.php?album=24&pos=7 HTTP/1.0" 200 11475 "-" "Mozilla/5.0 (compatible; Yahoo!$
84.138.234.175 - - [02/Jul/2006:03:49:26 +0200] "GET /~blubb/ HTTP/1.1" 304 - "http://www.pimp.be.tt/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1$
84.138.234.175 - - [02/Jul/2006:03:49:26 +0200] "GET /~blubb/style.css HTTP/1.1" 304 - "http://84.244.0.165/~blubb/" "Mozilla/4.0 (compatible; MSIE 6$
84.138.234.175 - - [02/Jul/2006:03:49:27 +0200] "GET /~blubb/menu.html HTTP/1.1" 304 - "http://84.244.0.165/~blubb/" "Mozilla/4.0 (compatible; MSIE 6$
84.138.234.175 - - [02/Jul/2006:03:49:27 +0200] "GET /~blubb/home.html HTTP/1.1" 304 - "http://84.244.0.165/~blubb/" "Mozilla/4.0 (compatible; MSIE 6$
Ich hatte zuerst die Idee, dass man in der httpd.conf die Logs filtert, sodass alle Zugriffe auf /~bla/* unter access1.log gespeichert werden. Genau das selbe mit /~blubb/* unter access2.log. Ich dachte mir, dass man es irgendwie mit dem Befehl "SetEnvIf" machen könnte, da man damit ja auch Robots ausschließen kann, jedoch fand ich keinen Befehl, mit dem es funktioniert hätte.


Nun kam ich auf die VHosts anzulegen. Das funktionierte auch recht gut, jedoch stehen im Logfile von "bla" auch alle Zugriffe von "blubb". Das Logfile von "blubb" zeichnet jedoch alle Zugriffe richtig auf.


Hat jemand eine Idee, wie ich es am besten löse?

Vielen Dank,
Dennis

Re: AWStats für jeden Benutzer auswerten

Posted: 2006-07-04 07:54
by hornox

Code: Select all

SetEnvIf Request_URI "^/~blubb" log_blubb
CustomLog logs/access_blubb_log common env=log_blubb
SetEnvIf Request_URI "^/~bla" log_bla
CustomLog logs/access_bla_log common env=log_bla
Bei vielen Usern könnte es besser sein wenn du das mit unterschiedlichen Konfigurationsdateien für AWStats lößt. http://awstats.sourceforge.net/docs/aws ... #SkipFiles

Re: AWStats für jeden Benutzer auswerten

Posted: 2006-07-04 10:21
by antondollmaier
Änder dein logformat ab ... am Ende der Zeile ein "%v" ran ... das is der vHost, der aufgerufen wurde ...

für jeden user ne config? gerne:

Code: Select all

SiteDomain "domain1.de"
SiteAliases = REGEXP[ .*domain1.de ], REGEXP[ .*domain2.de ]
(syntax siehe manual, habs grad ned 100%ig im kopf, sorry)

für jede domain? auch kein problem:

Code: Select all

SiteDomain "domain1.de"
SiteAliases = REGEXP[ .*domain1.de ]
awstats wertet dann nur die zeilen aus dem log aus, die "matchen" ... und das tun eben nur die, die am ende den richtigen vhost stehen haben :)

Re: AWStats für jeden Benutzer auswerten

Posted: 2006-07-04 12:41
by rootsvr
Ne andere Möglichkeit ist es einfach für die user nen Vhost anzulegen und dem dann seperate Logfiles zuzuweisen.
So sind die Logfiles schön getrennt und (je nach rechten auf die Logfiles) können die User nicht gucken welche get Requests auf anderer Leuts seiten angekommen sind.

IMHO die beste Methode und dann einfach seperate awstats configs für die einzelnen vhosts