If I want to figure things like that, I pick on GoAccess from the command line. It's amazingly fast and accepts input via pipe (of course also accepts a file name), so I can restrict it using
grep to what I wish to see – e.g. grepping for data and hour to restrict analysis to that hour.
On the command line, GoAccess provides a curses like interface managing multiple sections, so you can easily dive into either UserAgents, top URLs, referrers, or whatever you're after:
GoAccess (source: GoAccess; click images for larger variants)
As you can see, the command-line interface even lets you filter output to further narrow down your scope. And yes, I use it with Apache – so it should be fine with your environment.
So let's match your requirements:
- Most visited page(s) on a 10 minute interval (or even shorter): possible, e.g. by piping
grep output. If your log lines e.g. start with the pattern
[Wed Oct 11 14:32:52 2000], you could get your 10 minute interval grepping for
"Oct 11 13:1" (to cover everything between 13:10 and 13:19), piping the output to GoAccess – and then investigate the most visited pages as shown in section 2 of the first screenshot ("Top requests").
- How many errors returned on that period: Similar to the previous point, different section ("HTTP Status Codes", "404 or Not Found")
- Referrals for those GET requests: Same again, section "Referring Sites & URLs"
If you're interested in "automatic reports", GoAccess also supports other output variants: HTML (see here for example output), JSON and CSV are covered here which you then could evaluate with your own scripts (or run it by Cron to create "static HTML reports" to access remotely from anywhere). Also see this answer for a different view on things.