Spring naar hoofdtekst

Web-statistieken met GoAccess

Geplaatst op door ,
Laatste aanpassing op .

Inleiding

Nog vóór de invoering van de Algemene Verordening Gegevensbescherming (AVG) ben ik gestopt met het gebruik van Google Analytics. Hiermee kun je volledig automatisch en zeer comfortabel statistieken verzamelen en inzien van elk bezoek dat aan jouw website wordt gebracht. Grote kanttekening is daarbij echter wel, dat Google elk stukje (eventueel privacy-gevoelige) informatie meeleest en voor zijn eigen doelen gebruikt. Dat wilde ik niet op mijn geweten hebben.

Toch is het soms wel degelijk interessant om te zien of een website of een specifieke pagina überhaupt wordt bezocht. Komen er zoekmachines (crawlers, bots) langs? Van waaruit wordt naar de eigen site doorverwezen, of komen de bezoekers rechtstreeks?

Webserver logs

Een gemiddelde webserver zoals Apache houdt een uitgebreid logboek bij voor elke aanvraag die hij afhandelt. Natuurlijk worden ook alle fouten bijgehouden, maar dan wel in een eigen bestand. Je kunt er voor kiezen om elke domeinnaam op een (virtuele) server zijn eigen logbestanden te geven:

<VirtualHost *:80>
    ServerName fwiep.nl
    ServerAlias www.fwiep.nl
#...
    ErrorLog ${APACHE_LOG_DIR}/fwiep.nl_error.log
    CustomLog ${APACHE_LOG_DIR}/fwiep.nl_access.log combined
#...
</VirtualHost>

Analyse

Aldus ging ik op zoek naar een mogelijkheid om de logbestanden te analyseren zonder dat iemand anders of zelfs een bedrijf misbruik zou kunnen maken van die gegevens. Ik probeerde AWStats, maar werd overweldigd door de enorme hoeveelheid mogelijkheden die dat programma biedt. Bovendien kon ik het niet eenvoudig inrichten... Sorry, ik ben misschien een beetje verwend :)

Toen vond ik met apt search apache log viewer in mijn terminal een pareltje waar ik nog nooit van had gehoord: GoAccess. Het is een commandline tool dat ofwel interactief kan werken of naar HTML, JSON of CSV exporteert.

Archief

Normaal gesproken worden alle logbestanden geroteerd. Dat betekent dat er na verloop van tijd een cijfer aan de bestandsnaam wordt toegevoegd, waarna een nieuw (leeg) bestand de oude naam krijgt. Hierna worden oude bestanden automatisch gecomprimeerd met gzip. Zo gaat geen enkele melding verloren, maar nemen de bestanden zo min mogelijk ruimte in beslag. Bijvoorbeeld:

ls -1 /var/log/apache2/*access.log*
 fwiep.nl_access.log
 fwiep.nl_access.log.1
 fwiep.nl_access.log.2.gz
 fwiep.nl_access.log.3.gz

Overzicht

Gelukkig zijn er een aantal standaard tools zoals zcat, zgrep en zless beschikbaar die direct met gecomprimeerde bestanden kunnen werken. Gekoppeld aan GoAccess zoals in onderstaand commando, worden zowel de actuele meldingen als ook die in gecomprimeerde archiefbestanden samen verwerkt tot een zeer overzichtelijk HTML-rapport. Bravo!

zcat -f fwiep.nl_access.log.* | goaccess --log-format=COMBINED -o fwiep.html;

Inhoudsopgave

Atom-feed Atom-feed van FWiePs weblog

Artikelen


Doorzoek de onderstaande categorieën om de lijst met artikelen te filteren.