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.
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; } }
Para habilitar el acceso en otro virtualhost sólo hay que añadirle
include piwik.conf;
a cualquier vhost.
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; }
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.
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/
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:
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.