Webalizer is a web log analysis software licensed under GPL. It's written in C and it's super fast in processing access log files. Configuring Webalizer is very easy, especially if your Apache web server combines all access logs into one log file, but I noticed that many people have trouble configuring Webalizer for multiple websites (virtualhosts). There are a couple of ways to make this trouble disappear, but I'll explain only one which is, in my opinion, one of the easiest and applicable in most scenarios.
Although I'm using CentOS 6, this tutorial isn't CentOS-specific. So, if you're using another distro you'll notice that there are some differences, but you'll get there in the end.