Justo este año 2020 nuestro proyecto, Colaboratorio, nanomedios y experiencias virtuales, cumple 4 años y creo que una buena manera de celebrarlo es hablaros de una herramienta que nos ha acompañado desde el principio.
No se trata del servidor web o de la base de datos, que sin duda son la espina dorsal en lo que respecta al software o programario, sino de Matomo, la herramienta que utilizamos para controlar las visitas a la web. Con ella podemos saber qué entradas son las más populares, en qué franjas horarias hay más usuarios conectados o qué sistemas operativos o navegadores se utilizan para surcar nuestro océano de sabiduría. 😊
Pero, antes de todo, empecemos por el principio.
¿Qué es Matomo?
Se trata de una aplicación web libre y que sigue la filosofía de desarrollo del software libre. Ha sido escrita por un equipo internacional de diseñadores y funciona sobre un servidor web, que utiliza tecnologías como PHP o MySQL.
Esta se encarga de rastrear, en tiempo real, las páginas web vistas y visitas de un sitio web dado. Además, se añaden reportes para su análisis.
Es heredera del proyecto Piwik, creado en el año 2007, que a su vez fue un reemplazo para otro llamado phpMyVisites. A partir del 2018 dicho proyecto tomó el nombre de Matomo. Entre sus características principales encontramos, relacionadas con el tráfico web:
- Informes: Se generan informes respecto a la ubicación geográfica de las visitas, su origen, los datos técnicos de la visita (navegador, sistema operativo, etcétera), que hicieron los visitantes, entre otros.
- Anotaciones: La posibilidad de guardar notas.
- Transiciones: Permite ver cómo los usuarios navegan por tu sitio web.
- Objetivos: Se pueden fijar objetivos para determinadas acciones predefinidas, como la cantidad de visitas a una página o la compra de un producto, en el caso de una tienda.
- Superposición de páginas: Esta función muestra el análisis de datos superpuestos.
- Variables personalizadas: Tiene la capacidad de adjuntar datos, tales como un nombre de usuario, para así revisar los datos.
Su lista de funcionalidades es bastante larga, y como la mejor manera de aprender algo es probándolo, eso es lo que haremos a continuación.
Instalación de Matomo en Ubuntu 20.04
Para hacerlo he creado un VPS en nuestro proveedor de confianza, Clouding.io, con las siguientes capacidades técnicas:
Esto es: un solo core, 2 GB de memoria RAM y un disco SSD de 20 GB, más que de sobra. La verdad es que el panel de nuestro proveedor es muy intuitivo y fácil de usar.
A dicho VPS le hemos asignado un sistema operativo con Ubuntu 20.04, que es su última versión, publicada este mismo año.
Crear un usuario operador
Lo primero que haremos es acceder al sistema vía SSH y crear un usuario, llamado «operador«, que utilizaremos para realizar todas las operaciones y, a posteriori, vamos a deshabilitar el acceso vía ‘root‘ al servidor.
useradd -m -c "Usuario Operador" \
-s "/bin/bash" -G sudo operador passwd operador
Una vez hecho, editamos el fichero /etc/sshd/sshd_config
, de esta manera:
sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' \
/etc/ssh/sshd_config
Y reiniciamos el servicio SSH:
systemctl restart sshd.service
A partir de aquí utilizaremos el usuario recién creado, «operador«.
su – operador
Actualizar el sistema operativo
Actualizamos:
sudo apt update sudo apt upgrade -y
Instalar y configurar servidor LAMP
El siguiente paso es instalar un servidor LAMP, esto es, un servidor web con Apache, PHP y MariaDB. Para comenzar debemos seguir estos pasos:
Instalar el servidor web Apache
Primero de todo instalamos el servidor web Apache:
sudo apt install apache2 apache2-utils
Encendemos el servicio y lo añadimos al inicio:
sudo systemctl start apache2 sudo systemctl enable apache2
Instalar MariaDB
A continuación, vamos con el motor de base de datos MariaDB. En este caso utilizaremos la versión que encontramos en los repositorios de la distribución:
sudo apt install software-properties-common
sudo apt install mariadb-server mariadb-client
Encendemos el servicio y lo añadimos al inicio:
sudo systemctl start mariadb sudo systemctl enable mariadb
Ahora una parte muy importante: asegurar la instalación del motor de base de datos. Para lograrlo vamos a utilizar el script mysql_secure_installation
Cuando nos pregunte si queremos definir una contraseña para el superusuario ‘root‘ del motor, le decimos que sí y definimos una. También es recomendable eliminar los usuarios anónimos, el acceso remoto con el usuario root y eliminar las bases de datos de test.
sudo mysql_secure_installation
E indicamos:
- Set root password? [Y/n] y - Remove anonymous users? [Y/n] y - Disallow root login remotely? [Y/n] y - Remove test database and access to it? [Y/n] y - Reload privilege tables
Recuerda apuntar la contraseña.
Instalar PHP
Ahora toca instalar PHP que, en esta ocasión, será la versión 7.4, la que encontramos por defecto a fecha de este artículo.
sudo apt install php libapache2-mod-php php-cli php-fpm
sudo apt install php-json php-pdo php-mysql php-zip sudo apt install php-gd php-mbstring php-curl
sudo apt install php-xml php-pear php-bcmath
Una vez instalado, podemos comprobar su versión, así:
operador@servubuntu20colaboratorio:~$ php -v
Habilitar módulos y página de pruebas
Habilitamos los módulos para Apache y reiniciamos el servicio:
sudo a2enmod php7.4 sudo systemctl restart apache2
Creamos una página de prueba para comprobar la configuración de PHP.
sudo vi /var/www/html/info.php
Con este contenido:
<?php
phpinfo();
?>
Salimos y guardamos.
De esta manera, si nos vamos a nuestro navegador web favorito y escribimos la IP o el dominio, más «info.php«, deberíamos acceder a esta página:
Instalar la última versión de Matomo
Una vez tenemos listo el servidor LAMP, descargamos la última versión del proyecto de la siguiente manera:
wget https://builds.matomo.org/matomo-latest.zip
Instalamos las herramientas necesarias para trabajar con ficheros comprimidos ZIP:
sudo apt install zip unzip
Descomprimimos dentro de la ubicación de los proyectos web por defecto para Apache:
sudo unzip matomo-latest.zip -d /var/www/
Asignamos los permisos correspondientes:
sudo chown www-data:www-data /var/www/matomo/ -R
Ahora nos toca crear la base de datos correspondiente y asignarle un usuario:
sudo mysql -u root -p
Y procedemos:
create database matomodb; create user matomouser@localhost identified by 'contrasea'; grant all privileges on matomodb.* to matomouser@localhost; flush privileges;
Configuramos el virtual host para Apache:
sudo vi /etc/apache2/sites-available/matomo.conf
Con el contenido:
<VirtualHost *:80> ServerAdmin davidochobits@colaboratorio.net ServerName servmatomo.colaboratorio.net DocumentRoot /var/www/matomo/
<Directory /var/www/matomo> DirectoryIndex index.php Options FollowSymLinks AllowOverride All Require all granted </Directory> <Files "console"> Options None Require all denied </Files> <Directory /var/www/matomo/misc/user> Options None Require all granted </Directory> <Directory /var/www/matomo/misc> Options None Require all denied </Directory> <Directory /var/www/matomo/vendor> Options None Require all denied </Directory>
ErrorLog ${APACHE_LOG_DIR}/matomo_error.log
CustomLog ${APACHE_LOG_DIR}/matomo_access.log combined
</VirtualHost>
Añadimos el virtual host y recargamos Apache:
sudo a2ensite matomo.conf sudo systemctl reload apache2
Habilitar el acceso HTTPS
Antes de pasar a este punto, si queréis utilizar una URL amigable para acceder a la web, recordad añadir un registro «A» en vuestro DNS.
Por ejemplo, en el caso de Cloudflare:
Ahora sí, instalamos la herramienta que nos ayudará con la configuración de los certificados de Let’s Encrypt:
sudo apt install python3-certbot-apache
Instalamos el certificado:
sudo certbot --apache --agree-tos --redirect \ --hsts --staple-ocsp -d servmatomo.colaboratorio.net
Si todo ha ido bien, ya deberíamos poder acceder al panel de configuración vía web:
A partir de aquí debemos seguir las instrucciones en pantalla, no tiene mayor complicación.
Justo al final de la configuración nos dará un código de JavaScript, que debemos añadir en los proyectos web a controlar.
En la imagen anterior se ve la gráfica de evolución de visitas en la web Ochobitshacenunbyte.com. Sin duda, este producto es una buena alternativa a otros privativos.
Y esto es todo, espero que esta información os sea de utilidad en algún momento.
Fuentes consultadas:
Idroot.us – How To Install Matomo on Ubuntu 20.04 LTS
Wikipedia.es – Entrada sobre Matomo
Las imágenes y sus licencias
El logo de Matomo es propiedad de la empresa. El resto de imágenes son capturas realizadas por el autor una vez instalado el producto.