I'm using https://github.com/atmire/COUNTER-Robots to filter bots, I guess it's effective enough, it catches most bots. There are more lists on web with bot user agents, some free, some you have to pay for, do some Googling.
Regarding parsing logs, I preferred a 100% self hosted solution. To me, it seems _the right_ way to do it.
It's just a showcase, something I hacked up in a few hours, I already had https://adi.onl/fl.html to have analytics in the CLI, just added a web frontend to them.
[0] https://pirsch.io/blog/introduction/ (find an image below "How It Started")