Zelfgehoste webanalyse op een VPS: de beste opties
Ontdek welke zelfgehoste webanalysetool past bij uw VPS. Wij vergelijken RAM-gebruik, database-eisen en installatie voor Plausible, Umami, Matomo, GoatCounter en GoAccess.
Welke zelfgehoste webanalysetool kunt u het beste op een VPS draaien?
Zelfgehoste webanalyse valt uiteen 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 zelf, omdat het een reeds bestaand logbestand leest.
Script-tag of serverlog: wat elk kan zien
Een script-tag meet browsers. De pagina laadt, het script wordt uitgevoerd en er wordt één verzoek naar uw collector gestuurd. Alles wat deze 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 of niet; 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 uitvoeren en documenteert wat de log-import mist in vergelijking met de JavaScript-tracker: schermresolutie en paginatitels, events, content-tracking, heatmaps, sessie-opnames en formulieranalyses. Die lijst is de prijs die u betaalt voor het tellen van verzoeken in plaats van browsers.
Bot-verkeer vormt 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 de server en het logbestand te lezen nadat de blokkade is toegepast in plaats van ervoor.
GoAccess: analyses op basis van uw bestaande logs
Installeer het via de officiële Debian- en Ubuntu-repository van het project, aangezien pakketten in de distributie-repositories vaak achterlopen op de officiële 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 standaardgebruiker, omdat het nginx-logbestand op Ubuntu eigendom is van root met de groep adm. Voeg uzelf toe aan die 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 verschijnt 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. Dit vereist een tweede poort en een eigen proxy-regel. 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 geïnstalleerd hoeft te worden. Gebruik een build van de releasepagina 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.comHet 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 niets anders draait. Waar Nginx of Caddy al poort 443 beheert, laat u GoatCounter op 8080 draaien en proxyt u 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 zijn een eenvoudige bestandskopie, wat het voornaamste argument is voor dit type tool.
Medama: een enkele container die 256 MB claimt
Medama is de nieuwste optie in dit overzicht die uit een enkel binary-bestand bestaat. Het is ontworpen zonder cookies en het project claimt een tracker van minder dan 1 KB, plus de mogelijkheid om kleine sites te 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-voorvoegsel 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; de naam van dat wachtwoord is de instructie.
Eén gedocumenteerd faalscenario zal u treffen. Inloggen werkt alleen via HTTPS of op localhost. 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 herkenbaar dashboard
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 vanuit de broncode bouwt. Er is een vooraf gebouwde image, docker.umami.is/umami-software/umami:postgresql-latest, die DATABASE_URL vereist 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, raadpleeg een Docker Compose stack op een VPS in plaats van een stack te kopiëren die u niet heeft gelezen.
De voetafdruk bestaat uit een Node-proces plus Postgres. Dat is zwaarder dan een enkel binair bestand en veel lichter dan alles wat ClickHouse draait.
Plausible Community Edition: ClickHouse stelt de ondergrens voor 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 -dVersie v3.2.1 is actueel 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 ten minste 64 bytes zijn, wat het resultaat is van de openssl-aanroep.
De vereisten van Plausible zelf vragen om ten minste 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. Dat tweede vereiste is de moeite waard om te controleren voordat u tot aanschaf overgaat, en het is een van de praktische verschillen bij het kiezen tussen een ARM- en een x86-VPS. ClickHouse neemt bovendien zoveel geheugen als het denkt dat beschikbaar is; stel daarom op een gedeelde server een maximum in zoals beschreven in het begrenzen 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 waar uw browser zich niet op bevindt, waardoor u zonder foutmelding weer op het inlogformulier belandt.
Het meegeleverde compose-bestand publiceert geen poort, omdat de verwachting is dat er een proxy voor staat. Voeg een override toe die de standaard applicatiepoort uitsluitend 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 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 bevat. 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 één binary, 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 getriggerde 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 toevoeging 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 domein dat u opgeeft. 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, tests zijn uitgevoerd op Ubuntu 24 LTS, en vanwege ClickHouse is op ARM een ARMv8.2-A of nieuwer vereist.
De eerlijke waarschuwing voor elk jong project: functies worden snel toegevoegd en ingrijpende wijzigingen komen regelmatig voor. Pin een 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 per gebeurtenis op, 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, dus het is waardevoller 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 waarover df -h u kan waarschuwen. Dat risico verdient extra aandacht op een server die al omvangrijke data bevat, omdat een zelf-gehoste 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 aan de collector een first-party verzoek, waardoor het niet wordt geraakt door browserregels die third-party verzoeken blokkeren.
Bind de applicatie aan loopback wanneer u de containerpoort publiceert. Docker schrijft zijn eigen firewallregels vóór ufw, waardoor een container die als -p 3000:3000 is gepubliceerd vanaf internet bereikbaar is, ook wanneer ufw status aangeeft dat de poort is geblokkeerd. Test dit vanaf een andere machine met curl http://SERVER_IP:3000; u krijgt dan het dashboard te zien. Wanneer de poort als -p 127.0.0.1:3000:3000 is gepubliceerd, geeft dezelfde test Connection refused en kan alleen de proxy de applicatie bereiken. Deze werkwijze verbergt niet alleen een dashboard. Het is ook de basis voor het uitvoeren van een onion-service op dezelfde host, waarbij elke service die nog op de openbare interface antwoordt, het verborgen adres aan uw IP-adres koppelt. Het collector-endpoint moet vanaf het openbare internet bereikbaar blijven, maar het dashboard niet. Als u het dashboard liever via een privénetwerk leest dan een tweede subdomein publiceert, kunt u met het VPS-netwerk via een subnetrouter aan uw tailnet bekendmaken toegang krijgen zonder een poort te openen.
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 landenrapport leeg blijft en het aantal unieke bezoekers terugloopt naar één. Elk project bepaalt zelf welke header het vertrouwt en onder welke instelling; controleer 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 paar 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 die gegevens. Houd twee regels uit elkaar. De toestemmingsregel van de ePrivacy-richtlijn gaat over het opslaan of uitlezen van informatie 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 nodig, een bewaartermijn en een antwoord wanneer iemand vraagt welke gegevens u over hen bewaart.
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 levert IP-anonimisering en een opt-out-eindpunt dat 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. Raadpleeg voor een echte website met echte gebruikers een jurist in uw rechtsgebied.
Een punt dat mensen vaak missen: 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. Het verplaatsen van een dienst naar uw eigen server verlegt de blootstelling in plaats van deze weg te nemen. Dit is dezelfde reden waarom wat een zelf-gehoste SearXNG-instantie daadwerkelijk verbergt stopt bij de zoekmachines, terwijl de zoekopdrachten zelf nog steeds in uw eigen logboeken terechtkomen.
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 te verplaatsen naar uw eigen subdomein, verwijdert u die hostnaam uit het verzoek, en door het script te serveren vanaf een pad dat u zelf heeft gekozen, 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 vanuit 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 paginabezoeken 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 site voor een klein bedrijf 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 hierboven gepubliceerde richtlijnen.
Begin met de kleinste tool die uw daadwerkelijke vraag beantwoordt. Later overstappen van GoatCounter naar Plausible kost u een subdomein en wat historie. Overstappen van Matomo naar iets anders kost u een migratie waar u niet vrolijk van wordt. Als u nog beslist wat er verder op dezelfde server past, behandelt het bredere overzicht van self-hosting wat er naast kan staan. Als u in plaats van bezoekersaantallen liever tracing op verzoekniveau van een applicatie wilt, is een self-hosted observability-service daarvoor de juiste tool.
FAQ
Maakt het zelf hosten van analytics de cookiebanner overbodig?
Nee, dit zijn twee afzonderlijke zaken. De toestemmingsregel onder de ePrivacy-richtlijn heeft betrekking op het opslaan of uitlezen van informatie 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 echter een andere regelgeving die betrekking heeft op het verwerken van persoonsgegevens. Aangezien 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 dit, niet het dashboard. GoatCounter en Medama draaien als één proces op één bestand, en 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. Plausible Community Edition en Rybbit draaien beide op ClickHouse, en beide projecten adviseren minimaal 2 GB. De eigen richtlijnen van Matomo beginnen bij 2 CPU-cores en 2 GB RAM voor maximaal 100.000 paginaweergaven 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 telt als een paginaweergave en wanneer een sessie eindigt, verschilt per tool. Vergelijk een week aan HTML-paginavraagstukken uit uw toegangslogboek met dezelfde week aan script-gebaseerde paginaweergaven. Dat verschil bestaat uit geblokkeerde bezoeken plus gecachte pagina's, gemeten op uw eigen site in plaats van overgenomen van andermans gepubliceerde cijfers.
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 niet. Het falen manifesteert zich doordat ClickHouse weigert te starten met een foutmelding over de instructieset, in plaats van een fout 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 logbestand dat uw server al schrijft, dus het voegt geen paginagewicht en geen database toe. U levert echter alles in wat 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 heeft bereikt. Veel sites gebruiken beide en beschouwen ze als twee verschillende metingen.