Tutorial ini akan menunjukkan cara memasang analisis web Matomo (sebelumnya dikenal sebagai Piwik) di Ubuntu 20.04 dengan server web Apache atau Nginx. Matomo adalah alternatif sumber terbuka untuk Google Analytics , yang merupakan perangkat lunak analisis web yang paling banyak digunakan.
Apa itu Analisis Web?
Perangkat lunak analisis web digunakan oleh situs web untuk mengetahui berapa banyak pengunjung di situs dalam sehari/minggu/bulan, browser web apa yang mereka gunakan, dll. Ini adalah perangkat lunak penting untuk membantu mengembangkan situs web mereka. Google Analytics memang bagus, tetapi data pengunjung situs web disimpan di server Google. Jika Anda tidak ingin membagikan data pengunjung situs web Anda dengan pihak ketiga, Anda dapat menjalankan perangkat lunak analisis web Anda sendiri. Mereka adalah banyak alternatif yang dihosting sendiri untuk analisis Google dan Matomo adalah salah satu yang hebat.
Fitur Matomo
Edisi Matomo yang dihosting sendiri (berlisensi GPL v3+) open-source (berlisensi GPL v3+) dapat menampilkan laporan berikut.
- Kata kunci dan mesin telusur teratas, situs web, situs web media sosial.
- URL halaman teratas, judul halaman, negara pengguna, penyedia, sistem operasi, pangsa pasar browser, resolusi layar, desktop VS seluler.
- Keterlibatan (waktu di situs, halaman per kunjungan, kunjungan berulang).
- Kampanye teratas, variabel khusus, halaman masuk/keluar teratas, file yang diunduh, dan banyak lagi.
- Diklasifikasikan ke dalam empat kategori laporan analitik utama – Pengunjung, Tindakan, Perujuk, Sasaran/E-niaga (30+ laporan).
- Statistik laporan Email.
- Analisis log server web.
- Lacak pengunjung yang telah menonaktifkan JavaScript.
- Alat untuk mematuhi GDPR (seperti izin cookie)
- Instal plugin gratis atau premium untuk memperluas dan memperluas fungsionalitas Matomo.
- Pembaru berbasis web yang mudah digunakan. Pembaruan baris perintah juga tersedia.
- Dan banyak lagi.
Untuk daftar fitur lengkap, silakan periksa halaman fitur Matomo. Saya sangat menyukai fakta bahwa Matomo dapat membuat daftar semua halaman web saya berdasarkan tampilan halaman dan menunjukkan rasio pentalan dan rasio keluar untuk setiap halaman web, dan juga peta pengunjung waktu nyata.

Peta Pengunjung Waktu Nyata Matomo
Manfaat Matomo yang dihosting sendiri
- Kontrol data sepenuhnya. Data disimpan hanya di server Anda dan Anda dapat memilih negara mana server tersebut berada.
- Tidak ada batasan data. Anda dapat menyimpan data sebanyak yang server Anda bisa.
- Sepenuhnya dapat disesuaikan dan diperluas.
- Firefox mulai memblokir cookie pelacakan lintas situs, termasuk analitik Google. Dengan menghosting perangkat lunak analitik di bawah nama domain Anda sendiri, cookie pelacakan Anda tidak akan diblokir.
Matomo yang dihosting di awan memiliki fitur tambahan, tetapi Anda dapat menginstal plugin premium pada instans yang dihosting sendiri untuk mendapatkan fungsi yang sama.
Prasyarat Instalasi Matomo Web Analytics (Piwik) di Ubuntu 20.04
Untuk mengikuti tutorial ini, Anda memerlukan nama domain dan server. Saya mendaftarkan nama domain saya di NameCheap karena harganya rendah dan mereka memberikan perlindungan privasi whois gratis seumur hidup. Server dengan RAM 1G sudah cukup untuk menjalankan Matomo dan berikut adalah penyedia hosting yang saya rekomendasikan. Saya telah menggunakan semuanya.
- Vultr (Mulai dari $2,5/bulan. Diperlukan kartu kredit)
- DigitalOcean (Mulai dari $5/bulan. Tidak diperlukan kartu kredit. Anda dapat menggunakan Paypal).
Setelah Anda memiliki server, instal Ubuntu di server tersebut dan ikuti petunjuk di bawah ini.
Matomo ditulis dalam PHP dan menggunakan database MySQL/MariaDB. Untuk mengikuti tutorial ini, diasumsikan bahwa Anda telah menyiapkan LAMP atau LEMP stack di Ubuntu 20.04. Jika tidak, silakan lihat salah satu tutorial berikut:
- Cara memasang tumpukan LAMP di server Ubuntu 20.04
- Cara menginstal LEMP stack di server Ubuntu 20.04
Setelah Anda selesai menyiapkan tumpukan LAMP atau LEMP, kembali ke sini dan baca terus.
Langkah 1:Unduh Matomo di Ubuntu 20.04
Masuk ke server Anda melalui SSH. Anda selalu dapat menggunakan perintah berikut untuk mengunduh Matomo versi terbaru di server Anda.
wget https://builds.matomo.org/matomo-latest.zip
Setelah diunduh, ekstrak arsip dengan unzip
.
sudo apt install unzip sudo mkdir -p /var/www/ sudo unzip matomo-latest.zip -d /var/www/
-d
opsi menentukan direktori target. File web Matomo akan diekstrak ke /var/www/matomo/
. Kemudian kita perlu mengubah pemilik direktori ini menjadi www-data
sehingga server web dapat menulis ke direktori ini.
sudo chown www-data:www-data /var/www/matomo/ -R
Langkah 2:Buat Database dan Pengguna di MariaDB
Masuk ke server database MariaDB dengan perintah berikut.
sudo mysql
Atau, Anda juga dapat menggunakan perintah ini untuk login.
sudo mariadb
Kemudian buat database untuk Matomo. Tutorial ini beri nama database matomo
. Anda dapat menggunakan nama apa pun yang Anda suka.
create database matomo;
Buat pengguna basis data. Sekali lagi, Anda dapat menggunakan nama pilihan Anda untuk pengguna ini. Ganti your-password
dengan kata sandi pilihan Anda.
create user matomouser@localhost identified by 'your-password';
Berikan pengguna ini semua hak istimewa di matomo
basis data.
grant all privileges on matomo.* to matomouser@localhost;
Hapus hak istimewa dan keluar.
flush privileges; exit;
Langkah 3:Buat File Konfigurasi Apache atau Nginx
Apache
Jika Anda lebih suka menggunakan server web Apache, buat file konfigurasi host virtual di /etc/apache2/sites-available/
direktori.
sudo nano /etc/apache2/sites-available/matomo.conf
Masukkan teks berikut ke dalam file. Ganti analytics.example.com
dengan nama domain Anda sendiri. Jangan lupa untuk menetapkan A record untuk nama domain di pengelola DNS Anda.
<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>
Simpan dan tutup file. Kemudian aktifkan host virtual ini.
sudo a2ensite matomo.conf
Muat ulang server web Apache agar perubahan diterapkan.
sudo systemctl reload apache2
Nginx
Jika Anda lebih suka menggunakan server web Nginx, buat matomo.conf
file di /etc/nginx/conf.d/
direktori.
sudo nano /etc/nginx/conf.d/matomo.conf
Masukkan teks berikut ke dalam file. Ganti analytics.example.com
dengan nama domain Anda sendiri. Jangan lupa untuk menetapkan A record untuk nama domain di pengelola DNS Anda.
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; } }
Simpan dan tutup file. Uji konfigurasi Nginx, lalu muat ulang Nginx agar perubahan diterapkan.
sudo nginx -t sudo systemctl reload nginx
Langkah 4:Instal dan Aktifkan Modul PHP
Jalankan perintah berikut untuk menginstal modul PHP yang diperlukan atau direkomendasikan oleh 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
Jika Anda menggunakan server web Apache, Anda perlu memuat ulang untuk menjalankannya dengan modul PHP ini.
sudo systemctl reload apache2
Pengguna Nginx tidak perlu memuat ulang.
Sekarang Anda seharusnya dapat mengunjungi wizard pemasangan berbasis web Matomo di http://analytics.example.com
, tetapi sebelum memasukkan informasi apa pun, mari aktifkan HTTPS.
Langkah 5:Aktifkan HTTPS
Untuk mengenkripsi lalu lintas HTTP saat Anda mengunjungi antarmuka web Matomo, kami dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di Ubuntu 20.04.
sudo apt update sudo apt install certbot
Jika Anda menggunakan Nginx, Anda juga perlu menginstal plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Kemudian jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.example.com
Jika Anda menggunakan Apache, Anda juga perlu menginstal plugin Certbot Apache.
sudo apt install python3-certbot-apache
Kemudian jalankan perintah ini untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.example.com
Penjelasan:
--nginx
:Gunakan plugin nginx.--apache
:Gunakan plugin Apache.--agree-tos
:Menyetujui persyaratan layanan.--redirect
:Memaksa HTTPS dengan pengalihan 301.--hsts
:Tambahkan header Strict-Transport-Security ke setiap respons HTTP. Memaksa browser untuk selalu menggunakan TLS untuk domain. Mempertahankan dari SSL/TLS Stripping.--staple-ocsp
:Mengaktifkan Stapel OCSP. Respons OCSP yang valid ditempelkan ke sertifikat yang ditawarkan server selama TLS.
Sertifikat sekarang harus diperoleh dan diinstal secara otomatis.
Langkah 6:Selesaikan Instalasi di Browser Web Anda
Buka https://analytics.example.com
untuk meluncurkan wizard penginstalan berbasis web. Kemudian klik Next
tombol.
Ini akan memeriksa apakah sistem Anda memenuhi persyaratan seperti ekstensi PHP. Jika semua persyaratan sudah terpenuhi, maka klik Next
.
Pada langkah selanjutnya, masukkan nama pengguna MariaDB, kata sandi dan nama database yang Anda buat sebelumnya. Anda dapat menggunakan nilai default di bidang lain.
Setelah mengklik Next, wizard penginstalan akan secara otomatis membuat beberapa tabel di database. Klik Next
untuk melanjutkan.
Di layar berikutnya, buat pengguna admin untuk antarmuka web Matomo.
Setelah membuat pengguna admin, Anda perlu menambahkan situs web untuk mengumpulkan data analitik.
Kemudian Anda perlu menambahkan kode pelacakan JavaScript ke situs web Anda.
Setelah itu selesai. Klik tombol Next dan instalasi Matomo Anda selesai. Sekarang Anda dapat masuk ke dasbor Matomo dan melihat data pengunjung.
Lacak Pengguna dengan JavaScript Dinonaktifkan
Di antarmuka web Matomo, klik ikon roda gigi di pojok kanan atas, lalu buka situs web -> kode pelacakan , dan Anda dapat memilih untuk melacak pengguna dengan JavaScript dinonaktifkan.
Akan ada kode pelacakan baru. Anda perlu mengganti kode pelacakan yang ada dengan yang baru. Sebenarnya, kode pelacakan baru hanya menambahkan baris berikut ke kode pelacakan yang ada.
<noscript><p><img src="//analytics.example.com/matomo.php?idsite=1&rec=1" border:0;" alt="" /></p></noscript>
Saat pengunjung menonaktifkan JavaScript, atau saat JavaScript tidak dapat digunakan, browser pengunjung akan mengunduh gambar.
Menyiapkan Pekerjaan Cron untuk Situs Web dengan Traffic Sedang dan Tinggi
Jika situs web Anda memiliki ribuan tampilan halaman per hari, Anda perlu menyiapkan tugas cron untuk mengarsipkan laporan Matomo secara otomatis. Buat file pekerjaan Cron dengan perintah berikut.
sudo nano /etc/cron.d/matomo-archive
Kemudian tambahkan baris berikut ke file.
MAILTO="[email protected]" 5 * * * * www-data /usr/bin/php /var/www/matomo/console core:archive --url=https://analytics.example.com > /dev/null
Output standar akan dikirim ke /dev/null dan kesalahan standar akan dikirim ke alamat email Anda. Simpan dan tutup file. Pekerjaan Cron ini akan berjalan setiap jam pada 5 menit yang lalu.
Cara Mengatur Notifikasi Email
Jika ada lebih dari satu pengguna, maka ada baiknya Matomo bisa mengirimkan email notifikasi seperti email reset password. Untuk cara setting email server silahkan simak tutorial berikut ini. Catatan bahwa saya sangat merekomendasikan menjalankan server email iRedMail pada OS bersih yang baru. Menginstal iRedMail pada OS yang memiliki aplikasi web lain dapat gagal, dan kemungkinan merusak aplikasi yang ada.
- Cara menyiapkan server email berfitur lengkap dengan mudah di Ubuntu 20.04 dengan iRedMail
Jika Anda tidak ingin menjalankan server email Anda sendiri, Anda dapat mengatur relai SMTP. Silakan lihat tutorial berikut.
- Cara menyiapkan relai SMTP Postfix di server Ubuntu 20.04
Cara Mengatur Geolokasi Akurat dengan GeoIP
Secara default, Matomo menebak lokasi pengunjung berdasarkan bahasa yang mereka gunakan. Ini tidak akurat. Misalnya, banyak pengunjung non-AS memilih En-US sebagai bahasa default untuk OS mereka, sehingga akan ada lebih banyak “pengunjung AS” dalam laporan Matomo. Untuk mendapatkan geolokasi yang lebih baik, kita dapat menggunakan database IP MaxMind GeoLite2 gratis.
Pertama, Anda perlu membuat akun di MaxMind. Maxmind akan mengirimi Anda email. Klik tautan di email untuk mengatur kata sandi, lalu masuk ke akun MaxMind Anda. Selanjutnya, pilih My License Key
di bilah kiri.
Klik Buat Kunci Lisensi Baru tombol.
Beri nama kunci lisensi Anda, dan pilih “No
” untuk “Apakah kunci ini akan digunakan untuk Pembaruan GeoIP?” Kemudian klik tombol Confirm
tombol. Kunci lisensi Anda akan ditampilkan. Perhatikan bahwa kunci lisensi hanya akan ditampilkan sekali, jadi salin ke clipboard Anda.
Selanjutnya, klik ikon roda gigi (Administrasi) di antarmuka web Matomo, buka System
-> Geolocation
. Kemudian unduh database Maxmind GeoIP terbaru ke server Anda. Ganti your_license_key dengan kunci lisensi asli Anda.
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'
Ekstrak tarballnya.
tar xvf GeoLite2-City.tar.gz
Tarball akan diekstrak ke direktori bernama seperti ini GeoLite2-City_20200814
. Kemudian pindahkan file GeoLite2-City.mmdb ke /var/www/matomo/misc/
direktori.
sudo mv GeoLite2-City_20200814/GeoLite2-City.mmdb /var/www/matomo/misc/
Sekarang muat ulang halaman pengaturan Geolokasi Matomo. Pilih penyedia lokasi kedua:GeoIP 2 (Php)
.
Klik tombol Simpan untuk menyimpan pengaturan Anda. Di bagian bawah halaman ini, Anda juga dapat memasukkan URL Unduhan agar Matomo dapat memperbarui database GeoIP secara otomatis.
- URL unduhan MaxMind adalah:https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&suffix=tar.gz&license_key=your_license_key
- Perbarui database setiap minggu.
Menjalankan Matomo Dibalik Cloudflare CDN
Jika Matomo berjalan di belakang Cloudflare CDN, maka Matomo hanya dapat melihat alamat IP server Cloudflare. Untuk menampilkan alamat IP asli pengunjung di Nginx, edit file konfigurasi utama Nginx.
sudo nano /etc/nginx/nginx.conf
Tambahkan arahan berikut di http bagian.
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;
set_real_ip_from mendefinisikan alamat tepercaya, dalam hal ini alamat IP Cloudflare, yang diketahui mengirim alamat pengganti yang benar. Simpan dan tutup file. Kemudian muat ulang Nginx agar perubahan diterapkan.
sudo systemctl reload nginx
Anda dapat memeriksa alamat IP pengunjung di Dasbor Matomo -> Pengunjung -> Log Kunjungan .
Anda mungkin juga ingin memeriksa rentang IP Cloudflare saat ini.
Hal Lain yang Dapat Dilakukan
- Berlangganan feed RSS changelog Matomo untuk mendapatkan notifikasi saat versi baru keluar.
- Periksa tips keamanan Matomo.
- Baca tips penyetelan performa Matomo.
Itu dia! Saya harap tutorial ini membantu Anda menginstal Matomo di server Ubuntu 20.04 dengan Apache atau Nginx. Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan lebih banyak tips dan trik. Hati-hati