Pilihan VPS Terbaik untuk Analitik Web Layan Diri
Ketahui perbandingan Plausible, Umami, Matomo, GoatCounter dan GoAccess pada VPS. Kami kupas keperluan RAM, pangkalan data, storan serta cabaran ad blocker untuk setiap alat.
Alat analitik web layan diri (self-hosted) yang manakah patut anda jalankan pada VPS?
Analitik web layan diri terbahagi kepada dua kategori, dan memilih kategori yang salah akan membebankan anda lebih daripada sekadar tersalah pilih produk. Kategori pertama menjalankan skrip kecil dalam pelayar pelawat dan menyimpan data yang dilaporkan oleh skrip tersebut. Kategori kedua membaca log akses yang telah pun dijana oleh pelayan web anda. Segala keperluan selepas itu, termasuk pangkalan data dan memori yang diperlukan, bergantung kepada pilihan tersebut.
Jawapan ringkas untuk pelayan berspesifikasi rendah: GoatCounter dan Medama sesuai untuk 1 GB RAM, kerana setiap satunya hanyalah satu proses yang beroperasi ke atas satu fail. Umami menambah kontena Postgres dan menyediakan papan pemuka yang mudah difahami oleh pengguna bukan teknikal. Plausible Community Edition dan Rybbit kedua-duanya menjalankan ClickHouse, jadi sediakan 2 GB RAM atau lebih. Matomo ialah produk lengkap dan memerlukan saiz pelayan yang sepadan dengan trafik anda. GoAccess tidak menambah apa-apa pada halaman web kerana ia hanya membaca log yang sedia ada.
Tag skrip atau log pelayan: apa yang boleh dilihat oleh setiap satunya
Tag skrip mengukur pelayar web. Halaman dimuatkan, skrip dijalankan, dan ia menghantar satu permintaan kepada pengumpul data anda. Sebarang perkara yang memutuskan rantaian tersebut tidak dapat dilihat oleh anda: JavaScript dimatikan, senarai penapis yang menyekat permintaan, permintaan yang gagal kepada pengumpul data, atau perangkak (crawler) yang tidak menjalankan skrip.
Penghurai log mengukur permintaan. Pelayan web anda menulis satu baris bagi setiap permintaan sama ada anda memasang apa-apa atau tidak, jadi data tersebut sudah pun berada pada cakera. Ia melihat setiap perangkak dan setiap capaian pada fail yang tidak mempunyai tag skrip. Ia tidak dapat melihat apa yang berlaku di dalam pelayar, dan ia tidak dapat melihat halaman yang dihidangkan daripada cache pelayar atau daripada CDN (rangkaian penghantaran kandungan) di hadapan pelayan anda, kerana permintaan tersebut tidak pernah sampai ke pelayan anda.
Kedua-dua angka tersebut tidak akan sepadan, dan tiada satu pun yang salah. Matomo boleh melakukan kedua-duanya, dan ia mendokumenkan perkara yang tidak dapat diperoleh oleh import log berbanding penjejak JavaScript: resolusi skrin dan tajuk halaman, acara, penjejakan kandungan, peta haba, rakaman sesi dan analitik borang. Senarai itu adalah harga yang perlu dibayar untuk mengira permintaan dan bukannya pelayar.
Trafik bot adalah separuh lagi daripada jurang tersebut. Kiraan berasaskan log merangkumi perangkak kecuali anda menapisnya, dan pada tapak biasa, bahagian perangkak adalah cukup besar untuk mengubah kesimpulan anda. GoAccess dan import log Matomo kedua-duanya menapis bot yang diketahui. Tiada satu pun yang boleh menapis perangkak yang menipu tentang ejen penggunanya (user agent), yang merupakan sebab yang baik untuk menggandingkan sebarang pengiraan berasaskan log dengan menyekat perangkak AI di pelayan dan membaca log selepas penyekatan dilakukan dan bukannya sebelum itu.
GoAccess: analitik daripada log sedia ada
Pasang perisian ini daripada repositori Debian dan Ubuntu projek tersebut, kerana pakej pengedaran biasanya ketinggalan berbanding keluaran terkini.
wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/goaccess.list
sudo apt-get update
sudo apt-get install goaccessKemudian, halakan ia kepada fail log dan jana laporan statik.
goaccess /var/log/nginx/access.log -o ~/report.html --log-format=COMBINEDPerintah tersebut gagal dengan ralat Permission denied bagi pengguna biasa, kerana pada Ubuntu, log nginx dimiliki oleh root dengan kumpulan adm. Tambahkan diri anda ke dalam kumpulan tersebut dengan sudo usermod -aG adm $USER, kemudian log keluar dan masuk semula, kerana keahlian kumpulan hanya dibaca semasa log masuk. Jalankan id dan pastikan adm muncul dalam senarai sebelum anda mencuba semula.
Laporan pada log semasa hanya merangkumi data yang belum dialihkan oleh logrotate. Permintaan semalam disimpan dalam access.log.1 dan fail yang lebih lama telah dimampatkan, jadi paparan mingguan perlu membaca fail yang telah dirotasi juga.
zcat /var/log/nginx/access.log.*.gz | goaccess - --log-format=COMBINED -o ~/last-week.htmlTerdapat juga mod langsung, --real-time-html, yang mengemas kini halaman melalui WebSocket. Mod ini memerlukan port kedua dan peraturan proksi tersendiri. Bagi kebanyakan laman web, laporan setiap jam yang dijana oleh cron sudah memadai dan lebih mudah untuk diselamatkan.
GoatCounter: satu binari Go dan satu fail SQLite
GoatCounter diedarkan sebagai binari yang dikompil secara statik, jadi tiada runtime yang perlu dipasang. Ambil binaan daripada halaman release dan jalankannya, atau gunakan imej yang disediakan.
docker run -p 8080:8080 -v goatcounter-data:/home/goatcounter/goatcounter-data arp242/goatcounterApabila dijalankan sebagai binari, goatcounter serve akan mendengar pada port 8080 dan mencipta SQLite di ./goatcounter-data/db.sqlite3. Cipta tapak pertama daripada baris perintah dan bukannya menggunakan wizard web apabila instans tersebut sudah berada di belakang proksi.
goatcounter db create site -vhost=stats.example.com -user.email=me@example.comIa boleh mengendalikan sijilnya sendiri dengan goatcounter serve -listen=:443 -tls=tls,rdr,acme, menggunakan ACME (automatic certificate management environment), yang berguna pada mesin yang tidak menjalankan perkhidmatan lain. Jika nginx atau Caddy sudah menggunakan port 443, biarkan GoatCounter pada port 8080 dan lakukan proksi kepadanya. Skrip penjejakan adalah sekitar 3.5K mengikut angka projek tersebut, dan terdapat piksel penjejakan untuk halaman yang tidak menyokong JavaScript. Jika SQLite menjadi had pada tapak yang sibuk, binari yang sama boleh menggunakan Postgres dengan goatcounter serve -db 'postgresql+dbname=goatcounter'. Sandaran dilakukan dengan menyalin fail, yang merupakan kelebihan utama bagi bentuk alat ini.
Medama: satu kontena yang mendakwa penggunaan 256 MB
Medama ialah pilihan binari tunggal terbaharu di sini. Ia direka tanpa kuki dan projek tersebut menyatakan penjejaknya bersaiz bawah 1 KB, serta mampu berjalan pada tapak web kecil di mesin maya dengan memori 256 MB. Ini adalah dakwaan yang diterbitkan oleh projek tersebut, bukan angka yang diukur untuk panduan ini.
docker volume create medama-data
docker run -d -p 127.0.0.1:8080:8080 -v medama-data:/app/data ghcr.io/medama-io/medama:latestPerintah rasmi menerbitkan port sebagai 8080:8080. Awalan loopback di atas adalah disengajakan dan bahagian proksi terbalik menjelaskan sebabnya. Log masuk pertama ialah admin dengan kata laluan CHANGE_ME_ON_FIRST_LOGIN, dan nama kata laluan tersebut ialah arahannya.
Satu mod kegagalan yang didokumenkan akan memerangkap anda. Log masuk hanya berfungsi melalui HTTPS atau pada localhost, jadi jika anda menyediakan proksi sebelum sijil, borang tersebut akan menolak kata laluan yang betul dan sebabnya tidak dipaparkan. Selesaikan persediaan TLS (transport layer security) terlebih dahulu, kemudian log masuk.
Umami: Postgres, dan papan pemuka yang dikenali ramai
git clone https://github.com/umami-software/umami.git
cd umami
docker compose up -dPerintah tersebut memulakan aplikasi pada port 3000 dengan bekas PostgreSQL di sampingnya. Dokumentasi menetapkan PostgreSQL v12.14 sebagai versi minimum, dan Node.js 18.18 atau lebih baharu jika anda membina daripada sumber. Terdapat imej prabina, docker.umami.is/umami-software/umami:postgresql-latest, yang memerlukan DATABASE_URL dihalakan ke pangkalan data yang sudah anda jalankan.
Log masuk pertama ialah admin dengan kata laluan umami. Tukar kata laluan tersebut sebelum anda menghalakan DNS ke pelayan, kerana instans tersebut boleh dicapai dari internet sebaik sahaja rekod DNS selesai diselesaikan dan proksi mula menjawab. Untuk butiran Compose, fail persekitaran dan polisi mulakan semula, lihat stak Docker Compose pada VPS daripada menyalin stak yang belum anda baca.
Jejak memori terdiri daripada proses Node dan Postgres. Ini lebih berat berbanding binari tunggal dan jauh lebih ringan daripada mana-mana aplikasi yang menjalankan ClickHouse.
Plausible Community Edition: ClickHouse menetapkan had minimum RAM
git clone -b v3.2.1 --single-branch https://github.com/plausible/community-edition plausible-ce
cd plausible-ce
touch .env
echo "BASE_URL=https://stats.example.com" >> .env
echo "SECRET_KEY_BASE=$(openssl rand -base64 48)" >> .env
docker compose up -dVersi v3.2.1 adalah versi semasa setakat Ogos 2026, dan arahan klon menetapkan versi tersebut secara sengaja. Stak ini terdiri daripada tiga bahagian: aplikasi, Postgres untuk akaun dan tetapan, serta ClickHouse untuk data acara. SECRET_KEY_BASE mestilah sekurang-kurangnya rentetan 64 bait, iaitu hasil yang dijana oleh panggilan openssl.
Keperluan Plausible sendiri meminta sekurang-kurangnya 2 GB RAM supaya ClickHouse dan aplikasi tidak dihentikan oleh out of memory killer, serta CPU yang menyokong SSE 4.2 atau NEON, yang diperlukan oleh ClickHouse. Keperluan kedua itu wajar diperiksa sebelum anda membeli, dan ia merupakan salah satu perbezaan praktikal dalam memilih antara VPS ARM dan x86. ClickHouse juga akan menggunakan sebanyak mungkin memori yang difikirkan tersedia, jadi pada pelayan kongsi, tetapkan had maksimum seperti yang diterangkan dalam mengehadkan memori kontena dalam Compose.
BASE_URL mestilah sama dengan URL awam dengan tepat. Apabila ia tidak sama, anda log masuk, aplikasi mengubah hala ke hos yang salah, dan kuki sesi ditulis untuk domain yang tidak dilayari oleh pelayar anda, menyebabkan anda kembali ke borang log masuk tanpa sebarang mesej ralat.
Fail compose yang dibekalkan tidak menerbitkan port, kerana jangkaannya ialah terdapat proksi di hadapan. Tambahkan override yang menerbitkan port aplikasi lalai pada loopback sahaja.
cat > compose.override.yml << EOF
services:
plausible:
ports:
- 127.0.0.1:8000:8000
EOFMatomo: produk penuh dan pelayan yang diperlukannya
Matomo berjalan menggunakan PHP dengan MySQL atau MariaDB, yang bermaksud ia lebih sesuai dengan susunan web klasik berbanding susunan kontena. Ia juga merupakan satu-satunya alat di sini yang menerbitkan panduan perkakasan mengikut jumlah trafik.
The data behind this chart
[
{
"label": "100K/month",
"cpu_cores": 2,
"ram_gb": 2,
"disk_gb": 50
},
{
"label": "1M/month",
"cpu_cores": 4,
"ram_gb": 8,
"disk_gb": 250
},
{
"label": "10M/month",
"cpu_cores": 8,
"ram_gb": 16,
"disk_gb": 400
}
]Itu adalah keperluan minimum yang diterbitkan oleh Matomo setakat Ogos 2026, bukan ukuran yang diambil untuk panduan ini. Sehingga 100,000 paparan halaman sebulan, ia memerlukan 2 teras CPU, 2 GB RAM dan 50 GB SSD, dan satu pelayan menempatkan kedua-dua aplikasi serta pangkalan data. Pada 1M/month ia menjadi 8 GB RAM dan 250 GB cakera. Pada 10M/month Matomo mengesyorkan dua pelayan, dan baris terakhir menunjukkan pelayan pangkalan data: 16 GB RAM dan 400 GB cakera. Baca angka cakera tersebut bersebelahan dengan pilihan binari tunggal, di mana keseluruhan set data adalah satu fail SQLite.
Pengarkiban adalah perkara yang mengejutkan pengguna. Secara lalai, Matomo membina laporannya apabila seseorang membuka papan pemuka, jadi apabila data bertambah, papan pemuka menjadi perlahan dan akhirnya tamat masa. Penyelesaian yang didokumentasikan adalah dengan mematikan pengarkiban yang dicetuskan pelayar dalam tetapan umum dan menjalankan pengarkib daripada cron sebaliknya, sebagai pengguna yang memiliki fail Matomo, dari direktori Matomo.
php console core:archive --url=https://analytics.example.comMatomo juga menyimpan jadual log mentah di samping jadual laporan yang telah diproses, dan ia boleh memadam data mentah lama serta laporan lama mengikut jadual. Hidupkan fungsi ini semasa anda memasang, bukan apabila cakera sudah penuh. Matomo juga boleh mengimport log akses pelayan, yang menjadikannya satu-satunya produk di sini yang merangkumi kedua-dua keluarga tersebut serentak.
Rybbit dan stack yang lebih baharu
git clone https://github.com/rybbit-io/rybbit.git
cd rybbit
chmod +x *.sh
./setup.sh your.domain.nameRybbit merupakan pendatang baharu dengan papan pemuka yang moden. Skrip persediaan menulis fail persekitaran dan menjalankan stack tersebut menggunakan Docker Compose. Ia menjalankan ClickHouse dan menyertakan Caddy sebagai pelayan webnya sendiri, yang mengambil port 443 serta meminta sijil untuk domain yang anda masukkan. Pada pelayan yang mana nginx sudah menggunakan port 443, skrip tersebut tidak akan dapat melakukan binding, jadi gunakan kaedah Compose manual projek tersebut dan letakkannya di belakang proksi sedia ada anda. Dokumentasi menyatakan keperluan sekurang-kurangnya 2 GB RAM, ujian pada Ubuntu 24 LTS, dan ARMv8.2-A atau lebih baharu pada ARM disebabkan oleh ClickHouse.
Amaran jujur untuk mana-mana projek baharu: ciri-ciri ditambah dengan pantas dan begitu juga perubahan yang memecahkan keserasian (breaking changes). Tetapkan tag versi, baca nota keluaran (release notes) sebelum anda melakukan pull, dan buat sandaran pangkalan data terlebih dahulu.
Pengekalan dan pertumbuhan cakera: ukur pada pelayan anda sendiri
Pertumbuhan cakera bergantung pada perkara yang disimpan oleh alat tersebut bagi setiap peristiwa. GoatCounter mengumpulkan hit ke dalam pembilang, jadi failnya berkembang mengikut halaman dan hari yang unik berbanding volum mentah. Umami dan Matomo menyimpan baris bagi setiap peristiwa, dan Matomo menyimpan jadual laporan yang diproses di atas jadual mentah. ClickHouse menyimpan peristiwa dalam lajur dan memampatkannya dengan padat, itulah sebabnya Plausible mampu mengendalikan volum yang akan membebankan storan baris.
Panduan ini tidak menerbitkan angka megabait bagi setiap sejuta paparan halaman, kerana ia tidak mengukur angka tersebut pada trafik anda. Lakukan pengukuran itu sendiri. Laraskan nama servis dan pengguna agar sepadan dengan fail Compose anda sendiri.
du -h goatcounter-data/db.sqlite3
docker compose exec db psql -U umami -d umami -c "SELECT pg_size_pretty(pg_database_size('umami'));"
docker compose exec plausible_events_db clickhouse-client -q "SELECT formatReadableSize(sum(bytes_on_disk)) FROM system.parts WHERE active"Rekodkan nombor tersebut, tunggu selama seminggu, rekodkan semula, dan bahagikan perbezaannya dengan paparan halaman yang dilaporkan oleh papan pemuka untuk minggu tersebut. Angka itu adalah mengenai tapak dan penapisan bot anda, jadi ia lebih bernilai daripada sebarang purata yang diterbitkan. Kemudian, tetapkan had pengekalan sementara nombor tersebut masih kecil. Cakera yang penuh akan menjatuhkan setiap servis pada VPS, bukan sahaja analitik, yang merupakan hujah terkuat untuk menyimpan volum pangkalan data di tempat yang df -h akan beri amaran kepada anda. Risiko itu memerlukan perhatian lebih pada pelayan yang sudah menyimpan sesuatu yang besar, kerana pelayan foto yang dihoskan sendiri akan menghabiskan ruang cakera jauh lebih awal sebelum mana-mana pangkalan data analitik menghampirinya.
Cara ia berfungsi di sebalik reverse proxy pada subdomain
Letakkan pengumpul pada subdomain bagi tapak yang diukurnya, contohnya stats.example.com. Ini menjadikan permintaan pengumpul sebagai pihak pertama, jadi ia tidak terjejas oleh peraturan pelayar yang menyekat permintaan pihak ketiga.
Bind aplikasi kepada loopback apabila anda menerbitkan port kontena. Docker menulis peraturan firewallnya sendiri sebelum ufw, jadi kontena yang diterbitkan sebagai -p 3000:3000 boleh dicapai dari internet walaupun ufw status menyatakan port tersebut dinafikan. Uji dari mesin lain dengan curl http://SERVER_IP:3000 dan anda akan mendapat papan pemuka tersebut. Jika diterbitkan sebagai -p 127.0.0.1:3000:3000, ujian yang sama memberikan Connection refused dan hanya proksi yang boleh mencapainya.
server {
listen 443 ssl;
server_name stats.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Header pemajuan (forwarding headers) bukanlah pilihan di sini. Tanpa X-Forwarded-For, setiap lawatan tiba dari 127.0.0.1, jadi laporan negara menjadi kosong dan pelawat unik merosot kepada satu. Setiap projek menentukan header mana yang dipercayai dan di bawah tetapan apa, jadi semak dokumentasi proksinya sekali dan jangan membuat andaian. Caddy menetapkan header tersebut secara automatik, dan Caddyfile untuk tugas yang sama hanya memerlukan dua baris.
stats.example.com {
reverse_proxy 127.0.0.1:3000
}Jika anda belum memilih proksi, perbandingan antara nginx, Caddy dan Traefik merangkumi proksi mana yang sesuai untuk satu pelayan dengan beberapa subdomain.
Adakah anda masih memerlukan sepanduk kuki jika anda melakukan self-hosting?
Self-hosting mengubah pihak yang memegang data. Ia tidak mengubah apa yang dinyatakan oleh undang-undang mengenai data tersebut. Asingkan dua peraturan ini. Peraturan persetujuan ePrivacy adalah mengenai menyimpan atau membaca apa-apa pada peranti pelawat, jadi alat yang tidak menetapkan kuki dan tidak menulis apa-apa ke storan setempat berada di luar keperluan khusus tersebut. GDPR adalah mengenai pemprosesan data peribadi, dan alamat IP dikira sebagai data peribadi, jadi anda masih memerlukan asas yang sah, had pengekalan, dan jawapan apabila seseorang bertanya tentang apa yang anda simpan mengenai mereka.
Plausible, Umami, GoatCounter dan Medama tidak menetapkan kuki secara lalai. Apa yang diperoleh oleh setiap satunya pula berbeza mengikut projek dan berubah antara versi, jadi baca dokumentasi privasi projek itu sendiri dan bukannya ringkasan. Matomo menyediakan fungsi penganuniman IP dan titik akhir opt-out yang anda aktifkan dalam antara muka pentadbir.
Pihak pengawal selia mencapai kesimpulan yang berbeza di negara yang berbeza. CNIL di Perancis, sebagai contoh, menerbitkan syarat-syarat yang membolehkan pengukuran audiens dikecualikan daripada persetujuan. Bahagian ini merupakan ringkasan fakta dan bukan nasihat undang-undang. Untuk tapak sebenar dengan pengguna sebenar, tanya peguam dalam bidang kuasa anda.
Satu perkara yang sering terlepas pandang oleh orang ramai: log akses juga merupakan data peribadi. GoAccess tidak menambah skrip pada halaman dan masih memproses alamat IP, jadi analitik berasaskan log tidak secara automatik berada di luar peraturan tersebut.
Penyekat iklan, dan sebab angka anda akan menurun
Senarai penapis memadankan nama hos dan corak URL. Produk analitik yang dihoskan mudah dipadankan kerana semua orang memuatkannya daripada nama hos yang sama dan terkenal. Memindahkan pengumpul ke subdomain anda sendiri membuang nama hos tersebut daripada permintaan, dan menghidangkan skrip daripada laluan yang anda pilih membuang nama fail yang terkenal itu. Kedua-duanya mengubah perkara yang perlu dipadankan oleh senarai tersebut.
Catatan ini tidak menyatakan kadar hit, kerana ia tidak mengukurnya. Bahagian pelawat yang menyekat sesuatu persediaan bergantung pada khalayak anda, dan khalayak pembangun menyekat jauh lebih banyak daripada khalayak umum. Ukur jurang anda sendiri sebaliknya. Sepanjang minggu yang sama, kira permintaan untuk halaman HTML dalam log akses dengan GoAccess, dan bandingkan dengan paparan halaman yang dilaporkan oleh alat berasaskan skrip anda. Perbezaannya ialah lawatan yang disekat ditambah halaman yang dihidangkan daripada cache, di tapak anda.
Jangkakan jumlah keseluruhan berubah pada hari anda bertukar daripada produk yang dihoskan, dan jangkakan sebahagian daripada perubahan itu tiada kaitan dengan penyekatan. Produk mempunyai perbezaan pendapat tentang apa itu paparan halaman, sama ada perubahan laluan di dalam aplikasi satu halaman dikira sebagai satu, dan bila sesuatu sesi berakhir. Bandingkan trend merentas minggu sebelum anda membuat kesimpulan bahawa trafik telah menurun.
Pilihan untuk setiap tapak
- Tapak peribadi atau blog dengan kira-kira 50,000 paparan halaman sebulan: GoatCounter atau Medama, pada VPS 1 GB, dengan sandaran berupa salinan fail.
- Tapak yang tidak membenarkan penambahan skrip, atau audiens yang menggunakan penyekat kandungan secara meluas: GoAccess melalui log sedia ada, mengikut jadual.
- Tapak perniagaan kecil yang memerlukan pihak lain membaca papan pemuka: Umami, dengan kontena Postgres miliknya.
- Tapak yang memerlukan matlamat dan corong (funnels), pada pelayan dengan RAM 2 GB atau lebih: Plausible Community Edition, atau Rybbit jika anda mahukan papan pemuka yang lebih baharu dan menerima projek yang lebih muda.
- Banyak tapak, banyak akaun pengguna, atau keperluan untuk menyimpan data mentah di bawah polisi pengekalan anda sendiri: Matomo, dengan saiz mengikut panduan yang diterbitkan di atas.
Mulakan dengan alat paling kecil yang menjawab soalan sebenar anda. Berpindah daripada GoatCounter ke Plausible kemudiannya akan menyebabkan anda kehilangan subdomain dan sebahagian sejarah data. Berpindah daripada Matomo ke mana-mana alat lain memerlukan migrasi yang rumit. Jika anda masih menentukan apa lagi yang perlu diletakkan pada pelayan yang sama, ringkasan self-hosting yang lebih luas merangkumi perkara yang sesuai diletakkan di sebelahnya, dan jika apa yang anda benar-benar mahukan ialah pengesanan tahap permintaan (request level tracing) bagi sesuatu aplikasi dan bukannya kiraan pelawat, perkhidmatan kebolehcerapan (observability) yang dihoskan sendiri adalah alat yang sesuai untuk tugas tersebut.
FAQ
Adakah analitik layan diri (self-hosted) menghapuskan keperluan untuk sepanduk kuki?
Tidak, dan kedua-dua perkara ini adalah berasingan. Peraturan persetujuan di bawah ePrivacy meliputi penyimpanan atau pembacaan sesuatu pada peranti pelawat, jadi alat yang tidak menetapkan kuki dan tidak menulis apa-apa ke storan setempat tidak tertakluk kepada keperluan khusus tersebut. GDPR adalah peraturan yang berbeza dan meliputi pemprosesan data peribadi, manakala alamat IP adalah data peribadi, jadi anda masih memerlukan asas yang sah dan had pengekalan walaupun tanpa kuki. Layan diri memindahkan data ke pelayan anda dan menjadikan anda pihak yang bertanggungjawab ke atasnya. Semak panduan pengawal selia anda sendiri dan dapatkan nasihat peguam untuk kes anda.
Berapakah RAM yang diperlukan oleh analitik layan diri pada VPS?
Storan data yang menentukan, bukan papan pemuka. GoatCounter dan Medama berjalan sebagai satu proses ke atas satu fail, dan dokumentasi Medama menyatakan tapak kecil boleh berjalan pada mesin dengan 256 MB. Umami menambah kontena Postgres di samping aplikasi Node. Plausible Community Edition dan Rybbit kedua-duanya menjalankan ClickHouse, dan kedua-dua projek menyatakan sekurang-kurangnya 2 GB. Panduan Matomo sendiri bermula pada 2 teras CPU dan 2 GB RAM untuk sehingga 100,000 paparan halaman sebulan.
Mengapakah angka layan diri saya lebih rendah daripada analitik yang saya ganti?
Dua punca, dan kedua-duanya adalah nyata. Senarai penapis menyekat beberapa permintaan pengumpul, jadi setiap alat berasaskan skrip kehilangan lawatan tersebut. Produk-produk ini juga mengira secara berbeza, memandangkan takrifan paparan halaman dan masa tamat sesi berbeza antara satu sama lain. Bandingkan satu minggu permintaan halaman HTML daripada log akses anda dengan minggu yang sama bagi paparan halaman berasaskan skrip. Jurang tersebut adalah lawatan yang disekat ditambah halaman yang dicache, diukur pada tapak anda sendiri dan bukannya dipinjam daripada kadar yang diterbitkan oleh orang lain.
Bolehkah saya menjalankan Plausible atau Rybbit pada VPS ARM?
Kedua-duanya menjalankan ClickHouse, dan ClickHouse memerlukan SSE 4.2 pada x86 atau NEON pada ARM. Keperluan Plausible menyatakan perkara tersebut dengan tepat, dan dokumen Rybbit menyatakan sistem ARM memerlukan ARMv8.2-A atau lebih baharu. Teras pelayan ARM semasa memenuhi syarat tersebut manakala yang lebih lama tidak, dan kegagalan tersebut muncul sebagai ClickHouse enggan bermula dengan ralat set arahan dan bukannya apa-apa dalam log aplikasi. Pada kotak ARM kecil, alat fail tunggal mengelakkan persoalan ini, kerana tiada satu pun daripadanya menjalankan ClickHouse.
Patutkah saya menghurai log pelayan dan bukannya menggunakan skrip penjejakan?
Gunakan penghuraian log apabila anda tidak boleh menambah skrip, apabila audiens anda banyak menyekat, atau apabila anda mahukan kiraan yang merangkumi crawler. GoAccess membaca log yang telah ditulis oleh pelayan anda, jadi ia tidak menambah beban halaman dan tidak memerlukan pangkalan data. Anda kehilangan segala yang berlaku di dalam pelayar, dan anda terlepas sebarang halaman yang dihidangkan daripada CDN atau cache pelayar, kerana permintaan tersebut tidak pernah sampai ke pelayan anda. Banyak tapak menjalankan kedua-duanya dan menganggapnya sebagai dua ukuran yang berbeza.