Apache logfiles uitlezen

Pagina: 1
Acties:

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
In mijn httpd.conf staan onder andere de volgende regels om de Apache logfiles te schrijven:
code:
1
2
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access.log common

Ik heb een eigen statistiekentool (met clientside javascript) geschreven om informatie te verzamelen over de bezoekers van mijn site. Nu wil ik ook per dag opslaan hoeveel dataverkeer er geweest is. De enige betrouwbare manier hiervoor is via de Apache logfiles, begreep ik na het lezen van diverse GoT topics. Hierover het ik drie vragen.
code:
1
2
3
4
5
6
7
"GET /vrijdag/images/theme/footer2.gif HTTP/1.1" 304 -
"GET /vrijdag/files/gothambold.swf HTTP/1.1" 304 -
"GET /vrijdag/images/theme/bullet.gif HTTP/1.1" 304 -
"GET /favicon.ico HTTP/1.1" 404 287
"GET /vrijdag/nav/edit/47 HTTP/1.1" 200 10511
"GET /favicon.ico HTTP/1.1" 404 287
"POST /vrijdag/nav/edit/47 HTTP/1.1" 302 -

1. Hierboven zie je een stukje uit access.log (host en datetime info verwijderd). Elke regel wordt afgesloten met het aantal bytes aan bandbreedte. Bij heel veel requests vind ik echter een - achteraan de regel. Betekent dit, dat het bestand bij de client al gecached is?

2. De access.log waaruit bovenstaand fragment komt, is momenteel 86 MB groot en gaat terug tot juni 2005. Is het mogelijk om in httpd.conf te regelen dat informatie, ouder dan bv. 3 maanden, automatisch verwijderd wordt?

3. Ik wil de gebruikte bandbreedte optellen en het totaal hiervan elk uur in een mysql database opslaan. Kan ik dit vanuit httpd.conf regelen of moet ik elk uur (cronjob, oid) de logfile openen en door de logentries loopen?

[ Voor 12% gewijzigd door Reveller op 01-05-2006 21:54 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Reveller schreef op maandag 01 mei 2006 @ 21:45:
1. Hierboven zie je een stukje uit access.log (host en datetime info verwijderd). Elke regel wordt afgesloten met het aantal bytes aan bandbreedte. Bij heel veel requests vind ik echter een - achteraan de regel. Betekent dit, dat het bestand bij de client al gecached is?
dat betekend dat er geen content is gestuurd, alleen wat headers, zoals bijvoorbeeld idd reeds gecachede data of een redirect.
2. De access.log waaruit bovenstaand fragment komt, is momenteel 86 MB groot en gaat terug tot juni 2005. Is het mogelijk om in httpd.conf te regelen dat informatie, ouder dan bv. 3 maanden, automatisch verwijderd wordt?
logrotate
3. Ik wil de gebruikte bandbreedte optellen en het totaal hiervan elk uur in een mysql database opslaan. Kan ik dit vanuit httpd.conf regelen of moet ik elk uur (cronjob, oid) de logfile openen en door de logentries loopen?
ik zou een cronjob nemen is het handigst, hoe zou je dat via httpd.conf willen doen dan?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

  1. Zoek voor de gein eens op wat de headers 302 en 304 betekenen. Daar zijn RFC's nou voor.
  2. [google=apache logfile archive]
  3. Zie het vorige puntje.
Overigens heeft geen van je vragen ook maar een klein beetje met programmeren te maken. Zie ook Waar hoort mijn topic?

PRG>>WSS

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.