Zelfgehoste webanalyse op een VPS: de beste opties
Kies de juiste webanalysetool voor uw VPS. Wij vergelijken Plausible, Umami, Matomo, GoatCounter en GoAccess op basis van RAM-gebruik, databasebeheer en ad-blocker detectie.
Welke zelfgehoste webanalysetool kunt u het beste op een VPS draaien?
Zelfgehoste webanalyse is onder te verdelen in twee categorieën, en het kiezen van de verkeerde categorie kost u meer dan het kiezen van het verkeerde product. De ene categorie voert een klein script uit in de browser van de bezoeker en slaat op wat dat script rapporteert. De andere categorie leest het access log dat uw webserver al schrijft. Alles wat daarna komt, inclusief de database en het benodigde geheugen, vloeit voort uit die ene keuze.
Het korte antwoord voor een kleine server: GoatCounter en Medama passen op 1 GB, omdat elk daarvan één proces is dat één bestand gebruikt. Umami voegt een Postgres-container toe en biedt een dashboard dat ook voor niet-technische gebruikers leesbaar is. Plausible Community Edition en Rybbit draaien beide op ClickHouse, dus houd rekening met 2 GB RAM of meer. Matomo is het volledige product en vereist een server die is afgestemd op uw verkeersvolume. GoAccess voegt niets toe aan de pagina, omdat het een reeds bestaand logbestand leest.
Script-tag of serverlog: wat elk kan waarnemen
Een script-tag meet browsers. De pagina laadt, het script wordt uitgevoerd en er wordt één verzoek naar uw collector gestuurd. Alles wat die keten doorbreekt, is voor u onzichtbaar: uitgeschakelde JavaScript, een filterlijst die het verzoek blokkeert, een mislukt verzoek aan de collector of een crawler die geen scripts uitvoert.
Een log-parser meet verzoeken. Uw webserver schrijft per verzoek één regel, ongeacht of u iets installeert; de data staat dus al op de schijf. Het ziet elke crawler en elke hit op een bestand dat geen script-tag bevat. Het kan niet zien wat er in de browser is gebeurd en het kan geen pagina zien die vanuit het browser-cachegeheugen of vanaf een CDN (content delivery network) voor uw server wordt geserveerd, omdat dat verzoek uw server nooit heeft bereikt.
De twee getallen zullen niet overeenkomen en geen van beide is onjuist. Matomo kan beide methoden gebruiken en documenteert wat de log-import mist in vergelijking met de JavaScript-tracker: schermresolutie en paginatitels, events, content-tracking, heatmaps, sessie-opnames en formulier-analytics. Die lijst is de prijs die u betaalt voor het tellen van verzoeken in plaats van browsers.
Bot-verkeer is de andere helft van het verschil. Op logs gebaseerde tellingen bevatten crawlers, tenzij u deze filtert, en op een gemiddelde site is het aandeel crawlers groot genoeg om uw conclusies te beïnvloeden. Zowel GoAccess als de log-import van Matomo filteren bekende bots. Geen van beide kan een crawler filteren die liegt over zijn user agent; dit is een goede reden om elke op logs gebaseerde telling te combineren met het blokkeren van AI-crawlers op serverniveau en het logbestand te lezen nadat de blokkade is toegepast in plaats van ervoor.
GoAccess: analyses op basis van uw bestaande logs
Installeer de software vanuit de officiële Debian- en Ubuntu-repository van het project, aangezien pakketten in de distributie-repositories vaak achterlopen op de nieuwste releases.
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 goaccessWijs de tool vervolgens aan naar het logbestand en genereer een statisch rapport.
goaccess /var/log/nginx/access.log -o ~/report.html --log-format=COMBINEDDit commando faalt met Permission denied voor een normale gebruiker, omdat het nginx-logbestand op Ubuntu eigendom is van root met de groep adm. Voeg uzelf toe aan deze groep met sudo usermod -aG adm $USER, log daarna uit en weer in, aangezien groepslidmaatschappen worden ingelezen bij het inloggen. Voer id uit en controleer of adm in de lijst staat voordat u het opnieuw probeert.
Een rapport op basis van het actieve logbestand bevat alleen gegevens die nog niet door logrotate zijn verplaatst. De verzoeken van gisteren staan in access.log.1 en oudere bestanden zijn gecomprimeerd; voor een wekelijks overzicht moeten daarom ook de geroteerde bestanden worden ingelezen.
zcat /var/log/nginx/access.log.*.gz | goaccess - --log-format=COMBINED -o ~/last-week.htmlEr is ook een live-modus, --real-time-html, die de pagina bijwerkt via een WebSocket. Hiervoor is een tweede poort en een eigen proxy-regel vereist. Voor de meeste websites volstaat een uurlijks rapport dat door cron wordt gegenereerd; dit is eenvoudiger te beveiligen.
GoatCounter: één Go-binary en één SQLite-bestand
GoatCounter wordt geleverd als een statisch gecompileerde binary, waardoor er geen runtime-omgeving geïnstalleerd hoeft te worden. Gebruik een build van de release-pagina en voer deze uit, of gebruik de image.
docker run -p 8080:8080 -v goatcounter-data:/home/goatcounter/goatcounter-data arp242/goatcounterBij uitvoering als binary luistert goatcounter serve op poort 8080 en maakt het een SQLite-bestand aan op ./goatcounter-data/db.sqlite3. Maak de eerste site aan via de command line in plaats van de web-wizard wanneer de instantie zich al achter een proxy bevindt.
goatcounter db create site -vhost=stats.example.com -user.email=me@example.comDe applicatie kan eigen certificaten beheren met goatcounter serve -listen=:443 -tls=tls,rdr,acme via ACME (automatic certificate management environment), wat nuttig is op een server die geen andere diensten draait. Wanneer Nginx of Caddy al poort 443 beheert, laat GoatCounter dan op 8080 draaien en proxy het verkeer daarheen. Het tracking-script is volgens het project zelf ongeveer 3.5K groot en er is een tracking-pixel beschikbaar voor pagina's zonder JavaScript. Als SQLite de beperkende factor wordt op een drukke site, ondersteunt dezelfde binary ook Postgres via goatcounter serve -db 'postgresql+dbname=goatcounter'. Back-ups bestaan uit het kopiëren van een bestand, wat het belangrijkste argument is voor deze opzet van de tool.
Medama: een enkele container die 256 MB claimt
Medama is de nieuwste optie in deze lijst die uit een enkel binary-bestand bestaat. Het is ontworpen zonder cookies en het project claimt een tracker van minder dan 1 KB, plus dat kleine sites kunnen draaien op virtuele machines met 256 MB geheugen. Dit zijn de gepubliceerde claims van het project, geen cijfers die voor deze handleiding zijn gemeten.
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:latestHet officiële commando publiceert de poort als 8080:8080. Het loopback-prefix hierboven is bewust gekozen en de sectie over de reverse proxy legt uit waarom. De eerste inloggegevens zijn admin met het wachtwoord CHANGE_ME_ON_FIRST_LOGIN, en de naam van dat wachtwoord is de instructie.
Eén gedocumenteerde foutmodus zal u opvallen. Inloggen werkt alleen via HTTPS of op localhost, dus als u de proxy instelt vóór het certificaat, weigert het formulier een correct wachtwoord zonder dat de reden wordt getoond. Voltooi eerst de TLS (transport layer security) configuratie en log daarna in.
Umami: Postgres en een dashboard dat mensen herkennen
git clone https://github.com/umami-software/umami.git
cd umami
docker compose up -dHiermee start de applicatie op poort 3000 met een PostgreSQL-container ernaast. De documentatie geeft PostgreSQL v12.14 op als minimum, en Node.js 18.18 of nieuwer als u vanaf de broncode bouwt. Er is een vooraf gebouwde image, docker.umami.is/umami-software/umami:postgresql-latest, die DATABASE_URL nodig heeft om naar een database te verwijzen die u al draait.
De eerste inloggegevens zijn admin met het wachtwoord umami. Wijzig dit voordat u DNS naar de server laat wijzen, omdat de instantie vanaf het internet bereikbaar is zodra het record is opgelost en de proxy antwoordt. Voor de details over Compose, omgevingsbestanden en het herstartbeleid, zie een Docker Compose stack op een VPS in plaats van een stack te kopiëren die u niet heeft gelezen.
De footprint bestaat uit een Node-proces plus Postgres. Dat is zwaarder dan een enkel binair bestand en veel lichter dan alles wat op ClickHouse draait.
Plausible Community Edition: ClickHouse stelt de ondergrens voor RAM in
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 -dVersie v3.2.1 is de huidige versie per augustus 2026, en het clone-commando zet deze versie bewust vast. De stack bestaat uit drie onderdelen: de applicatie, Postgres voor accounts en instellingen, en ClickHouse voor de event-data. SECRET_KEY_BASE moet een string van minimaal 64 bytes zijn, wat het resultaat is van de openssl-aanroep.
De vereisten van Plausible zelf vragen om minimaal 2 GB RAM zodat ClickHouse en de applicatie niet door de out of memory killer worden beëindigd, en een CPU die SSE 4.2 of NEON ondersteunt, wat ClickHouse nodig heeft. Die tweede vereiste is het controleren waard voordat u tot aankoop overgaat, en het is een van de praktische verschillen bij het kiezen tussen een ARM- en een x86-VPS. ClickHouse zal bovendien zoveel geheugen gebruiken als het denkt dat beschikbaar is; stel daarom op een gedeelde server een maximum in zoals beschreven in het beperken van containergeheugen in Compose.
BASE_URL moet exact gelijk zijn aan de publieke URL. Wanneer dit niet het geval is, logt u in, wordt de app omgeleid naar de verkeerde host en wordt de sessie-cookie geschreven voor een domein waarop uw browser zich niet bevindt, waardoor u zonder foutmelding weer op het inlogformulier belandt.
Het meegeleverde compose-bestand publiceert geen poort, aangezien de verwachting is dat er een proxy voor staat. Voeg een override toe die de standaard applicatiepoort alleen op localhost publiceert.
cat > compose.override.yml << EOF
services:
plausible:
ports:
- 127.0.0.1:8000:8000
EOFMatomo: het volledige product en de vereiste server
Matomo draait op PHP met MySQL of MariaDB, wat betekent dat het in de klassieke webstack past in plaats van in een containerstack. Het is tevens de enige tool in dit overzicht die hardware-richtlijnen publiceert op basis van het verkeersvolume.
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
}
]Dit zijn de door Matomo gepubliceerde minima per augustus 2026; het zijn geen metingen die voor deze handleiding zijn uitgevoerd. Tot 100.000 paginaweergaven per maand vraagt het om 2 CPU-cores, 2 GB RAM en 50 GB SSD, waarbij één server zowel de applicatie als de database host. Bij 1M/month wordt dit 8 GB RAM en 250 GB schijfruimte. Bij 10M/month adviseert Matomo twee servers, en de laatste rij toont de databaseserver: 16 GB RAM en 400 GB schijfruimte. Lees deze schijfcijfers naast de opties voor het enkele binaire bestand, waarbij de gehele dataset uit één SQLite-bestand bestaat.
Archivering is wat mensen vaak verrast. Standaard bouwt Matomo zijn rapporten op wanneer iemand het dashboard opent; naarmate de data groeit, wordt het dashboard trager en treedt er uiteindelijk een time-out op. De gedocumenteerde oplossing is om de door de browser geactiveerde archivering uit te schakelen in de algemene instellingen en in plaats daarvan de archiver via cron uit te voeren, als de gebruiker die eigenaar is van de Matomo-bestanden, vanuit de Matomo-directory.
php console core:archive --url=https://analytics.example.comMatomo bewaart ook ruwe logtabellen naast de verwerkte rapporttabellen, en het kan oude ruwe data en oude rapporten volgens een schema verwijderen. Schakel dit in bij de installatie, niet pas wanneer de schijf vol is. Matomo kan ook server-toegangslogs importeren, wat het het enige product hier maakt dat beide families tegelijkertijd dekt.
Rybbit en de nieuwere stacks
git clone https://github.com/rybbit-io/rybbit.git
cd rybbit
chmod +x *.sh
./setup.sh your.domain.nameRybbit is een recente nieuwkomer met een modern dashboard. Het installatiescript schrijft het omgevingsbestand en start de stack met Docker Compose. Het draait ClickHouse en levert Caddy als eigen webserver, die poort 443 inneemt en een certificaat aanvraagt voor het opgegeven domein. Op een server waar nginx al poort 443 gebruikt, zal het script niet kunnen binden. Gebruik in dat geval de handmatige Compose-methode van het project en plaats de service achter uw bestaande proxy. De documentatie vereist minimaal 2 GB RAM, test op Ubuntu 24 LTS, en vanwege ClickHouse is op ARM-architectuur minimaal ARMv8.2-A of nieuwer vereist.
De eerlijke waarschuwing voor elk jong project: functies worden snel toegevoegd, maar dat geldt ook voor ingrijpende wijzigingen. Pin een specifieke versie (tag), lees de release notes voordat u een update uitvoert en maak eerst een back-up van de database.
Retentie en schijfgroei: meet het op uw eigen server
Schijfgroei hangt af van wat de tool per gebeurtenis opslaat. GoatCounter aggregeert hits in tellers, waardoor het bestand eerder groeit door het aantal unieke pagina's en dagen dan door het ruwe volume. Umami en Matomo slaan rijen op per gebeurtenis, en Matomo slaat bovenop de ruwe gegevens ook verwerkte rapporttabellen op. ClickHouse slaat gebeurtenissen op in kolommen en comprimeert deze sterk; daarom kan Plausible een volume aan dat een rij-gebaseerde database zou overbelasten.
Deze handleiding publiceert geen cijfer voor het aantal megabytes per miljoen paginaweergaven, omdat dit niet is gemeten op uw verkeer. Voer de meting zelf uit. Pas de service- en gebruikersnamen aan zodat deze overeenkomen met uw eigen Compose-bestand.
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"Noteer het getal, wacht een week, noteer het opnieuw en deel het verschil door het aantal paginaweergaven dat het dashboard voor die week rapporteert. Dat cijfer is specifiek voor uw site en uw bot-filtering, waardoor het waardevoller is dan elk gepubliceerd gemiddelde. Stel vervolgens een retentielimiet in terwijl het getal nog klein is. Een volle schijf legt elke service op de VPS plat, niet alleen de analytics; dit is het sterkste argument om het databasevolume op een locatie te plaatsen waar df -h u voor kan waarschuwen. Dat risico verdient extra aandacht op een server die al omvangrijke data bevat, omdat een zelfgehoste fotoserver de schijf veel eerder zal uitputten dan een analytics-database ooit zal doen.
Hoe het zich gedraagt achter een reverse proxy op een subdomein
Plaats de collector op een subdomein van de site die het meet, zoals stats.example.com. Hierdoor wordt het verzoek van de collector als first-party beschouwd, waardoor het niet wordt geblokkeerd door browserregels die third-party verzoeken tegenhouden.
Bind de applicatie aan loopback wanneer u de containerpoort publiceert. Docker schrijft eigen firewallregels die voorrang hebben op ufw, waardoor een container die is gepubliceerd als -p 3000:3000 bereikbaar is vanaf het internet, zelfs als ufw status aangeeft dat de poort is geweigerd. Test dit vanaf een andere machine met curl http://SERVER_IP:3000 en u zult het dashboard zien. Wanneer gepubliceerd als -p 127.0.0.1:3000:3000, geeft dezelfde test Connection refused en kan alleen de proxy de service bereiken.
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;
}
}De forwarding headers zijn hier niet optioneel. Zonder X-Forwarded-For komt elk bezoek binnen vanaf 127.0.0.1, waardoor het landenoverzicht leeg blijft en het aantal unieke bezoekers terugloopt naar één. Elk project bepaalt zelf welke header het vertrouwt en onder welke instelling; raadpleeg daarom de proxy-documentatie van het project in plaats van aannames te doen. Caddy stelt deze headers zelf in en een Caddyfile voor dezelfde taak bestaat uit slechts twee regels.
stats.example.com {
reverse_proxy 127.0.0.1:3000
}Als u nog geen proxy heeft gekozen, behandelt de vergelijking van nginx, Caddy en Traefik welke optie het meest geschikt is voor een enkele server met een beperkt aantal subdomeinen.
Hebt u nog steeds een cookiebanner nodig als u zelf host?
Zelf-hosting verandert wie de gegevens beheert. Het verandert niets aan wat de wet zegt over de gegevens. Houd twee regels uit elkaar. De ePrivacy-toestemmingsregel gaat over het opslaan of lezen van gegevens op het apparaat van de bezoeker; een tool die geen cookies plaatst en niets naar de lokale opslag schrijft, valt dus buiten die specifieke vereiste. De AVG (GDPR) gaat over het verwerken van persoonsgegevens, en een IP-adres geldt als een persoonsgegeven. U hebt dus nog steeds een wettelijke grondslag, een bewaartermijn en een antwoord nodig wanneer iemand vraagt welke gegevens u over hen hebt opgeslagen.
Plausible, Umami, GoatCounter en Medama plaatsen standaard geen cookies. Wat elk project in plaats daarvan afleidt, verschilt per project en verandert tussen versies; lees daarom de privacy-documentatie van het project zelf in plaats van een samenvatting. Matomo biedt IP-anonimisering en een opt-out-eindpunt die u in de beheerinterface kunt inschakelen.
Toezichthouders trekken in verschillende landen verschillende conclusies. De Franse CNIL publiceert bijvoorbeeld voorwaarden waaronder publieksmetingen kunnen worden vrijgesteld van toestemming. Deze sectie is een feitelijke samenvatting en geen juridisch advies. Vraag voor een echte site met echte gebruikers een jurist in uw rechtsgebied om advies.
Een punt dat mensen vaak over het hoofd zien: een toegangslogboek bevat ook persoonsgegevens. GoAccess voegt geen script toe aan de pagina, maar verwerkt nog steeds IP-adressen; op logboeken gebaseerde analyses vallen dus niet automatisch buiten de regels.
Adblockers en waarom uw cijfers zullen dalen
Filterlijsten matchen op hostnaam en op URL-patroon. Een gehost analytics-product is eenvoudig te matchen, omdat iedereen het laadt vanaf dezelfde bekende hostnaam. Door de collector naar uw eigen subdomein te verplaatsen, verwijdert u die hostnaam uit het verzoek, en door het script vanaf een door u gekozen pad te serveren, verwijdert u de bekende bestandsnaam. Beide wijzigen de criteria waarop een lijst moet matchen.
Dit bericht claimt geen hitrate, omdat deze niet is gemeten. Het aandeel bezoekers dat een bepaalde configuratie blokkeert, hangt af van uw publiek; een ontwikkelaarspubliek blokkeert aanzienlijk meer dan een algemeen publiek. Meet uw eigen verschil. Tel gedurende dezelfde week het aantal verzoeken voor HTML-pagina's in het access log met GoAccess en vergelijk dit met de pageviews die uw op scripts gebaseerde tool rapporteert. Het verschil is het aantal geblokkeerde bezoeken plus pagina's die vanaf de cache op uw site zijn geserveerd.
Verwacht dat de totalen veranderen op de dag dat u overstapt van een gehost product, en verwacht dat een deel van die verandering niets met blokkeren te maken heeft. Producten verschillen van mening over wat een pageview is, of een routeverandering binnen een single page application als zodanig telt, en wanneer een sessie eindigt. Vergelijk trends over meerdere weken voordat u concludeert dat het verkeer is gedaald.
Welke keuze voor welke site
- Een persoonlijke site of blog met ongeveer 50.000 pageviews per maand: GoatCounter of Medama, op een 1 GB VPS, met back-ups in de vorm van een bestandskopie.
- Een site waar u geen script kunt toevoegen, of een publiek dat veel blokkeert: GoAccess op basis van het bestaande logbestand, volgens een schema.
- Een mkb-site waar iemand anders het dashboard bekijkt: Umami, met de bijbehorende Postgres-container.
- Een site waar u doelen en funnels wilt bijhouden, op een server met 2 GB RAM of meer: Plausible Community Edition, of Rybbit als u de voorkeur geeft aan het nieuwere dashboard en een jonger project accepteert.
- Veel sites, veel gebruikersaccounts, of een vereiste om ruwe data onder uw eigen retentiebeleid te bewaren: Matomo, gedimensioneerd volgens de eerder gepubliceerde richtlijnen.
Begin met de kleinste tool die uw daadwerkelijke vraag beantwoordt. Overstappen van GoatCounter naar Plausible kost u later een subdomein en wat historie. Overstappen van Matomo naar iets anders vereist een migratie waar u niet vrolijk van zult worden. Als u nog beslist wat er verder op dezelfde server thuishoort, behandelt het bredere overzicht van self-hosting wat er naast kan draaien. Als u in plaats van bezoekersaantallen liever tracing op verzoekniveau van een applicatie wilt, is een self-hosted observability-service de juiste tool voor die taak.
FAQ
Maakt het zelf hosten van analytics een cookiebanner overbodig?
Nee, dit zijn twee afzonderlijke zaken. De toestemmingsregel onder de ePrivacy-richtlijn heeft betrekking op het opslaan of uitlezen van gegevens op het apparaat van de bezoeker. Een tool die geen cookies plaatst en niets naar de lokale opslag schrijft, valt buiten die specifieke vereiste. De AVG (GDPR) is een andere regelgeving die de verwerking van persoonsgegevens regelt. Omdat een IP-adres een persoonsgegeven is, heeft u nog steeds een wettelijke grondslag en een bewaartermijn nodig, zelfs zonder cookies. Door zelf te hosten verplaatst u de data naar uw eigen server en wordt u de verantwoordelijke partij. Raadpleeg de richtlijnen van uw toezichthouder en vraag een jurist om advies voor uw specifieke situatie.
Hoeveel RAM heeft zelf-gehoste analytics nodig op een VPS?
De datastore bepaalt het verbruik, niet het dashboard. GoatCounter en Medama draaien als één proces op één bestand; de documentatie van Medama stelt dat kleine sites kunnen draaien op machines met 256 MB. Umami voegt een Postgres-container toe naast een Node-applicatie. Zowel Plausible Community Edition als Rybbit draaien op ClickHouse, en beide projecten adviseren minimaal 2 GB. De richtlijnen van Matomo zelf beginnen bij 2 CPU-cores en 2 GB RAM voor maximaal 100.000 paginabezoeken per maand.
Waarom zijn mijn zelf-gehoste cijfers lager dan de analytics die ik heb vervangen?
Er zijn twee oorzaken, en beide zijn reëel. Filterlijsten blokkeren sommige verzoeken naar de collector, waardoor elke script-gebaseerde tool die bezoeken mist. De producten tellen bovendien op verschillende manieren; wat als een paginabezoek geldt en wanneer een sessie eindigt, verschilt per tool. Vergelijk één week aan HTML-paginavraagstukken uit uw toegangslogboek met dezelfde week aan script-gebaseerde paginabezoeken. Het verschil bestaat uit geblokkeerde bezoeken plus gecachte pagina's, gemeten op uw eigen site in plaats van overgenomen van andermans gepubliceerde statistieken.
Kan ik Plausible of Rybbit draaien op een ARM VPS?
Beide draaien op ClickHouse, en ClickHouse vereist SSE 4.2 op x86 of NEON op ARM. De vereisten van Plausible vermelden dit expliciet, en de documentatie van Rybbit stelt dat ARM-systemen ARMv8.2-A of nieuwer moeten zijn. Huidige ARM-servercores voldoen aan deze eis, oudere modellen niet. Het falen uit zich doordat ClickHouse weigert te starten met een foutmelding over de instructieset, in plaats van een melding in het applicatielogboek. Op een kleine ARM-box vermijden de tools die uit één bestand bestaan deze vraag, omdat geen van hen ClickHouse gebruikt.
Moet ik serverlogs parsen in plaats van een tracking-script gebruiken?
Gebruik log-parsing wanneer u geen script kunt toevoegen, wanneer uw publiek veel blokkeert, of wanneer u een telling wilt die ook crawlers bevat. GoAccess leest een logboek dat uw server al schrijft, dus het voegt geen paginagewicht en geen database toe. U levert alles in wat er binnen de browser gebeurt, en u mist elke pagina die via een CDN of vanuit de browsercache wordt geserveerd, omdat dat verzoek uw server nooit bereikt. Veel sites gebruiken beide methoden en beschouwen ze als twee verschillende metingen.