Apache 1.3.31 schrijft corrupte logregels

Pagina: 1
Acties:
  • 243 views sinds 30-01-2008
  • Reageer

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 17:46

Snow_King

Konijn is stoer!

Topicstarter
Hoi,

Ik zit met een probleem, mijn Apache schrijft corrupte logregels weg :(

Een quote uit mijn access_log
code:
1
2
3
4
12.34.56.78 - - [17/Jul/2004:15:00:18 +0200] "GET /index.htm HTTP/1.1" 200 465 "-" "TmxWebUpdate"
12.34.56.78 - - [17/Jul/2004:15:00:39 +0200] "GET /index.htm HTTP/1.1" 200 465 "-" "TmxWebUpdate"
/2004:15:00:23 +0200] "GET /index.php HTTP/1.1" 200 767
12.34.56.78 - - [17/Jul/2004:15:00:31 +0200] "GET /download/setup.exe HTTP/1.1" 200 1738053 "http://www.google.nl


Zoals je ziet is
code:
1
/2004:15:00:23 +0200] "GET /index.php HTTP/1.1" 200 767


Een corrupte regel.
Nu is dit opzich niet erg, maar AWstats weigert dus te updaten als er meer dan 50 van zulke regels voorkomen.
Het lijkt me ook niet helemaal kloppen dat dit gebeurt.

mijn httpd.conf
code:
1
2
3
4
5
6
7
8
HostnameLookups Off
ErrorLog /var/log/apache/error_log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /var/log/apache/access_log combined


Dat lijkt me ook zo allemaal in orde.
De error welke ik krijg van AWstats
code:
1
2
3
4
5
6
7
8
AWStats did not find any valid log lines that match your LogFormat parameter, in the 50th first non commented lines read of your log.
Your log file /var/log/apache/access_log must have a bad format or LogFormat parameter setup does not match this format.
Your AWStats LogFormat parameter is:
1
This means each line in your web server log file need to have "combined log format" like this:
111.22.33.44 - - [10/Jan/2001:02:14:14 +0200] "GET / HTTP/1.1" 200 1234 "http://www.fromserver.com/from.htm" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"
And this is an example of records AWStats found in your log file (the record number 50 in your log):
/2004:15:00:23 +0200] "GET /index.php HTTP/1.1" 200 767


Dat is dus gaar :(

Wie weet wat dit kan zijn?

Sysinfo:
- Debian 3.0
- Dual AMD Opteron
- 2.6.7 Kernel
- AWstats 6.1

[ Voor 18% gewijzigd door Snow_King op 20-07-2004 01:51 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Volgen de corrupte entries altijd op bepaalde andere requests? Misschien versturen die backspace characters mee? Had je dit probleem met vorige versies van Apache ook?

offtopic:
en wat doet dit in NOS? :)

[ Voor 10% gewijzigd door Spider.007 op 20-07-2004 09:26 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 17:46

Snow_King

Konijn is stoer!

Topicstarter
Ik heb dit nog nooit meegemaakt, maar ben ook pas net AWstats gaan draaien, dus misschien had ik het wel vaker.

Uhm ja, waarom in NOS? Een goeie :P SA is beter :+

Die corrupte regels komen echt random.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Dit lijkt mij ook weinig nos-specifiek tot dusver.
NOS > SA :)

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 17:46

Snow_King

Konijn is stoer!

Topicstarter
wilde deze toch weer even onder de aandacht brengen.

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 17:46

Snow_King

Konijn is stoer!

Topicstarter
Het blijft leuker en leuker worden :)
Ik probeer nu dus AWstats te runnen en krijg dit:
code:
1
2
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Hour '47' out of range 0..23 at /ext/awstats/cgi-bin/awstats.pl line 1044


De logfile heb ik even gecleaned en nog steeds die error van hour 47 out og range.
Ik draai AWstats 6.1, dus ik heb de beta 6.2 gepakt en die geeft de zelfde error.

Op regel 1044 staat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sub GetSessionRange {
        my $starttime = my $endtime;
1044 - if (shift =~ /(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/) { $starttime = Time::Local::timelocal($6,$5,$4,$3,$2-1,$1);
        if (shift =~ /(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/) { $endtime = Time::Local::timelocal($6,$5,$4,$3,$2-1,$1); }
        my $delay=$endtime-$starttime;
        if ($Debug) { debug("GetSessionRange $endtime - $starttime = $delay",4); }
        if ($delay <= 30) { return $SessionsRange[0]; }
        if ($delay > 30 && $delay <= 120) { return $SessionsRange[1]; }
        if ($delay > 120 && $delay <= 300) { return $SessionsRange[2]; }
        if ($delay > 300 && $delay <= 900) { return $SessionsRange[3]; }
        if ($delay > 900 && $delay <= 1800) { return $SessionsRange[4]; }
        if ($delay > 1800 && $delay <= 3600) { return $SessionsRange[5]; }
        if ($delay > 3600) { return $SessionsRange[6]; }
        return "error";
}


begin onderhand een beetje gek te worden hiervan, echt helemaal niemand een idee?

[ Voor 5% gewijzigd door Snow_King op 22-07-2004 11:48 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Tjah.. dat komt natuurlijk doordat hij volgens een bepaald formaat een uur probeert te vinden. Doordat er zaken missen op de regel probeert hij het verkeerde te parsen. Heb je al een bug gereport? Is een downgrade het overwegen waard? Weet je zeker dat alle modules de juiste versies hebben (en dan vooral diegene die de loggin verzorgen)? Er staat niets in je server logfiles over schijf of geheugen corruptie?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 17:46

Snow_King

Konijn is stoer!

Topicstarter
Ik heb Apache 1.3.31 gedownload en met de hand gecompiled.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/configure --with-layout=ext \
--enable-module=so \
--enable-module=vhost_alias \
--enable-module=rewrite \
--enable-module=alias \
--enable-module=access \
--enable-module=autoindex \
--enable-module=auth \
--enable-module=dir \
--enable-module=include \
--enable-module=mime \
--enable-module=mime_magic \
--enable-module=userdir \
--enable-module=unique_id \
--enable-module=log_config \
--enable-module=negotiation \
--enable-module=setenvif \
--enable-module=imap \
--enable-module=cgi \
--enable-module=env \
--enable-module=expires \
--enable-module=headers \
--enable-module=status \
--enable-module=info \
--enable-module=asis \
--enable-module=setenvif \
--with-perl=/usr/bin/perl


Die modules zijn geladen.

Je bedoeld een downgrade naar Apache 1.3.29? Die bevatte een nasty bug, dus dat ik niet graag.

In de error log staat niets over fouten welke betrekking hebben tot de log processen van Apache.

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 17:46

Snow_King

Konijn is stoer!

Topicstarter
Ok, ik ben er dus achter.

Mijn opstelling is als volgt:

code:
1
2
3
4
5
6
7
8
9
           LoadBalancer
                |
        --------|--------
        |               |
    Webserver       Webserver
        |               |
        --------|--------
                |
          Fileserver (NFS)


Nu log ik dus met beide Apache webservers naar de zelfde logfiles.
Ik houdt voor elke vhost aparte logs bij, dat gaat dus goed met niet druk bezochte
sites.

Maar zodra je een druk bezochte site hebt en beide Apache schrijven tegelijk weg op de zelfde regel, dán gaat het dus fout.

Heeft iemand een idee wat ik hier aan moet doen of moet ik een nieuw topic hiervoor openen?

[ Voor 18% gewijzigd door Snow_King op 23-07-2004 09:47 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

aha.. daar kan ik me dan wel weer wat bij voorstellen. Kun je niet een dagelijkse cron job maken die een merge doet plus een sort?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 17:46

Snow_King

Konijn is stoer!

Topicstarter
Ja, dat kan wel, maar ik wil dat die logs wel real-time beschikbaar zijn.
Ik heb nu 1 map op mijn fileserver genaamd /ext, daar staat Apache en PHP geïnstalleerd.

Deze staat ook als /ext gemount via NFS op mijn webservers, zo starten alle servers met de zelfde config.

Ik geef per vhost dus aan waar de logs moeten komen.
Nu moet ik dus voor elke server aparte configs gaan uitdraaien, want ze moeten de logs beide ergens anders opslaan.

Ik had gehoord dat dit met file locking van NFS te maken had. Heeft iemand hier iets meer informatie over?
Pagina: 1