I’m playing with alternatives to Google Analytics, because I pretty much only look at one or two charts.
First try: GoAccess.
It lives on your server and reads the nginx logs directly and produces very nice graphs. There’s a live terminal interface or you can produce HTML files. It even tries to segment out crawlers for you (but it doesn’t subtract them from your visitor count, so you have to do some mental math).
Update: there is an --ignore-crawlers command-line option, but I don’t want to ignore them, just segregate them. It’s interesting to see what bots are hitting and when and how much.
Biggest irritation so far: since the generated HTML page does no date filtering at all, you have to filter at the command line. Fortunately, the manual gives you specific examples of how to do that, so I’ve written a script and set up a cron job to produce HTML pages for the last 1, 7, 30, 90, and 365 days (yes, five different HTML pages) and put them somewhere I can look at them.
I’ll leave this enabled for a while and see how I like it. Next up: Plausible’s free (self-hosted) tier.