Awstats logging

Nu draait dit blog al wel een paar maanden maar nog steeds heb ik de statistieken niet voor elkaar. Het wordt hoog tijd om daar verandering in aan te brengen. De keuze is voor mij gevallen op AWStats. Deels omdat ik hier in mijn Freesco verleden al mee gewerkt heb. Deze keer ga ik het echter niet als actieve CGI pagina installeren, de statistieken moeten dagelijks in de nachtelijke uren geupdate gaan worden waarna de statische pagina’s beschikbaar komen op de webserver.

Als eerste Awstats en de geoip plugin installeren vanuit de Debian archieven:

Arkon:~# aptitude install awstats libgeo-ipfree-perl

De configuratie heb ik in de eerste instantie vrij grof gedaan. Simpelweg de basisconfiguratie geconfigureerd naar een apart bestand voor dit domein, dat werdt dus awstats.tecumseh.homeip.net.conf. Hierin de juiste variabelen aanpassen en kijken of ik een statische pagina aanmaken kan.

Ik kom er achter dat de bestanden niet allemaal op dezelfde plek staat. Eerst dus maar zorgen dat het script om de statische pagina’s te maken op dezelfde plaats aangeroepen kan worden als het hoofdscript van awstats:

Arkon:/usr/lib/cgi-bin# ln -s /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl awstats_buildstaticpages.pl

Hierna kan ik een update uitvoeren en een set statische pagina’s aanmaken, dit moet straks vanuit een bash script gedaan worden:

Arkon:~$ /usr/lib/cgi-bin/awstats.pl -config=tecumseh.homeip.net -update
Arkon:~$ /usr/lib/cgi-bin/awstats_buildstaticpages.pl -awstatsprog=/usr/lib/cgi-bin/awstats.pl -config=tecumseh.homeip.net -year=2008 -month=06 -dir=~/awstats/200806

Dit werkt in elk geval, ik krijg statistieken maar het is allemaal wel heel kaal. De icoontjes worden niet gevonden. Deze dus maar aanmaken via een symlink:

Arkon:~/tecumseh.homeip.net/awstats$ ln -s /usr/share/awstats/icon/ icon

Zorg er trouwens wel voor dat de locatie van de icoontjes in de configuratiebestanden aangepast wordt naar deze locatie.

Nu nog even een opschoning doen in het configuratiebestand. Ik wil hier niets meer in hebben staat wat ook in een algemeen configuratiebestand kan staan. We kopieren awstats.conf dus naar awstats.conf.local, hiermee zorgen we ervoor dat er bij een update van het pakket de originele configuratie niet verloren gaat. In dit bestand commenten we een aantal regels die we per domein apart in willen stellen, die regels laten we dus terugkomen in aparte configuratiebestanden:

LogFile="/var/log/lighttpd/access.log"
SiteDomain="tecumseh.homeip.net"
DirData="/var/lib/awstats"
DefaultFile="index.php"
SkipFiles="REGEX[^\/phpmyadmin] REGEX[^\/postfixadmin]"
NotPageList="css js class gif jpg jpeg png bmp ico swf"
MiscTrackerUrl="/js/awstats_misc_tracker.js"
DetailedReportsOnNewWindows=0
LoadPlugin="geoipfree"
Include "/etc/awstats/awstats.conf.local"

Als we nu de statistieken opnieuw aanmaken dan krijgen we ineens de volgende regel bovenaan de pagina te staan:

Warning: Perl versions before 5.6 cannot handle nested includes

Na lang zoeken kwam ik erachter dat ik een fout gemaakt heb in de configuratiebestanden. Het probleem bleek te zitten in awstats.conf.local, deze verwees namelijk naar zichzelf in de laatste regel aangezien dit een kopie is van awstats.conf, door deze regel te commenten verdwijnt de foutmelding.

Nu kunnen we de domeinconfiguratiebestanden copieren en per domein aanpassen.

Als ik vervolgens bij een domein wat ik tot nu toe enkel nog voor testdoeleinden gebruikt heb de statistieken bekijk dan zijn die verdacht gelijk aan mijn hoofdaccount. Ik kan me niet voorstellen dat dit de bedoeling is.

Ik heb namelijk LogFormat op 1 staan, wat de volgende zoekstring opleverd:

# LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"

Het 2e veld %other is echter de naam van de virtualhost, als ik het format verander naar:

LogFormat = "%host %virtualname %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"

Dan krijg ik de statistieken wel bij de site waar ze thuishoren.

Er staat nog wel het een en ander op het programma, dit is nog verre van volmaakt.

  • Logrotate aanpassen waardoor ik logbestanden per maand heb.
  • Script maken voor automatische verwerking
  • Statistieken in de site verwerken, deze site publiek en de overige achter een wachtwoord
  • Extra statistieken actief maken door het gebruik te maken van awstats_misc_tracker.js

Nu heb ik voor bovenstaande items wel wat leesvoer gevonden, dit is echter op apache geschreven en ik heb een lighttpd server.

Wordt vervolgt dus.

Geef een reactie