[php mysql logfile] Logfile bijhouden

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

Onderwerpen


Verwijderd

Topicstarter
Ik ben bezig om de puntjes op de i te zetten van een dynamische website met CMS. Nu ben ik beland bij het bijhouden van statestieken van de site. Hoe het technisch moet in php/mysql weet ik op zich wel, maar ik zit te tobben over wat voor constructie ik zal gebruiken hiervoor.

Oplossing 1:
Het bijhouden van hele beperkte logs. Zoals welke browser, en referrer. Deze steeds eentje ophogen met 1 bij een hit. Dit zorgt voor een kleine database, maar ik mis dan wel informatie over ip adressen en datum en tijd.

Oplossing 2:
Bijhouden van browser, referrer, datum en ip-adres. Hier valt het meeste uit te halen. Maar probleem zit hem dan wel in de grootte van de database. Ik schat dat ik minimaal zo'n 10 MB aan logs per jaar heb, en dat vind ik toch wel wat gortig worden.

Oplossing 3:
Oplossing 2 + na x aantal dagen de log wissen.

Dit klinkt vast belachelijk Maar ik wil gewoon een statestieken overzicht aanbieden bij m'n CMS. Mijn vraag is dan ook, hoe hebben jullie zoiets geregeld?

p.s. Kom niet met antwoorden zoals "Gebruik de statestieken die de host aanbiedt". Niet elke host biedt dit aan, en het past niet in de layout van m'n cms.

Best een treurige vraag aangezien het zo'n lullig onderwerp is, maar ik weet echt niet hoe ik het aan moet pakken.

  • Sendy
  • Registratie: September 2001
  • Niet online
Bedoel je serieus 10 MiB per jaar aan log data? Lijkt me geen probleem dan om alles zeer uitgebreid op te slaan.

Als je 10 GiB bedoeld, dan lijkt dat me wel wat veel. Hoe kom je aan zo'n schatting? Verder zijn logfiles zeer goed te comprimeren, dus je kan data uit de database halen en in een gewoon gecomprimeerd bestand opslaan.

Hoelang wil je de logs bewaren?
edit:

\o/ Woooei Bosmonster herhaalt mij

[ Voor 10% gewijzigd door Sendy op 17-12-2004 18:03 ]


  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Ik zou voor oplossing 1 gaan. Vervolgens zou je de laatste 10 bezoekers het ip adres, datum en tijd kunnen bijhouden. Maar ik zou dit zeker niet te groot gaan uitwerken. De laatst genoemde info is leuk om te zien, maar kun je er uiteindelijk ook iets mee? Ik bedoel, na een maand heb je een hele grote berg met ip adressen en welke browser ze gebruiken maar verder hiernaar kijken doe je niet.

Verwijderd

Topicstarter
Ja 10MB en geen GB. Op zich is het niet zoveel, maar sommige klanten willen een hosting account van 25MB. En dan is het dus krap

Ik ga maar voor oplossing 1 en dan ook de laatste x bezoekers bijhouden.

  • Sendy
  • Registratie: September 2001
  • Niet online
Maar hoe kom je aan die schatting dan? 10MiB voor je jaar is niet zo veel, en dan kan je dus gewoon 1 jaar aan logs bewaren. Daarna cycle je per maand door. Wat heb je namelijk aan de laatste 100(?) bezoekers?

Ik zou die maand logs die je uit je database haalt uitvoeren als standaard "combined" logfile formaat, dan kan je er ook nog mooi een log analyzer overheen halen.

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Sendy schreef op donderdag 16 december 2004 @ 23:28:
Wat heb je namelijk aan de laatste 100(?) bezoekers?
Wat heb je aan alle informatie van alle bezoekers van het afgelopen jaar? De info die de TS in de eerste mogelijkheid geeft is genoeg naar mijn mening, je gaat toch niet door alle IP adressen van het afgelopen jaar neuzen, of de exacte useragent. Welke provider iemand heeft, welk OS en welke browser daar kun je nog wat mee en dit dan zoals in mogelijkheid 1 aangegeven...

  • Sendy
  • Registratie: September 2001
  • Niet online
Och, ik kijk best af en toe mijn logfiles door. Juist als er iets vreemds is voorgevallen. Maar goed, dit is meer een probleem van de TS; wat wil hij(?) met die logfiles?

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op donderdag 16 december 2004 @ 23:07:
Mijn vraag is dan ook, hoe hebben jullie zoiets geregeld?
Bij elke hit insert ik een rij met het id van de pagina, het ipadres en de timestamp. Ik vind dat op zich wel genoeg, zo kun je bekijken hoeveel hits er per tijdsduur zijn (dag, maand, jaar), de meest bekeken pagina's, op welke uren de site het meest bezocht wordt, het aantal unieke bezoeken, etc. De database wordt niet groot, omdat je alleen maar nummertjes in je tabel hebt. Een voorbeeld van statistieken van een pagina bij mijn cms:

Afbeeldingslocatie: http://cms.vbsoft.nl/hermes2/images/media/got/stats.gif

Acties:
  • 0 Henk 'm!

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 18-09 13:37

sopsop

[v] [;,,;] [v]

ik log ook wat op mijn website. Mijn methode is als volgt:

Ik heb een tabel met daarin:
-StatId
-Date
-PageId
-ItemId
-Hour0
-Hour1
...
-Hour23

Iemand komt op een pagina.
Ik bepaal de datum, het uur en om welke pagina en item (op een pagina kunnen meerdere items staan) het gaat.
Vervolgens hoog ik in de tabel het uurveld van die dag op die pagina van dat item met 1 op.

Vervolgens is het kinderlijk eenvoudig om statistieken uit te draaien, een aantal mogelijkheden:
- views op uurbasus
- gemiddeld aantal views op uurbasis in een periode
- Totaal aantal views in een periode
- etc

Stel dat je intotaal 1000 entiteiten hebt die gelogd moeten. Dan heb je dus maximaal 1000 records aan log per dag. En een echt zware tabel is het niet te noemen.

Eventueel zou je dit nog uit kunnen breiden met OS & Browser info. 't wordt dan wel een beetje een brede tabel, maar toch.

Enige nadeel is dat je niet op IP-niveau kunt traceren, een gebruiker volgen dus. Maar dat weegt imho niet op tegen de beperkte dataload van mijn manier.

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

text (log) files zijn erg goed in te pakken (factor 10 gemiddeld). Waarom niet de log per dag of week of whatever laten ZIP'en?

Tegen zo'n compressie ratio kan geen enkele database oplossing op als het gaat om opslagruimte dan.

[ Voor 39% gewijzigd door Bosmonster op 17-12-2004 15:34 ]

Pagina: 1