Based on your requirements it sounds like AWStats [1] may be a fit. It's rather old-school but it's simple and works great on access logs and can be run on any node that you consolidate your logs to. It's had a sketchy security history so run it on something only you can access and/or put decent authentication in front of it. Some Linux distributions include AWStats as a package in their repositories.