Thread Serverstatistik: Auslesen von Serverlogs (12 answers)
Opened by root at 2003-10-20 12:29

jan
 2003-10-20 13:12
#30474 #30474
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
mh, mal sehen, was ich da noch zusammen bekomme ....
Quote
217.230.71.217 - - [29/Sep/2003:09:51:13 +0200] "GET / HTTP/1.1" 200 26657 www.domain.com "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "-"

also, als erstes mal die ip vom client, die nächsten beiden felder, mhja, kA mehr, was sie verwenden ... dann, klar, das datum, anschließend der http-request, der http-statuscode (200, 404 etc pp), die anzahl der gesendeten bytes, der vom client verlangte HTTP_HOST, der referer, falls vorhanden, sonst "-", der useragent und abschließend, falls vorhanden, die ip des wirklichen users, wenn dieser über einen proxy gekommen ist, der das mitteilte.

die logfiles an sich können recht unbegrenzt lang werden, je nachdem, wieviel aktivität bei dir ist. zu jedem wochenabschluß gibt es eine neue, die die letzte woche beinhaltet
hier ein regexp, vielleicht genügt der dir:
Code: (dl )
1
2
3
$logline = '217.230.71.217 - - [29/Sep/2003:09:51:13 +0200] "GET / HTTP/1.1" 200 26657 www.domain.com "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "-"';
my ($client_ip, $unknown1, $unknown2, $time, $request, $status, $bytes, $host, $referrer, $useragent, $realclient_ip) = $logline =~ m/^([^ ]+) ([^ ]+) ([^ ]+) \[([^\[]+)\] "([^"]+)" (\d+) (\d+) ([^ ]+) "([^"]+)" "([^"]+)" "([^"]+)"$/;
print "$client_ip\n$unknown1\n$unknown2\n$time\n$request\n$status\n$bytes\n$host\n$referrer\n$useragent\n$realclient_ip";


sollte passen, bitte aber noch um verbesserung.

View full thread Serverstatistik: Auslesen von Serverlogs