Migrazione ed aggiornamento di Matomo dalla versione 4 alla 5 su Debian 12

by | Lug 17, 2024

Matomo è un software di analisi dei dati con funzionalità analoghe a Google Analytics che però non utilizza i dati raccolti a fini pubblicitari.
È possibile installare Matomo su un proprio server “on premise” per avere il totale controllo dei dati raccolti.
In questa guida verrà spiegato come effettuare la migrazione di Matomo 4 su un nuovo server e successivamente effettuare l’aggiornamento alla versione 5.
La documentazione uffficiale richiede che in caso di migrazione del server venga reinstallata la medesima versione, per cui non è possibile installare direttamente Matomo 5 sul nuovo server.
Se non si necessitasse di migrare i dati da una vecchia installazione di Matomo è possibile installare direttamente Matomo 5 ed evitare i capitoli relativi alla migrazione del DB e dei files.

INSTALLAZIONE MARIADB

Eseguire un aggiornamento dei repositories:

Installare MariaDB:

Effettuare l’hardening di MariaDB:

CONFIGURAZIONE DEL DATABASE PER MATOMO

Modificare o decommentare i seguenti parametri nel file /etc/mysql/mariadb.conf.d/50-server.cnf:

È possibile modificare i parametri del MySQL in base alle proprie esigenze.

Per abilitare il log delle queries particolamente lente (di default log_slow_query_time = 10 secondi), è possibile aggiungere o decommentare i seguenti parametri nel file /etc/mysql/mariadb.conf.d/50-server.cnf:

Successivamente creare la directory per i logs di MariaDB e assegnarle i permessi corretti:

Riavviare il servizio mariadb:

Accedere alla shell del MySQL (inserire la password di root creata nel paragrafo precedente):

Creare il database per Matomo:

Creare l’utenza del database di Matomo:

Assegnare i permessi all’utenza:

INSTALLAZIONE Di APACHE2 e PHP8

Installare Apache2:

Installare PHP8:

Installare il modulo del PHP per connetersi a MySQL (MariaDB):

CONFIGURAZIONE DEL PHP

Configurare la memoria massima utilizzabile dal PHP modificando il parametro “memory_limit” nel file “/etc/php/8.2/apache2/php.ini” (in questo caso 1GB):

Configurare la dimensione massima delle richieste POST modificando il parametro “post_max_size” nel file “/etc/php/8.2/apache2/php.ini” (in questo caso 50MB):

Configurare la timezone decommentando e modificando il parametro “date.timezone” nel file /etc/php/8.2/apache2/php.ini:

Installare i moduli del PHP necessari:

Riavviare Apache2:

CONFIGURAZIONE DI APACHE2

Modificare o decommentare i seguenti parametri nel file /etc/apache2/conf-available/security.conf:

Modificare la configurazione delle directories nel file /etc/apache2/apache2.conf:

Modificare i limiti del web server nel file /etc/apache2/apache2.conf:

Creare il VHOST per Matomo aggiungendo la seguente configurazione nel file /etc/apache2/sites-available/matomo.conf:

Il VHOST creato precedentemente funziona solamente tramite HTTP e non tramite HTTPS.
Nei capitoli successivi di questa guida verrà spiegato come effettuare SSL offloading tramite reverse proxy.
Se invece fosse necessario abilitare l’HTTPS direttamente su Apache2, sarebbe necessario creare un VHOST dedicato con SSL abilitato ed aggiungere un certificato con la relativa chiave sul server.

Abilitare i moduli necessari di Apache2:

Disabilitare il VHOST di default:

Abilitare il VHOST di Matomo:

Verificare la configurazione di Apache2:

Riavviare il servizio Apache2:

CONFIGURAZIONE DI APACHE2 PER MATOMO DIETRO A REVERSE PROXY

Se si fa utilizzo di reverse proxy, è necessario utilizzare il modulo remoteip per la gestione dell’IP sorgente.

Aggiungere la seguente configurazione nel file /etc/apache2/apache2.conf per creare il formato da utilizzare per Matomo:

Aggiungere nel file /etc/apache2/trusted-proxies.lst la lista dei reverse proxies autorizzati:

Modificare nel VHOST di Matomo (/etc/apache2/sites-available/matomo.conf) il formato dell’access log e configurare il modulo remoteip:

Nel caso in cui non venga utilizzato X-Forwarded-For come header per ricevere l’IP sorgente della richiesta dal reverse proxy, è possibile sostituirlo nella configurazione del modulo (RemoteIPHeader).

Abilitare il modulo “remoteip” di Apache2:

Verificare la configurazione di Apache2:

Riavviare il servizio Apache2:

INSTALLAZIONE DI MATOMO

Inanzitutto è necessario scaricare dal sito di Matomo (Download Matomo) il pacchetto relativo alla versione che si desidera installare.
Se si necesessita di migrare un server, come nel mio caso, è importante scaricare il pacchetto della stessa versione del server da migrare, nel mio caso la “4.11.0”.
Se invece Matomo viene installato per la prima volta, è possibile scaricare il pacchetto dell’ultima versione disponibile.

Scaricare il pacchetto (sostituire “4.11.0” con la versione desiderata):

Decomprimere il pacchetto:

Sposare la directory di Matomo in /var/www:

Assegnare i permessi corretti ai files e alle directories:

È possibile che alcune directories non siano ancora state create dal web server, in questo caso navigare su http://IP ed eseguire nuovamente il comando.

EFFETTUARE IL BACKUP DEL DATABASE

Questo step è necessario solamente per la migrazione di un’installazione di Matomo.
Per effettuare il backup del database è necessario impostare Matomo in modalità manutenzione aggiungendo la seguente configurazione nella sezione General nel file $MATOMO_ROOT/config/config.ini.php:

Successivamente è possibile effettuare il backup del database tramite mysqldump:

Sostituire MATOMO_DATABASE_NAME e MATOMO_DATABASE_USERNAME con il nome del database e dell’utente di Matomo.

RIPRISTINO DEL BACKUP DEL DATABASE

Questo step è necessario solamente per la migrazione di un’installazione di Matomo.
Copiare il backup dal vecchio server al nuovo.

Ripristinare il database sul server nuovo:

Sostituire MATOMO_DATABASE_NAME e MATOMO_DATABASE_USERNAME con il nome del database e dell’utente di Matomo impostati nello step della configurazione del database.

CONFIGURAZIONE DI BASE DI MATOMO

Navigare su http://IP, la pagina mostrata dovrebbe essere simile a quella mostrata nell’immagine seguente:

Proseguire con l’installazione cliccando su Next.

Nella pagina seguente vengono mostrati i controlli effettuati sul server, verificare che siano tutti passati (con la spunta verde):

Proseguire con l’installazione cliccando su Next.

Nella pagina seguente è necessario inserire i dettagli del database, l’utenza da utilizzare è quella creata durante gli step relativi alla configurazione del database per Matomo:

Nel caso di una migrazione di Matomo, dopo aver cliccanto Next viene visualizzata una pagina simile alla seguente:

Scorrere fino al fondo della pagina e cliccare su Reuse the existing tables e nella pagina suguente su CONTINUE TO MATOMO.

Nel caso invece di una nuova installazione proseguire cliccando su Next fino alla pagina relativa al Superuser.

Compilare i dettagli dell’utenza amministrativa di Matomo:

Proseguire con l’installazione cliccando su Next.

Nella pagina seguente è possibile aggiungere un sito web al monitoraggio di Matomo, è possibile aggiungere gli ulteriori siti successivamente all’installazione:

Cliccando su Next viene mostrata la pagina con un applet JavaScript da aggiungere al sito per effettuare il monitoraggio:

Se si utilizza un reverse proxy, si consiglia di rigenerare l’applet dopo aver configurato SSL offloading.

Cliccare su Next per proseguire sulla pagina conclusiva e concludere l’installazione cliccando su CONTINUE TO MATOMO.

Infine viene mostrata la pagina di login in cui è possibile accedere con le credenziali create durante l’installazione di Matomo:

CONFIGURAZIONE DI MATOMO PER FUNZIONARE DIETRO A REVERSE PROXY

Per configurare Matomo per funzionare dietro ad un reverse proxy è necessario aggiungere la seguente configurazione nella serzione “General” del file /var/www/matomo/config.ini.php:

Modificare matomo.mydomain.com con l’FQDN del server.

CONFIGURAZIONE DI HAPROXY PER FUNZIONARE DAVANTI A MATOMO

Per configurare HAProxy per bilanciare Matomo è necessario modificare la configurazione nel file /etc/haproxy/haproxy.cfg:

RIPRISTINO DEI PLUGINS

Questo step è necessario solamente per la migrazione di un’installazione di Matomo.

Per installare i plugins della vecchia installazione di Matomo sulla nuova è possibile utilizzare il Marketplace.
Accedere alle impostazioni di Matomo, navigare nel menù laterale a sinistra su Piattaforma e successivamente su Marketplace (su Matomo 5) oppure su Marketplace e successivamente su Naviga (su Matomo 4), infine cliccare su INSTALLA I PLUGIN ACQUISTATI:

Verificare la lista di plugins e per confermare cliccare su INSTALLA E ATTIVA X PLUGIN ACQUISTATI:

Inserire la password e cliccare su Conferma:

In seguito all’installazione dei plugins viene mostrato un avviso che conferma l’operazione:

Per ripristinare i plugins che non possono essere ripristinati in automatico è necessario ricopiare le sezioni [Plugins] e [PluginsInstalled] del file /var/www/matomo/config/config.ini.php dalla configurazione del vecchio server al nuovo, esempio:

Successivamente recarsi nel Marketplace di Matomo e reinstallare tutti i plugins con scritto Sconosciuto tra parentesi accanto al nome del plugin, al posto della versione.
Non attivare nessun plugin finché non si hanno reinstallato tutti i plugins con la versione sconosciuta.
Se erroneamente si ha attivato un plugin che manda in errore Matomo, è possibile utilizzare il seguente comando per disabilitarlo:

È possibile reinstallare i plugins dal Marketplace dopo l’aggiornamento di Matomo, in modo di aggiornarli all’ultima versione disponibile, ma è necessario modificare il file di configurazione prima dell’aggiornamento del database.
Se non si includono i plugins nel file di configurazione prima dell’aggiornamento del database, è possibile che successivamente all’installazione di un plugin presente nella vecchia installazione di Matomo, il database restituisca degli errori (ad esempio per delle colone mancanti).
Nel caso in cui i plugins vengano installati dopo l’aggiornamento di Matomo, è possibile che vengano richiesti degli ulteriori aggiornamenti del database.

AGGIORNARE MATOMO ALLA VERSIONE 5

Prima di iniziare l’aggiornamento è importante aver ripristinato i plugins nel file di configurazione /var/www/matomo/config/config.ini.php (vedi paragrafo precedente).

Per aggiornare Matomo è necessario impostarlo in modalità manutenzione aggiungendo la seguente configurazione nella sezione General nel file /var/www/matomo/config/config.ini.php:

Ricopiare il file di configurazione di Matomo /var/www/matomo/config/config.ini.php:

Scaricare il pacchetto dell’ultima versione stabile di Matomo disponibile:

Decomprimere il pacchetto:

Ricopiare il file di configurazione di Matomo nella directory della nuova installazione:

Sostituire la directory dell’attuale installazione di Matomo:

Assegnare i permessi corretti ai files e alle directories:

Assicurarsi di aver installato sudo:

Successivamente è possibile proseguire con l’aggiornamento del database:

Disabilitare la modalità manutenzione commentando la seguente configurazione nella sezione General nel file /var/www/matomo/config/config.ini.php:

Verificare se l’aggiornamento è andato a buon fine navigando sull’URL di Matomo.

Rimuovere la directory della vecchia installazione di Matomo:

Infine è necessario aggiornare o reinstallare i plugins presenti nella vecchia installazione di Matomo.
Per aggiornare un plugin accedere alle impostazioni di Matomo, navigare nel menù laterale a sinistra su Plugin ed in seguito su Gestione plugins, cliccare sul nome del plugin ed infine cliccare su Installa:

Non attivare il plugin appena installato se sono presenti dei plugins con versione sconosciuta (vedi capitolo relativo alla migrazione dei plugins).

CONFIGURAZIONE DELL’AUTO ARCHIVIAZIONE DI MATOMO

Se il server di Matomo deve processare più di qualche centinaia di visite al giorno è consigliato configurare l’auto archiviazione tramite crontab.

Creare la directory per i logs dell’auto archiviazione di Matomo e assegnarle i permessi corretti:

Aggiungere nel file /etc/cron.d/matomo_archive:

Se al posto di voler ricevere gli errori via email si vogliono loggare in un file modificare la crontab come segue:

È possibile sostituire http://localhost/ con l’URL di Matomo (eg. https://matomo.domain.com/), ma non è necessario.

Aggiungere la configurazione di logrotate nel file /etc/logrotate.d/matomo:

Successivamente ad aver configurato l’auto archiviazione è suggerito disabilitare l’archiviazione causata dalla richieste degli utenti, per farlo è necessario accedere alle impostazioni di Matomo, navigare nel menù laterale a sinistra su Impostazioni generali, disabilitare Archivia i report quando sono stati visti dal browser, impostare 3600 secondi e salvare cliccando su Salva:

CONFIGURAZIONE DI GEOIP SU APACHE2

Installare i pacchetti necessari

Scaricare da GitHub (GitHub Web Site) l’ultima versione disponibile di mod_maxminddb:

Decomprimere il pacchetto:

Entrare nella directory scompattata ed installare il modulo:

Creare la directory per i databases di MAXMIND:

Registrarsi gratuitamente sul sito di MAXMIND (Maxmind Web Site) e scaricare il database GeoLite2 Country e il database GeoLite2 City.
Copiare entrambi i databases nella directory /usr/local/share/GeoIP/.

Aggiungere la seguente configurazione alla directory /var/www/matomo nel VHOST di Apache2 utilizzato per Matomo:

Verificare la configurazione di Apache2:

Riavviare Apache2:

Successivamente è necessario abilitare le variabili utilizzate dal modulo di Apache2 su Matomo, per farlo bisogna accedere alle impostazioni di Matomo, navigare nel menù laterale a sinistra su Impostazioni generali, abilitare le variabili GeoIP 2 e salvare cliccando su Salva:

Infine bisogna abilitare il provider di geolocalizzazione, per farlo è necessario accedere alle impostazioni di Matomo, navigare nel menù laterale a sinistra su Geolocalizzazione, abilitare il provider DBIP / GeoIP 2 (Apache) e salvare cliccando su Salva:

Se il server viene contattato da un IP privato, Matomo mostra un errore nonostante Apache2 sia correttamente configurato:

Scritto da Marco Valle

Mi chiamo Marco Valle e da sempre sono appassionato di Cybersicurezza e Linux.
Per lavoro implemento soluzioni open source.

Articoli Recenti

Veeam Backup

Monitoring

Friends

  • My English Lab  English School
  • ChrSystem   Infrastrutture IT
  • ACT For Cange  Mental Coach
  • Since 01  Kreative Graphics

Database

Networking

Autori

  • Raffaele Chiatto  Amministratore
  • Marco Valle  Autore Collaboratore
Categorie:Debian | Matomo

Related Post

0 Comments

Submit a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Virtualizzazione

Linux

Microsoft

Apple

Backup

Database

Security

Automazione