GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instale Matomo Web Analytics (Piwik) en Ubuntu 20.04 con Apache/Nginx

Este tutorial le mostrará cómo instalar Matomo web analytics (anteriormente conocido como Piwik) en Ubuntu 20.04 con servidor web Apache o Nginx. Matomo es una alternativa de código abierto a Google Analytics , que es el software de análisis web más utilizado.

¿Qué es la analítica web?

Los sitios web utilizan el software de análisis web para saber cuántos visitantes hay en un sitio en un día/semana/mes, qué navegador web están usando, etc. Es una pieza de software crucial para ayudar a hacer crecer sus sitios web. Google Analytics es excelente, pero los datos de los visitantes del sitio web se almacenan en el servidor de Google. Si no desea compartir los datos de los visitantes de su sitio web con un tercero, puede ejecutar su propio software de análisis web. Hay muchas alternativas autohospedadas a Google Analytics y Matomo es excelente.

Características de Matomo

La edición Matomo autohospedada de código abierto (con licencia GPL v3+) puede mostrar los siguientes informes.

  • Principales palabras clave y motores de búsqueda, sitios web, sitios web de redes sociales.
  • URL de página principal, títulos de página, países de usuarios, proveedores, sistemas operativos, cuota de mercado de navegadores, resolución de pantalla, escritorio VS móvil.
  • Participación (tiempo en el sitio, páginas por visita, visitas repetidas).
  • Principales campañas, variables personalizadas, principales páginas de entrada/salida, archivos descargados y mucho más.
  • Clasificado en cuatro categorías principales de informes analíticos:visitantes, acciones, referencias, objetivos/comercio electrónico (más de 30 informes).
  • Informes de estadísticas por correo electrónico.
  • Análisis de registros del servidor web.
  • Haga un seguimiento de los visitantes que han deshabilitado JavaScript.
  • Herramientas para cumplir con el RGPD (como el consentimiento de cookies)
  • Instala complementos gratuitos o premium para extender y expandir la funcionalidad de Matomo.
  • Un actualizador basado en web fácil de usar. También está disponible un actualizador de línea de comandos.
  • Y más.

Para obtener una lista completa de funciones, consulte la página de funciones de Matomo. Me gusta especialmente el hecho de que Matomo puede enumerar todas mis páginas web por páginas vistas y mostrar la tasa de rebote y la tasa de salida para cada página web, y también el mapa de visitantes en tiempo real.

Mapa de visitantes en tiempo real de Matomo

Beneficios de Matomo autohospedados

  • Control total de los datos. Los datos se almacenan solo en su servidor y puede elegir en qué país se encuentra el servidor.
  • Sin límites de datos. Puede almacenar tantos datos como su servidor.
  • Totalmente personalizable y extensible.
  • Firefox comenzó a bloquear las cookies de seguimiento entre sitios, incluido Google Analytics. Al alojar el software de análisis con su propio nombre de dominio, sus cookies de seguimiento no se bloquearán.

El Matomo alojado en la nube tiene funciones adicionales, pero puede instalar un complemento premium en su instancia autohospedada para obtener la misma funcionalidad.

Requisitos previos para instalar Matomo Web Analytics (Piwik) en Ubuntu 20.04

Para seguir este tutorial, necesitará un nombre de dominio y un servidor. Registré mi nombre de dominio en NameCheap porque el precio es bajo y ofrecen protección de privacidad whois gratis de por vida. Un servidor con 1G de RAM es suficiente para ejecutar Matomo y estos son los proveedores de alojamiento que recomiendo. Los he usado todos.

  • Vultr (a partir de $2.5/mes. Se requiere tarjeta de crédito)
  • DigitalOcean (a partir de $5/mes. No se requiere tarjeta de crédito. Puede usar Paypal).

Una vez que tenga un servidor, instale Ubuntu en él y siga las instrucciones a continuación.

Matomo está escrito en PHP y usa la base de datos MySQL/MariaDB. Para seguir este tutorial, se supone que ya configuró la pila LAMP o LEMP en Ubuntu 20.04. Si no es así, consulte uno de los siguientes tutoriales:

  • Cómo instalar la pila LAMP en el servidor Ubuntu 20.04
  • Cómo instalar la pila LEMP en el servidor Ubuntu 20.04

Cuando haya terminado de configurar la pila LAMP o LEMP, vuelva aquí y siga leyendo.

Paso 1:Descarga Matomo en Ubuntu 20.04

Inicie sesión en su servidor a través de SSH. Siempre puede usar el siguiente comando para descargar la última versión de Matomo en su servidor.

wget https://builds.matomo.org/matomo-latest.zip

Una vez descargado, extraiga el archivo con unzip .

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip matomo-latest.zip -d /var/www/

El -d La opción especifica el directorio de destino. Los archivos web de Matomo se extraerán a /var/www/matomo/ . Luego, debemos cambiar el propietario de este directorio a www-data para que el servidor web pueda escribir en este directorio.

sudo chown www-data:www-data /var/www/matomo/ -R

Paso 2:crear una base de datos y un usuario en MariaDB

Inicie sesión en el servidor de la base de datos MariaDB con el siguiente comando.

sudo mysql

Alternativamente, también puede usar este comando para iniciar sesión.

sudo mariadb

Luego crea una base de datos para Matomo. Este tutorial nombra la base de datos matomo . Puedes usar el nombre que quieras.

create database matomo;

Cree el usuario de la base de datos. Nuevamente, puede usar su nombre preferido para este usuario. Reemplace your-password con su contraseña preferida.

create user matomouser@localhost identified by 'your-password';

Otorgue a este usuario todos los privilegios en el matomo base de datos.

grant all privileges on matomo.* to matomouser@localhost;

Vacíe los privilegios y salga.

flush privileges;

exit;

Paso 3:Crear archivo de configuración de Apache o Nginx

Apache

Si prefiere utilizar el servidor web Apache, cree un archivo de configuración de host virtual en /etc/apache2/sites-available/ directorio.

sudo nano /etc/apache2/sites-available/matomo.conf

Coloque el siguiente texto en el archivo. Reemplace analytics.example.com con su propio nombre de dominio. No olvide establecer un registro A para el nombre de dominio en su administrador de DNS.

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName analytics.example.com
        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>

Guarde y cierre el archivo. Luego habilite este servidor virtual.

sudo a2ensite matomo.conf

Vuelva a cargar el servidor web Apache para que el cambio surta efecto.

sudo systemctl reload apache2

Nginx

Si prefiere usar el servidor web Nginx, cree un matomo.conf archivo en /etc/nginx/conf.d/ directorio.

sudo nano /etc/nginx/conf.d/matomo.conf

Coloque el siguiente texto en el archivo. Reemplace analytics.example.com con su propio nombre de dominio. No olvide establecer un registro A para el nombre de dominio en su administrador de DNS.

server {
    listen [::]:80;
    listen 80;
    server_name analytics.example.com;

    access_log /var/log/nginx/matomo.access.log;
    error_log /var/log/nginx/matomo.error.log;

    root /var/www/matomo/; 
    
    index index.php;
        
    ## only allow accessing the following php files
    location ~ ^/(index|matomo|piwik|js/index).php {
        include snippets/fastcgi-php.conf;
        fastcgi_param HTTP_PROXY ""; # prohibit httpoxy: https://httpoxy.org/
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; 
    }
    
    ## needed for HeatmapSessionRecording plugin
    location = /plugins/HeatmapSessionRecording/configs.php { 
        include snippets/fastcgi-php.conf;
        fastcgi_param HTTP_PROXY "";
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; 
    }
    
    ## deny access to all other .php files
    location ~* ^.+\.php$ {
        deny all;
        return 403;
    }

    ## serve all other files normally 
    location / {
        try_files $uri $uri/ =404;
    }
    
    ## disable all access to the following directories 
    location ~ /(config|tmp|core|lang) {
        deny all;
        return 403; # replace with 404 to not show these directories exist
    }
    location ~ /\.ht {
        deny  all;
        return 403;
    }

    location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)$ {
        allow all;
        ## Cache images,CSS,JS and webfonts for an hour
        ## Increasing the duration may improve the load-time, but may cause old files to show after an Matomo upgrade
        expires 1h;
        add_header Pragma public;
        add_header Cache-Control "public";
    }

    location ~ /(libs|vendor|plugins|misc/user) {
        deny all;
        return 403;
    }

    ## properly display textfiles in root directory
    location ~/(.*\.md|LEGALNOTICE|LICENSE) {
        default_type text/plain;
    }
}

Guarde y cierre el archivo. Pruebe la configuración de Nginx, luego vuelva a cargar Nginx para que los cambios surtan efecto.

sudo nginx -t

sudo systemctl reload nginx

Paso 4:Instalar y habilitar módulos PHP

Ejecute los siguientes comandos para instalar los módulos PHP requeridos o recomendados por Matomo.

sudo apt install php-imagick php7.4-mysql php7.4-fpm php7.4-common php7.4-gd php7.4-json php7.4-curl  php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl

Si está utilizando el servidor web Apache, debe volver a cargarlo para que funcione con estos módulos PHP.

sudo systemctl reload apache2

Los usuarios de Nginx no necesitan recargar.

Ahora debería poder visitar el asistente de instalación basado en web de Matomo en http://analytics.example.com , pero antes de ingresar cualquier información, habilitemos HTTPS.

Paso 5:habilite HTTPS

Para cifrar el tráfico HTTP cuando visita la interfaz web de Matomo, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let's Encrypt. Ejecute los siguientes comandos para instalar el cliente Let's Encrypt (certbot) en Ubuntu 20.04.

sudo apt update
sudo apt install certbot

Si usa Nginx, también necesita instalar el complemento Certbot Nginx.

sudo apt install python3-certbot-nginx

Luego ejecute el siguiente comando para obtener e instalar el certificado TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.example.com

Si usa Apache, también necesita instalar el complemento Certbot Apache.

sudo apt install python3-certbot-apache

Luego ejecute este comando para obtener e instalar el certificado TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.example.com

Explicación:

  • --nginx :use el complemento nginx.
  • --apache :Utilice el complemento de Apache.
  • --agree-tos :Acepto los términos del servicio.
  • --redirect :Forzar HTTPS por redirección 301.
  • --hsts :agregue el encabezado Strict-Transport-Security a cada respuesta HTTP. Obligar al navegador a usar siempre TLS para el dominio. Protege contra la eliminación de SSL/TLS.
  • --staple-ocsp :activa el grapado OCSP. Se grapa una respuesta OCSP válida al certificado que ofrece el servidor durante TLS.

Ahora se debe obtener el certificado e instalarlo automáticamente.

Paso 6:finalice la instalación en su navegador web

Vaya a https://analytics.example.com para iniciar el asistente de instalación basado en web. Luego haga clic en Next botón.

Verificará si su sistema cumple con los requisitos, como las extensiones de PHP. Si se cumplen todos los requisitos, haga clic en Next .

En el siguiente paso, ingrese el nombre de usuario, la contraseña y el nombre de la base de datos de MariaDB que creó anteriormente. Puede utilizar el valor predeterminado en otros campos.

Después de hacer clic en Siguiente, el asistente de instalación creará automáticamente algunas tablas en la base de datos. Haga clic en Next para continuar.

En la siguiente pantalla, cree un usuario administrador para la interfaz web de Matomo.

Después de crear el usuario administrador, debe agregar un sitio web para recopilar datos analíticos.

Luego, debe agregar el código de seguimiento de JavaScript a su sitio web.

Una vez hecho esto. Haga clic en el botón Siguiente y su instalación de Matomo estará completa. Ahora puede iniciar sesión en el panel de control de Matomo y ver los datos de los visitantes.

Rastrear usuarios con JavaScript deshabilitado

En la interfaz web de Matomo, haga clic en el icono de la rueda dentada en la esquina superior derecha y luego vaya a sitios web -> código de seguimiento y puede optar por realizar un seguimiento de los usuarios con JavaScript deshabilitado.

Habrá un nuevo código de seguimiento. Debe reemplazar el código de seguimiento existente por uno nuevo. En realidad, el nuevo código de seguimiento solo agrega la siguiente línea al código de seguimiento existente.

<noscript><p><img src="//analytics.example.com/matomo.php?idsite=1&amp;rec=1" border:0;" alt="" /></p></noscript>

Cuando un visitante ha deshabilitado JavaScript, o cuando JavaScript no se puede usar, el navegador del visitante descargará una imagen.

Configurar trabajos cron para sitios web de tráfico medio y alto

Si su sitio web tiene miles de páginas vistas por día, es necesario configurar un trabajo cron para archivar automáticamente los informes de Matomo. Cree el archivo de trabajo Cron con el siguiente comando.

sudo nano /etc/cron.d/matomo-archive

Luego agregue las siguientes líneas al archivo.

MAILTO="[email protected]"
5 * * * * www-data /usr/bin/php /var/www/matomo/console core:archive --url=https://analytics.example.com > /dev/null

La salida estándar se enviará a /dev/null y el error estándar se enviará a su dirección de correo electrónico. Guarde y cierre el archivo. Este trabajo de Cron se ejecutará cada hora a los 5 minutos.

Cómo configurar la notificación por correo electrónico

Si hay más de un usuario, entonces es una buena idea hacer que Matomo pueda enviar notificaciones por correo electrónico como correos electrónicos de restablecimiento de contraseña. Para saber cómo configurar un servidor de correo electrónico, consulta el siguiente tutorial. Nota que recomiendo encarecidamente ejecutar el servidor de correo iRedMail en un sistema operativo nuevo y limpio. La instalación de iRedMail en un sistema operativo que tiene otras aplicaciones web puede fallar y es probable que rompa las aplicaciones existentes.

  • Cómo configurar fácilmente un servidor de correo con todas las funciones en Ubuntu 20.04 con iRedMail

Si no desea ejecutar su propio servidor de correo electrónico, puede configurar la retransmisión SMTP en su lugar. Consulte el siguiente tutorial.

  • Cómo configurar la retransmisión SMTP de Postfix en el servidor Ubuntu 20.04

Cómo configurar una geolocalización precisa con GeoIP

De forma predeterminada, Matomo adivina la ubicación de los visitantes según el idioma que usan. Esto no es exacto. Por ejemplo, muchos visitantes que no son de EE. UU. eligen En-US como idioma predeterminado para su sistema operativo, por lo que habrá más "visitantes de EE. UU." en el informe de Matomo. Para obtener una mejor geolocalización, podemos utilizar la base de datos IP gratuita MaxMind GeoLite2.

Primero, debe crear una cuenta en MaxMind. Maxmind le enviará un correo electrónico. Haga clic en el enlace del correo electrónico para establecer una contraseña, luego inicie sesión en su cuenta de MaxMind. A continuación, seleccione My License Key en la barra izquierda.

Haga clic en Generar nueva clave de licencia botón.

Asigne un nombre a su clave de licencia y elija "No ” para “¿Se usará esta clave para GeoIP Update?” Luego haga clic en Confirm botón. Se mostrará su clave de licencia. Tenga en cuenta que la clave de licencia se mostrará solo una vez, así que cópiela en su portapapeles.

A continuación, haga clic en el icono de la rueda dentada (Administración) en la interfaz web de Matomo, vaya a System -> Geolocation . Luego descargue la última base de datos Maxmind GeoIP a su servidor. Reemplace your_license_key con su clave de licencia real.

wget -O GeoLite2-City.tar.gz 'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&suffix=tar.gz&license_key=your_license_key'

Extraiga el tarball.

tar xvf GeoLite2-City.tar.gz

El tarball se extraerá a un directorio llamado así GeoLite2-City_20200814 . Luego mueva el archivo GeoLite2-City.mmdb a /var/www/matomo/misc/ directorio.

sudo mv GeoLite2-City_20200814/GeoLite2-City.mmdb /var/www/matomo/misc/

Ahora vuelva a cargar la página de configuración de Geolocalización de Matomo. Elija el segundo proveedor de ubicación:GeoIP 2 (Php) .

Haga clic en el botón Guardar para guardar su configuración. En la parte inferior de esta página, también puede ingresar la URL de descarga para que Matomo pueda actualizar automáticamente la base de datos GeoIP.

  • La URL de descarga de MaxMind es:https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&suffix=tar.gz&license_key=your_license_key
  • Actualice la base de datos cada semana.

Ejecución de Matomo detrás de Cloudflare CDN

Si Matomo se ejecuta detrás de Cloudflare CDN, entonces Matomo solo puede ver la dirección IP de los servidores de Cloudflare. Para mostrar la dirección IP real de los visitantes en Nginx, edite el archivo de configuración principal de Nginx.

sudo nano /etc/nginx/nginx.conf

Agregue las siguientes directivas en http sección.

set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;

# use any of the following two
real_ip_header CF-Connecting-IP;
#real_ip_header X-Forwarded-For;

establecer_ip_real_desde define direcciones de confianza, en este caso direcciones IP de Cloudflare, que se sabe que envían direcciones de reemplazo correctas. Guarde y cierre el archivo. Luego, vuelva a cargar Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Puede verificar las direcciones IP de los visitantes en Matomo Dashboard -> Visitantes -> Registro de visitas .

También puede consultar los rangos de IP actuales de Cloudflare.

Otras cosas que hacer

  • Suscríbase a la fuente RSS de registro de cambios de Matomo para recibir una notificación cuando salga una nueva versión.
  • Consulte los consejos de seguridad de Matomo.
  • Lea los consejos de ajuste de rendimiento de Matomo.

¡Eso es todo! Espero que este tutorial te haya ayudado a instalar Matomo en el servidor Ubuntu 20.04 con Apache o Nginx. Como siempre, si encuentra útil esta publicación, suscríbase a nuestro boletín gratuito para obtener más consejos y trucos. Cuídate 🙂


Ubuntu
  1. Cómo instalar el servidor web Nginx en Ubuntu 18.04

  2. Cómo instalar Jenkins Automation Server con Apache en Ubuntu 16.04

  3. Instale el servidor web Apache en Ubuntu 12.10

  4. Cómo instalar Matomo Web Analytics en Ubuntu 20.04

  5. Instale phpMyAdmin en Ubuntu 20.04 con Nginx

Instale Matomo Web Analytics (Piwik) en Ubuntu 18.04 con Apache/Nginx

Cómo instalar InvoiceNinja en un servidor Ubuntu 20.04 con Apache/Nginx

Comandos para instalar el servidor web Apache en Ubuntu 22.04 o 20.04 LTS

Cómo instalar el servidor web Apache en Ubuntu 18.04

Cómo instalar el servidor web Nginx en Ubuntu 20.04

Cómo instalar el servidor web Apache en Ubuntu 20.04