26. april 2001 - 12:06 Der er 36 kommentarer og
1 løsning

Logfil statistik til apache\'s access.log på win2k server

Jeg har nu ledt de fleste nyhedsgrupper i gennem for at finde noget der kan analysere logfiler.
Jeg vil gerne have noget output i php på nogenlunde samme måde som webalizer, dog ikke så advanceret.
Men gerne med hvilke Ipadresser der har set hvormange sider, og hvilke, tidspunkter, og andet.

Mange tak :-> Fisken de kaldte frisk
26. april 2001 - 12:08 #1
Jeg kunne ikke bruge webalizer på win2k sidste gang jeg prøvede.
Avatar billede Lasse Novice
26. april 2001 - 12:26 #2
hvorfor ikke lave et lille script selv, som kan se logfilen igennem. Brug ActivePerl( www.activeperl.com ) til at lave scriptet... Det er hurtigt, nemt, og du kan designe lige til dine egne behov
26. april 2001 - 12:28 #3
Jeg kan desværre ikke perl, så det ser ud til at være et større projekt, hvis jeg skal til at lære det først.
Avatar billede Lasse Novice
26. april 2001 - 12:49 #4
jeg kan lave scriptet.. du skal bare installere activeperl.... så får du scriptet, og det virker efter hensigten...
26. april 2001 - 12:51 #5
Ok, er der noget jeg skal sætte op i apache for at det kører ?
Avatar billede Lasse Novice
26. april 2001 - 13:23 #6
næh ikke noget som helst.... du downloader bare active perl og installerer det.... jeg har nu ikke selv prøvet det i denne rækkefølge - jeg installerer normalt perl og derefter apache... hvilket virker... men jeg tror nu at det virker alligevel... Der sker i hvert fald ikke noget ved at prøve(apache går ikke ned af den grund), men det kan godt være at du ikke kan køre perlscriptet fra din browser... nu får vi at se!

Når du har installeret det, så sig lige til... så vil jeg sende et script, som du kan prøve at ligge i cgi-bin biblioteket. Det er et lille perlscript, og når du kører dette, så skulle du gerne få noget ud i din browser...
Avatar billede Lasse Novice
26. april 2001 - 13:32 #7
ok, her er lige det script som burde virke, efter at du har installeret activeperl

use CGI \":standard\";

print header, start_html, \"TESTING TESTING - det virker!!!\", end_html;

læg det ned i en fil - kald den test.pl

så skriver du:

perl test.pl

og der skulle nu gerne komme noget output... det kan være at den spørger dig om nogen parametre... så trykker du bare CTRL-d...

nu skulle der gerne komme noget output...

I modsat tilfælde, kommer der en fejlmeddelelse...

Virker dette, så har du installeret activeperl korrekt.... nu lægger du filen ind i cgi-bin biblioteket... åbn en browser... og skriv følgende i adresselinien...

localhost/cgi-bin/test.pl

nu skulle du gerne se linien

TESTING TESTING - det virker!!

er dette tilfældet, ja så laver jeg det der logging script til dig...
26. april 2001 - 13:37 #8
Sådan, det er lagt ind.
26. april 2001 - 13:41 #9
Det skrev den ganske rigtigt ud som den skulle !
Avatar billede vladimirr Nybegynder
26. april 2001 - 14:55 #10
med på en lytter
Avatar billede razor Nybegynder
26. april 2001 - 15:16 #11
26. april 2001 - 15:29 #12
Razor -> Prøv at læse min første kommentar
Avatar billede razor Nybegynder
26. april 2001 - 15:31 #13
du kan sagtens installere webalizer på win2k
Avatar billede razor Nybegynder
26. april 2001 - 15:32 #14
http://www.medasys-lille.com/webalizer/

her kan du downloade til win32
26. april 2001 - 15:33 #15
Har du en vejledning der kan gøre det så det virker ?
Avatar billede razor Nybegynder
26. april 2001 - 15:39 #16
nej, men prøv dig frem. Læs kommentarene i conf-filen.. og studer fejlmeddelserne hvis der forekommer nogle
26. april 2001 - 15:44 #17
Godt, så venter jeg på gooky
Avatar billede Lasse Novice
27. april 2001 - 13:09 #18
ja, jeg var lige væk et stykke tid... men jeg fikser lige noget sammen... 20 min, så er det der...
27. april 2001 - 13:20 #19
Kan man lave noget med en gæstetop 10 ?
Og evt. andet du kunne finde på, jeg kaster gerne 125 point mere afsted.
Avatar billede Lasse Novice
27. april 2001 - 13:47 #20
ok, 20 min til... jeg skulle lige lave noget på arbejdet... nu laver jeg lige det der...
Avatar billede Lasse Novice
27. april 2001 - 14:27 #21
ok, nu er jeg færdig.. jeg har ikke lige proppet nogle fanzy ting på, men det er bagateller...(lille funktionalitet) se om du kan lide ideen, og vend tilbage...

#!/usr/bin/perl -w

use CGI \":standard\";

$log_location = \"/var/log/httpd-access.log\";

my $cgi = new CGI;
my %ip;

open LOG, $log_location;

print $cgi->header, $cgi->start_html;

while(<LOG>) {
        /^(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}) - - \\[(\\d{2})\\/(\\w{3})\\/(\\d{4}):(\\d{2}:\\d{2}:\\d{2})/;
        push @{$ip{$1}->{dato}}, \"$2-$3-$4 $5\";
        $ip{$1}->{count} = 0 unless $ip{$1}->{count};
        $ip{$1}->{count}++;
}

close LOG;

my $ip = $cgi->param(\'ip\') || \'\';
if($ip eq \'count\') {
        my $absolute_url  = $cgi->url(-absolute=>1);

        foreach (keys %ip) {
                print a({-href=>\"$absolute_url?ip=$_\"}, $_ . \' : \' . $ip{$_}->{count}) . \" <br>\\n\";
        }
} elsif($ip =~ /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/) {
        print \"<h1>$ip</h1>\\n\";
        print join \"<br>\\n\", @{$ip{$ip}->{dato}};
}


print $cgi->end_html;
Avatar billede Lasse Novice
27. april 2001 - 14:28 #22
det er en lille ting som du skal ændre, og det er variablen $log_location... den skal du sætte til stien på httpd-access.log filen.....
27. april 2001 - 14:34 #23
Det virker ikke på min server, under windows2000 !
Jeg får bare en hvid skærm, og jeg har husket at ændre stien til access.log
Avatar billede Lasse Novice
27. april 2001 - 15:01 #24
ahhh min fejl.... du skal i stien skrive...

localhost/cgi-bin/log.pl?ip=count
27. april 2001 - 15:06 #25
Det får jeg stadig ikke noget ud af.
Avatar billede Lasse Novice
27. april 2001 - 15:17 #26
Prøv lige det her script i stedet for...

#!/usr/bin/perl -w

use CGI \":standard\";

my $log_location = \"/var/log/httpd-access.log\";

my $cgi = new CGI;
my %ip;

open LOG, $log_location;

print $cgi->header, $cgi->start_html;

unless(-f $log_location) {
        print \"din lokation til log filen er forkert\";
}
while(<LOG>) {
        /^(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}) - - \\[(\\d{2})\\/(\\w{3})\\/(\\d{4}):(\\d{2}:\\d{2}:\\d{2})/;
        push @{$ip{$1}->{dato}}, \"$2-$3-$4 $5\";
        $ip{$1}->{count} = 0 unless $ip{$1}->{count};
        $ip{$1}->{count}++;
}

close LOG;

my $ip = $cgi->param(\'ip\') || \'\';
if($ip eq \'count\') {
        my $absolute_url  = $cgi->url(-absolute=>1);

        foreach (keys %ip) {
                print a({-href=>\"$absolute_url?ip=$_\"}, $_ . \' : \' . $ip{$_}->{count}) . \" <br>\\n\";
        }
} elsif($ip =~ /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/) {
        print \"<h1>$ip</h1>\\n\";
        print join \"<br>\\n\", @{$ip{$ip}->{dato}};
}


print $cgi->end_html;



Prøv så at køre scriptet fra prompten(ikke browseren).... skriv perl log.pl

derefter skulle den gerne spørge efter parametre... her skriver du :

ip=count
også trykker du ctrl-d

det skulle meget gerne virke...

Kig efter \"din lokation til log filen er forkert\"... Hvis det står der, så er der noget galt....
27. april 2001 - 15:19 #27
Hvad skal jeg skrive som location til min logfil ?
Avatar billede Lasse Novice
27. april 2001 - 15:25 #28
ehhh. ok, hvis den nu ligger c:\\conf\\med\\dig\\httpd-access.conf

så skriver du c:/conf/med/dig/httpd-access.conf

altså du bytter \\ ud med /.... ikke logisk, men sådan er det...
27. april 2001 - 15:39 #29
Nu skriver den ingen fejl når jeg kører det i promten, men viser stadig intet i min browser
Avatar billede Lasse Novice
27. april 2001 - 15:40 #30
og husker du at skrive ?ip=count bagefter????

prøv at højreklikke på musen også kig på indholdet af hjemmesiden(view source)

hvad står der der?
27. april 2001 - 15:51 #31
Det virker nu, så mangler der bare lige hvilke Ipadresser der har set hvormange sider, og hvilke, tidspunkter, samt Top10 på gæsterne.

27. april 2001 - 15:57 #32
Hvis du får det til at virke, så er der 250 point til dig !
Avatar billede Lasse Novice
27. april 2001 - 16:01 #33
jeg skal nok få det til at virke... jeg skal hjem fra arbejde idag... så jeg kigger på det i aften... ok?

27. april 2001 - 16:01 #34
Det er helt i orden, jeg smutter nu !
27. april 2001 - 16:01 #35
Det er helt i orden, jeg smutter nu !
Avatar billede Lasse Novice
30. april 2001 - 10:59 #36
hmmm, jeg sagde op på mit arbejde heri fredags, og jeg er flyttet heri weekenden... jeg prøver dog på at få scriptet lavet heri ugen(ikke her på biblioteket), også sender jeg det til dig.

Fra næste uge igen, har jeg internet, også kan jeg helt sikkert få det lavet der...
22. oktober 2001 - 13:20 #37
Det blev vist aldrig til noget.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester