Aan de slag met AWStats
Datum: 2021/01/05
In deze post ga ik uitleggen hoe je AWStats instelt zodat het zeer accurate statistieken geeft.
Warom AWStats en niet een online statistiek programma
AWStats verwerkt serverlogs die je sowiso bijhoud, Online statistiek programmas maken gebruik van een stukje code (vaak javascript) dat je aan elke pagina van jouw site toevoegt. Dat extra stukje code laat dat bedrijf ook toe om de bezoekers op jouw site te volgen. Doordat AWStats enkel met serverlogs werkt, worden jouw bezoekers niet gevolgd door een groot advertentiebureau.
Wat heb je nodig
Om van AWStats gebruik te maken heb je toegang nodig tot de logs van jouw website, mogenlijkheid om perl uit te voeren op de server via ssh (of indien je de logs download, op jouw computer), en (optioneel) ook CGI.
AWStats downloaden en installeren
Om AWStats te downloaden moet je naar de website van AWStats gaan. Op het moment van schrijven is de laatste versie 7.8.
AWStats is geschreven in perl, dus dit heb je nodig. Perl kan je downloaden vanaf de perl.org website. De meeste Linux systemen komen standaard met perl.
Eens AWStats gedownload is kan je het uitpakken in een map. In mijn geval is dit /home/vincent/awstats/
. Je zult dan 3 mappen zien: docs
, tools
en wwwroot
, de map waar awstats zelf zich in bevind is de wwwroot
map. Deze map bevat alle bestanden die AWStats gebruikt. Deze map zal je straks als DocumentRoot toevoegen aan de webserver (verder in deze post staat hoe je dit doet voor apache). in de cgi-bin
map bevind zich AWSTATS zelf, alsook de configuratiebestanden. Hier zul je een bestand awstats.model.conf
zien. Dit kan je Kopiëren en hernoemen naar awstats.domein.be.conf
en dan aanpassen. Ik licht even toe welke aanpassingen nodig zijn:
- De optie
logfile
moet naar het logbestand van de website gaan - De optie
siteDomain
moet het domein van jouw site bevatten - De optie
HostAliasses
bevat een reeks (gesplitst met een spatie) van aliassen. bvb de www. versie van jouw site. DNSLookup
kan je evt aanzetten voor basis geolocatie statistieken, maar hiervoor gebruik je best de geopip2 plugin)- Als je graag statistieken voor een heel jaar wilt zien kan je
AllowFullYearView
op 3 zetten. URLWithQuery
kan je aanzetten als jouw website gebruik maakt van querrystrings (bvb ?p=1) voor de pagina’s. De opties daaronder staan toe om enkel bepaalde (of bepaalde niet) te gebruiken.- De opties
Skip*
zoals bvbSkipFiles
kan je gebruiken om pagina’s uit de statistieken te houden. bijvoorbeeld om alle wordpress admin pagina’s (en gespamde pagina’s) uit de statistieken te houden kan je/xmlrpc.php REGEX[^\/wp-login.php] REGEX[^\/wp-admin] REGEX[^\/wp-json]
als optie ingeven.
Vooral de Skip*
opties zal je willen afstellen. Bots en zoekmachines worden standaard door AWStats al uit de statistieken gehouden.
De GeoIP2 plugins (city & country) zijn ook interesant. Hiervoor moet je wel op de site van maxmind de geoip2 (of gelite2) databases downloaden.
De logs omzetten in statistieken
Om de statistieken te bouwen kan je awstats.pl
uitvoeren als volgt:
./awstats.pl -config=domein.be -update
Dit zal awstats de logs laten lezen en de statistieken updaten. In het volgende stukje
AWStats koppelen in apache als CGI.
AWStats kan naast vanop de commandoregel uitgevoerd te worden, ook als CGI uitgevoerd worden. Hiermee kan je de statistieken ook degenlijk bekijken.
Ik ga er hier van uit dat je al een apache webserver hebt ingesteld en vertrouwd bent met virtual hosts. zoniet kan je dit artikel nog eens lezen.
Als eerste moet je zorgen dat mod_cgi aanstaat. dit kan je doen met sudo a2enmod cgi
en daarna apache herstarten met sudo service apache2 restart
(op debian/ubuntu systems).
Eens mod_cgi aanstaat kan je een nieuwe virtualhost aanmaken (best een die enkel door jou te bezoeken is) en de DocumentRoot
aan te passen naar
een de map wwwroot
van awstats. in mijn geval is dit /home/vincent/awstats/wwwroot
. Dit is uiteraard afhankelijk van waar jij het hebt uitgepakt.
Daarna voeg je er het volgende aan toe (en uiteraard ook het pad /home/vinent/awstats/wwwroot/cgi-bin/ aan te passen door het pad dat voor jou van toepassing is):
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
ScriptAlias /awstats/ /home/vincent/awstats/wwwroot/cgi-bin/
Als dit ingesteld is kan je de virtualhost inladen door apache nog eens te herstarten of te herladen.
Nu zou je op http://ip/awstats/awstats.pl?config=domein.be de statistieken moeten kunnen zien voor dat domein.
De dagelijkse cronjob instellen.
om de statistieken elke dag automatish te laten updaten kan je een cronjob maken elke nacht die het update commando (./awstats -config=domein.be -update
) uitvoerd. je kan dit evt ook meerdere keren per dag laten uitvoeren.
Conclusie
AWStats is een accurate manier om bezoekersstatistieken bij te houden. Het is iets accuraat als online oplossingen maar het heeft wel een groot privacy voordeel. Ook het uiterlijk is nogal verouderd, maar je kan het wel zelf aanpassen met aangepaste css stylesheets.
(schermafdruk van de de demo op awstats.org)