GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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

Este tutorial le mostrará cómo instalar el análisis web de Matomo (anteriormente conocido como Piwik) en Ubuntu 18.04 con el 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 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, sistema operativo, 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.
  • Y más.

Para obtener una lista completa de funciones, consulte la página de funciones de Matomo. Particularmente me gusta 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 autohospedado

  • 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, no se bloquearán las cookies de seguimiento.

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 18.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 512 MB 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 18.04. Si no es así, consulte uno de los siguientes tutoriales:

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

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

Paso 1:Descarga Matomo en Ubuntu 18.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. En el momento de escribir este artículo, la última versión es Matomo 3.7, que viene con una nueva función:administrador de etiquetas. Es uno de los mayores hitos para Matomo en los últimos años.

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

Una vez descargado, extraiga el archivo con unzip .

sudo apt install unzip

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 (Nginx) 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. Dado que MariaDB ahora usa unix_socket complemento para el inicio de sesión del usuario de autenticación, no es necesario ingresar la contraseña raíz de MariaDB. Solo necesitamos prefijar el mysql comando con sudo .

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 identified by 'your-password';

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 el texto de color rojo con sus datos reales. No olvide establecer un registro A para el nombre de dominio.

<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 el texto de color rojo con sus datos reales. No olvide establecer un registro A para el nombre de dominio.

server {
    listen [::]:80; # remove this if you don't want Matomo to be reachable from IPv6
    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.2-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.2-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.2-mysql php7.2-fpm php7.2-common php7.2-gd php7.2-json php7.2-curl  php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-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 18.04.

sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
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 : Habilita 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.

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 18.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 18.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, haga clic en el icono de la rueda dentada (Administración) en Matomo, vaya a System -> Geolocation . Luego descargue la última base de datos Maxmind GeoIP a su servidor.

wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz

Extraiga el tarball.

tar xvf GeoLite2-City.tar.gz

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

sudo mv GeoLite2-City_20190226/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.

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 18.04 con Apache o Nginx. Como siempre, si esta publicación le resultó útil, suscríbase a nuestro boletín informativo 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 20.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