piwik

Piwik (ahora Matomo), el servidor de estadísticas

Piwik es una aplicación de análisis en tiempo de real de las visitas escrita en PHP-MySQL. Aporta funcionalidades similares a Google Analytics, pero se trata de una solución 100% libre y autohospedada.

Utiliza un pequeño código en javascript que hay que incluir en las páginas que quieras trazar.

¿Por qué usar Piwik?

  • Permite monitorizar las estadísticas de muchos sitios webs aunque no residan físicamente en el mismo servidor.
  • Extrae información más extensa y precisa que la que puedas recoger analizando logs de Apache o Nginx.
  • Permite ver todas las métricas de visitas en tiempo real.
  • Su interfaz web permite dar permisos específicos a usuarios para ver las estadísticas de según que sitio.
  • No envías información a google u otras empresas.
  • Es respetuosa con las opciones de privacidad de los navegantes, pudiendo elegir qué información envían al servidor.
  • Es software libre.

Notas sobre la instalación

Nginx

Actualmente está instalado como subdominio de habitat/hilbert, accesible en http://hilbert.ee.upm.es/piwik http://habitat.aq.upm.es/piwik.

Piwik es accesible en el subdominio stats de habitat: http://stats.habitat.aq.upm.es.

También tiene configurado su propio entorno de ejecución de php en /etc/php/7.0/fpm/pool.d/piwik.conf

Configuración del virtual host /etc/nginx/sites-available/5-stats.habitat.aq.upm.es:

server {
	listen 80;
	server_name stats.habitat.aq.upm.es;
	root /var/www/piwik;
	index index.php;

	location ^~ /.well-known/ {
		allow all;
	}
	# Logs
	access_log /habitat/www/log/stats/visitas.log;
	error_log /habitat/www/log/stats/errores.log;

	include gzip.conf;

	location / {
		try_files $uri $uri/ /piwik/index.php?$query_string;
	}

	location ~ \.(html|php)$ {
		try_files $uri =404;
		include fastcgi_params;
		fastcgi_intercept_errors on;
		fastcgi_pass unix:/run/piwik.sock;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
	}

}

Antigua configuración

Para habilitar el acceso en otro virtualhost sólo hay que añadirle

include piwik.conf;

a cualquier vhost.

/etc/nginx/piwik.conf
location /piwik {
 
	alias /var/www/piwik;
 
	access_log off;
	log_not_found off;
 
	index index.php;
	try_files $uri $uri/ /piwik/index.php?$query_string;
 
}
 
 
location = /piwik/index.php {
	include fastcgi_params;
	fastcgi_intercept_errors on;
        fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
	fastcgi_index index.php;
	fastcgi_pass piwik-socket;
}
 
location = /piwik/piwik.php {
        include fastcgi_params;
        fastcgi_intercept_errors on;
        fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
        fastcgi_index index.php;
        fastcgi_pass piwik-socket;
}

MySQL/MariaDB

Piwik ejecuta con los privilegios de su propio usuario de sistema, así como el acceso a MySQL se realiza también con un usuario específico que sólo tiene permisos sobre su propia base de datos. Estas credenciales se omiten de esta wiki por razones obvias y se remite a /root/passwords para su consulta.

Geolocalización por IP

Por defecto, piwik emplea las cabeceras de lenguaje de las peticiones web para asignar la localización del visitante. Este método es poco preciso, así que merece la pena configurar que la geolocalización se realice por la IP del visitante.

Para ello debemos descargarnos una base de datos que permita asociar una IP con una región y configurar piwik para la que la use:

cd /var/www/piwik/misc/
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz
chown piwik:www-data GeoLiteCity.dat

Luego desde la interfaz de administración en Configuración → Geolocalización elegimos GeoIP (Php)

Más información en: http://piwik.org/docs/geo-locate/

Importando datos desde los logs de Apache

Piwik incluye un script en python que permite importar los logs de Apache o de Nginx. El script llamado import_logs.py se encuentra en /var/www/piwik/misc/log-analytics junto con un README.md con instrucciones de su uso. Más información en: http://piwik.org/log-analytics/how-to/

Durante las pruebas para migrar el histórico de visitas al piwik usando este script hemos encontrado los siguientes problemas:

  • Sin geolocalización por IP los orígenes no se importaban, probablemente por falta de información en los logs. Con geolocalización por IP esto parece subsanado.
  • El proceso de importación es extremadamente lento. Importar un mes llevó más de una hora y media, por lo que para llevar a cabo el proceso de importación completo habrá que dejar corriendo el script con nohup durante días.
  • Si importas dos veces el mismo archivo de log, la información se duplica.

Una vez importado el histórico habrá que añadir el código tracker a la página en el servidor viejo, para que no haga falta nuevas importaciones.

piwik.txt · Última modificación: 2018/03/31 19:06 por root