Blog Statistics, Part 2

In a recent post, I talked about how I tracked my posts views over time using Grafana and InfluxDB.

Today, I went another way and configured GoAccess to provide me with an HTML report with data extracted from my webserver's logs.

GoAccess Screenshot

#100DaysToOffload No. 14

As I said, GoAccess works by parsing the logs from my webserver and extracting data from there. There's a surprising amount of data hidden there, here's an example line: - - [26/Jun/2020:16:28:58 +0200] "POST /api/collections/gaugendre/inbox HTTP/1.1" 200 0 "-" "http.rb/4.4.1 (Mastodon/3.1.4; +"

Every single request to the server is logged, so it makes it easy to determine what page is being most requested, and most importantly by who. Do my 100 views come from an indexing bot or from 100 different people? That's not the same thing! While the simple count from WriteFreely can't answer these questions, the logs can!

I might take it a step further and dump everything to an Elastic stack someday, but in the meantime you can access the reports generated by GoAccess for my blog at I'm currently facing some issues that I don't yet understand with generating the reports regularly via crontab, but I'm on it :)

Update 2020-06-26 18:07: The crontab issue is resolved, reports are now updated automatically every 5 minutes.

Keywords/tags: #blog #stats #nginx #goaccess