Actualmente se pueden utilizar varios motores para la analítica de tu sitio, uno muy utilizado y conocido es Google Analytics y funciona bastante bien.
Pero qué pasa cuando no puedes utilizar este tipo de motores y debes ingeniártelas tú mismo con el famoso «access_log» de Apache.
Bueno hay mucho jugo que extraer a este archivo e incluso hay aplicaciones que consumen este archivo para conseguir la analítica de tu sitio (como GoAccess y AWStats). No obstante, hay cosas que puedes hacer rápidamente con el poder de la terminal de Linux/Unix y el archivo access_log de tu servidor, entre ellas:
Filtrar sólo las IPs de todas las peticiones
$ cat tuaccesslog.log | cut -f 1 -d ' '
181.164.204.242
181.164.204.242
181.164.204.242
181.164.204.242
181.164.204.242
181.164.204.242
181.164.204.242
181.164.204.242
181.164.204.242
66.249.69.89
66.249.69.89
66.249.69.16
189.136.48.177
189.136.48.177
189.136.48.177
189.136.48.177
189.136.48.177
189.136.48.177
189.136.48.177
189.136.48.177
189.136.48.177
189.136.48.177
...
Esto nos entregará en consola todas las IPs de todas la peticiones registradas.
De primera vista nos podemos dar cuenta que las IPs se repiten, esto se debe a que Apache registra la IP del usuario por cada petición realizada. Es decir al descargar tu sitio, según el número de recursos (html,css,js e imágenes) se genera una petición por cada uno de ellos, por eso entre mejor optimizado tu sitio y mejor recaigas en el uso de un CDNs mejor será el performance de tu servidor, pero bueno ese es otro tema.
Generalmente lo que necesitamos primeramente es conocer el número de visitantes que ha tenido tu sitio, para ello debemos agrupar por IP y ordenar por mayor repetición. Esto es fácil usando los comandos de uniq y sort en la salida del comando anterior
$ cat tuaccesslog.log | cut -f 1 -d ' ' | sort | uniq -c | sort -nr > salida.out
$ less salida.out
5635 66.249.65.157
2296 189.217.104.182
1599 52.162.211.179
1162 66.249.65.158
803 189.213.162.13
640 66.249.65.159
556 187.190.4.126
476 187.189.123.17
459 177.247.116.111
432 23.100.232.233
386 64.233.172.211
366 189.155.83.108
365 181.164.204.242
...
En la lista que guardamos en «salida.out» tenemos agrupadas todas la IPs registradas en nuestro log de Apache. En la primera columna tenemos las repeticiones y en la segunda las IPs, de ahí podemos ver que ciertas IPs tenemos demasiadas repeticiones que generalmente son bots de buscadores (Google, Yahoo, etc).
Descargando las base de datos de IPs de los bots más famosos ubicadas en este sitio iplists.com se pueden comparar las IPs que tenemos para hacer una limpia y quedarnos con un resultado bastante preciso de las IPs de auténticos visitantes.