Jako etický web se snažíme, aby Linux Handbook byl co nejvíce bezplatný od Googlu a sledování. V tomto ohledu se zdržujeme používání Google Analytics pro měření návštěvnosti webových stránek.
Místo toho používáme Plausible Analytics. Jedná se o jednoduchou, lehkou (<1 kB), open source a ochranu soukromí šetrnou alternativu k Google Analytics (GA).
Možná vám neposkytne tolik podrobností jako GA, ale poskytne vám představu o návštěvnosti vašeho webu spolu s mírou okamžitého opuštění a délkou návštěvy.
Můžete také vidět, které stránky získávají nejvíce návštěv, odkud váš web získává návštěvnost, míru okamžitého opuštění a dobu trvání na stránce. Můžete také měřit provoz na základě geografické oblasti a zařízení.
Společnost Plausible, kterou založili a vyvinuli Uku Taht a Marco Saric, výrazně podporuje myšlenku, že návštěvnost webových stránek lze analyzovat, aniž by bylo narušeno soukromí návštěvníků.
Pokud si to můžete dovolit, podpořte projekt výběrem jejich řízeného hostingového plánu. Nabízejí dokonce 30denní bezplatnou zkušební verzi.
Pokud máte několik webů s vysokou návštěvností a zjistíte, že ceny přesahují váš rozpočet, můžete si sami hostit open source projekt Plausible, jako to děláme my v Linux Handbook.
Vlastní hostování věrohodných analýz s Dockerem
Když jsem poprvé pracoval na nasazení Plausible, proces byl naprosto komplikovaný. Naštěstí je nyní docela pohodlné jej nasadit na svůj vlastní server. Aby to bylo jednodušší, báječní lidé z Plausible také vytvořili samostatné úložiště hostingu na GitHubu, abyste mohli začít.
V tomto podrobném průvodci se naučíte dva způsoby nasazení instance Plausible:
- Samostatná metoda (jeden server, jedna služba):Pouze Plausible běží na celém serveru
- Metoda reverzního proxy (jeden server, více služeb):Pomocí Plausible můžete nasadit více webových služeb, jako je WordPress, Nextcloud atd.
Kromě toho také ukážu několik volitelných, ale užitečných kroků, jak si užít všechny funkce Plausible:
- Konfigurace SMTP na Plausible, abyste mohli dostávat týdenní nebo měsíční přehledy e-mailem.
- Konfigurace GeoIP pro zobrazení statistik pro jednotlivé země na mapě věrohodného řídicího panelu
Předpoklady
Zde je to, co potřebujete, kromě znalostí příkazů Linuxu, dockeru a docker-compose.
- Server Linux. Můžete použít fyzický server, virtuální počítač nebo cloudové servery. Můžete se zaregistrovat u našeho partnera Linode a získat kredity v hodnotě 100 $ zdarma.
- Docker a Docker Compose nainstalované na vašem serveru.
- Přístup k DNS vaší domény, kam chcete nasadit Plausible.
- Nastavení reverzního proxy serveru Nginx, pokud se rozhodnete pro druhý způsob nasazení.
Krok 1:[Metoda 1] Příprava nasazení Pravděpodobné samostatným způsobem (jeden server, jedna služba)
V této části budu předpokládat, že chcete přímo hostovat svou doménu na portu 80 na samostatném serveru.
Začněme tím, že nejprve objevíme to nejnutnější. Pamatujte, že předem je vyžadováno docker-compose.
Konfigurace Plausible deployment se v zásadě skládá ze 3 hlavních komponent:
- Databáze Postgres pro uživatelská data
- Databáze Clickhouse pro analytická data
- Samotná věrohodná, která se opírá o dvě databáze
Protože se Plausible nasazuje sám pomocí Dockeru, všechny tři výše uvedené komponenty se nasazují jako vlastní příslušné kontejnery.
Nyní se podívejte, jak jsou konfigurovány pomocí Docker Compose jeden po druhém:
Pro Postgres zde musíte použít oficiální obrázek Postgres 12 dostupný na Docker Hub (v době psaní tohoto návodu). To je naprosto nezbytné, protože používáte latest
tag v tomto případě nedoporučujeme.
plausible_db:
image: postgres:12
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
Použijte název svazku db-data
k uložení uživatelských dat na /var/lib/postgresql/data
. Bude také vyžadováno nastavení proměnné prostředí pro přiřazení hesla Postgres.
Pro Clickhouse použijte obrázek Yandex Clickhouse Docker Hub:
plausible_events_db:
image: yandex/clickhouse-server:latest
volumes:
- event-data:/var/lib/clickhouse
- ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
- ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
ulimits:
nofile:
soft: 262144
hard: 262144
Dovolte mi vysvětlit, co to dělá! Používáte název svazku event-data
k uložení analytických dat na /var/lib/clickhouse
. Poté se připojí konfigurační soubory, aby se zakázaly protokolovací tabulky, aby se předešlo problémům, jako je zklidnění clickhouse v dlouhodobém horizontu. Po souborech XML připojených pomocí vazby ulimit
se používá k omezení využití zdrojů uvnitř kontejneru Clickhouse.
Pro samotnou službu Plausible použijte obrázek Docker Hub, který je označen jako latest
od vývojářů jako stabilní vydání:
plausible:
image: plausible/analytics:latest
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh db init-admin && /entrypoint.sh run"
depends_on:
- plausible_db
- plausible_events_db
- mail
- geoip
ports:
- 80:8000
env_file:
- plausible-conf.env
Při prvním spuštění vytvoří databázi Postgres pro uživatelská data, databázi Clickhouse pro analytická data, migruje je za účelem přípravy schématu a vytvoří za vás účet správce.
Jak také můžete vidět, služba spoléhá na plausible_db
a plausible_events_db
aby to bylo funkční. mail
a geoip
jsou dvě další doplňkové služby, o kterých budu diskutovat později.
Protože používáte samostatnou metodu, můžete přímo zadat port kontejneru 8000, který bude dostupný prostřednictvím názvu hostitele na portu 80. Pokud jde o env_file
, proberu to v části "Soubory prostředí" dále v této příručce.
Každá z databázových služeb bude mít své vlastní příslušné svazky Dockeru pro ukládání uživatelských a analytických dat. Takže musíte také zahrnout sekci svazků do souboru pro vytvoření dockeru s následujícími podrobnostmi::
volumes:
db-data:
driver: local
event-data:
driver: local
geoip:
driver: local
Nyní máte potřebné součásti pro základní nasazení Plausible.
Protože nyní známe tři základní komponenty pro základní nasazení Plausible, stále to není úplně kompletní nastavení, jaké bychom chtěli. Potřebujeme jej také nakonfigurovat se dvěma dalšími doplňky, které z něj učiní kompletní nasazení webové analýzy:
Nastavení SMTP pro e-mailové přehledy [volitelné]
Můžete využít službu Bytemark SMTP, kterou Plausible použije k zasílání týdenních nebo měsíčních analytických zpráv. Tato dodatečná konfigurace je jednoduchá, ale musí být specifikována v konfiguraci věrohodné služby později:
mail:
image: bytemark/smtp
restart: always
Jako příklad pro tuto příručku použiji SendGrid. Zde si můžete vytvořit svůj bezplatný klíč API, jakmile se přihlásíte do SendGrid. Uložte si 69znakový řetězec, protože jej budete později potřebovat jako heslo pro konfiguraci SMTP .
GeoIP pro mapu řídicího panelu [volitelné]
Tato část je potřebná k zobrazení počtu návštěvníků podle zemí, když umístíte kurzor na mapu světa na ovládacím panelu Pravděpodobnost pro vaši doménu.
K tomu musíte využít bezplatnou službu GeoLite2. Databáze GeoIP2 společnosti MaxMind poskytují inteligentní data IP pro prostředí s velkým objemem. Vlastním hostováním jejich databází eliminujete jakoukoli latenci sítě a poplatky za dotaz. Plausible používá databáze GeoLite2, což jsou bezplatné IP geolokační databáze implementované jako kontejner.
Chcete-li nastavit databázi GeoIP a nechat ji automaticky aktualizovat, musíte si zaregistrovat bezplatný účet u MaxMind. Po registraci přejděte do nabídky Služby>Můj licenční klíč z levého panelu na stránce účtu Maxmind. Klikněte na "Vygenerovat nový licenční klíč" a uložte jej lokálně, protože jej můžete zobrazit pouze jednou při generování .
plausible_geoip:
image: maxmindinc/geoipupdate
environment:
- GEOIPUPDATE_EDITION_IDS=GeoLite2-Country
- GEOIPUPDATE_FREQUENCY=168 # update every 7 days
env_file:
- geoip-conf.env
volumes:
- geoip:/usr/share/GeoIP
restart: always
Prostřednictvím výše uvedených dvou proměnných prostředí nastavíme ID vydání a jak často bude databáze aktualizována. Databáze GeoLite2 Country, City a ASN jsou aktualizovány každý týden, každé úterý. Soubor geoip-conf.env
Popsaný dále v této příručce bude muset obsahovat všechna pověření, která získáte po vygenerování výše uvedeného licenčního klíče.
Soubory prostředí
Tato část je možná nejdůležitější, protože pokrývá všechny základní proměnné prostředí, které musí být na místě, aby výše uvedených pět komponent instance Plausible fungovalo správně. V rámci celé konfigurace je využíváme přímo a prostřednictvím souborů prostředí.
Soubor prostředí pro věrohodnou konfiguraci
Soubor plausible-conf.env uchovává nejdůležitější proměnné prostředí pro nasazení instance Plausible.
ADMIN_USER_EMAIL=replace-me
ADMIN_USER_NAME=replace-me
ADMIN_USER_PWD=replace-me
BASE_URL=replace-me
SECRET_KEY_BASE=replace-me
ADMIN_USER_EMAIL
je e-mailová adresa, ke které se chcete přihlásit a také dostávat týdenní nebo měsíční analytické zprávy.- Pro
ADMIN_USER_NAME
, zde můžete uvést své vlastní jméno. - Hodnota pro
ADMIN_USER_PWD
je vaše přihlašovací heslo. BASE_URL
může být ve formátu:http://plausible.domain.com . Všimněte si, že pro povolení HTTPS se doporučuje použít reverzní proxy metodu (popsanou v druhé části této příručky), aby bylo možné použít SSL certifikát.SECRET_KEY_BASE
je náhodný tajný klíč o 64 znacích používaný k zabezpečení Plausible. Chcete-li jej vygenerovat, použijte:openssl rand -base64 64
Soubor prostředí pro věrohodnou konfiguraci SMTP s Sendgrid
Ačkoli můžete do stejného souboru zahrnout také proměnné prostředí SMTP, použití samostatné proměnné vám usnadní následování. Zde jsem tedy použil soubor s názvem plausible-smtp.env
za stejným účelem.
Níže uvedená konfigurace je specifická pro Sendgrid, ale můžete ji odpovídajícím způsobem změnit, pokud dáváte přednost jiné službě SMTP:
[email protected]
SMTP_HOST_ADDR=smtp.sendgrid.net
SMTP_HOST_PORT=465
SMTP_USER_NAME=apikey
SMTP_USER_PWD=replace-me
SMTP_HOST_SSL_ENABLED=true
SMTP_RETRIES=20
CRON_ENABLED=true
MAILER_EMAIL
je přizpůsobitelná e-mailová adresa odesílatele, která se zobrazí ve vaší doručené poště, když obdržíte týdenní nebo měsíční přehledy.SMTP_HOST_ADDR
je název hostitele serveru SMTP. V případě SendGrid je tosmtp.sendgrid.net
.- Zde používáte 465 pro číslo portu hostitele SMTP prostřednictvím
SMTP_HOST_PORT
. apikey
je pověření uživatelského jména konkrétně pro SendGrid, nastavené pomocíSMTP_USER_NAME
.SMTP_USER_PWD
je 69znakový klíč používaný jako heslo, které jste získali od SendGrid (probráno v části nastavení SMTP).- Povolil jsem protokol SSL na hodnotu true prostřednictvím
SMTP_HOST_SSL_ENABLED
pro SendGrid. - Počet opakování, dokud to odesílatel nevzdá, lze nastavit pomocí
SMTP_RETRIES
.
CRON_ENABLED
není ve skutečnosti nastavení SMTP, abych byl konkrétní. Ale proč jsem to sem zahrnul, protože bez této proměnné nastavte true
, nebudete dostávat žádné týdenní ani měsíční přehledy e-mailem. Ve výchozím nastavení je tato hodnota false, ale pravděpodobně bude aktualizována v příštím vydání Plausible, jak je zde popsáno. Ale od této chvíle je toto nastavení naprosto zásadní.
Soubor prostředí pro globální statistiky o Plausible with GeoIP
Pomocí geoip-conf.env
, zahrnete základní přihlašovací údaje získané od MaxMind, jak bylo uvedeno výše:
GEOIPUPDATE_ACCOUNT_ID=replace-me
GEOIPUPDATE_LICENSE_KEY=replace-me
Úplný odkaz na všechny druhy proměnných prostředí na Plausible naleznete na stránce dokumentace zde.
Nyní v tomto bodě jste se podívali na všechny potřebné detaily pro hostování samostatného nasazení Plausible. Kompletní konfigurace docker compose by vypadala takto:
version: "3.3"
services:
plausible_db:
image: postgres:12
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
plausible_events_db:
image: yandex/clickhouse-server:latest
volumes:
- event-data:/var/lib/clickhouse
- ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
- ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
ulimits:
nofile:
soft: 262144
hard: 262144
mail:
image: bytemark/smtp
restart: always
geoip:
image: maxmindinc/geoipupdate
environment:
- GEOIPUPDATE_EDITION_IDS=GeoLite2-Country
- GEOIPUPDATE_FREQUENCY=168 # update every 7 days
env_file:
- geoip-conf.env
volumes:
- geoip:/usr/share/GeoIP
restart: always
plausible:
image: plausible/analytics:latest
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh db init-admin && /entrypoint.sh run"
depends_on:
- plausible_db
- plausible_events_db
- mail
- geoip
ports:
- 80:8000
env_file:
- plausible-conf.env
volumes:
db-data:
driver: local
event-data:
driver: local
geoip:
driver: local
Pokud jste postupovali podle této metody, přeskočte další část.
Krok 1:[Metoda 2] Příprava nasazení Plausible s reverzním proxy Nginx (jeden server, více služeb)
Toto je alternativní metoda a nelze ji použít s metodou 1, která byla diskutována v předchozí části. Zde budete muset nastavit reverzní proxy.Pojďme rychle projít nezbytnými revizemi, aby výše uvedená věrohodná konfigurace fungovala také pod nastavením reverzního proxy. Používám příklad z našeho předchozího článku Nginx Docker.
Pro všechny čtyři služby kromě služby Plausible použiji interní síť s názvem plausible
protože to musí být viditelné pouze pro Plausible.
networks:
- plausible
Ale pro službu Plausible to samé net
síť použitá v konfiguraci reverzního proxy musí být specifikována spolu s plausible
síť, samozřejmě. Jedině tak budete schopni zajistit, aby to fungovalo s kontejnerem Nginx Docker.
networks:
- net
- plausible
Musíte také vyměnit naše ports
parametr s expose
uvnitř vaší služby Plausible, protože nyní používáte reverzní proxy:
expose:
- 8000
Na konci konfigurace je také potřeba určit, které ze sítí jsou interní a externí:
networks:
net:
external: true
plausible:
internal: true
Další proměnné prostředí
Také se musíte ujistit, že aktualizujete plausible-conf.env
soubor s následujícími proměnnými, aby nastavení fungovalo správně:
VIRTUAL_HOST=plausible.domain.com
LETSENCRYPT_HOST=plausible.domain.com
TRUSTED_PROXIES=172.x.0.0/16
Zadejte název domény bez https://
na VIRTUAL_HOST
a LETSENCRYPT_HOST
které jsou určeny pro reverzní proxy a SSL certifikát.
S TRUSTED_PROXIES
, explicitně definujete proxy servery pro důvěryhodné. Přesnou hodnotu lze získat pomocí:
docker inspect -f '{{ json .IPAM.Config }}' net | jq .[].Subnet
Aby výše uvedený příkaz fungoval, budete potřebovat jq
nástroj je již nainstalován.
Na Ubuntu jej můžete nainstalovat pomocí:
sudo apt -y install jq
Na CentOS byste nejprve vyžadovali přidání úložiště:
yum install epel-release -y
yum install jq -y
Zde je tedy konečný soubor docker-compose.yml, revidovaný pro reverzní proxy:
version: "3.3"
services:
mail:
image: bytemark/smtp
restart: always
networks:
- plausible
plausible_db:
image: postgres:12
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
restart: always
networks:
- plausible
plausible_events_db:
image: yandex/clickhouse-server:latest
volumes:
- event-data:/var/lib/clickhouse
- ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
- ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
ulimits:
nofile:
soft: 262144
hard: 262144
restart: always
networks:
- plausible
geoip:
image: maxmindinc/geoipupdate
environment:
- GEOIPUPDATE_EDITION_IDS=GeoLite2-Country
- GEOIPUPDATE_FREQUENCY=168 # update every 7 days
env_file:
- geoip-conf.env
volumes:
- geoip:/usr/share/GeoIP
restart: always
networks:
- net
- plausible
plausible:
image: plausible/analytics:latest
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh db init-admin && /entrypoint.sh run"
depends_on:
- plausible_db
- plausible_events_db
- mail
- geoip
expose:
- 8000
env_file:
- plausible-conf.env
- plausible-smtp.env
restart: always
networks:
- net
- plausible
volumes:
db-data:
driver: local
event-data:
driver: local
geoip:
driver: local
networks:
net:
external: true
plausible:
internal: true
Krok 2:Nasazení věrohodné analýzy
Bez ohledu na to, zda jste použili metodu 1 nebo metodu 2, měli byste mít připravený soubor docker-compose. Je čas tento soubor použít.
Na svém serveru naklonujte hostitelské úložiště Plausible:
git clone https://github.com/plausible/hosting
Přesuňte se do adresáře pro revizi souborů:
cd hosting
Nyní upravte soubor docker-compose tak, aby měl stejný obsah, jaký jste viděli v metodě 1 nebo metodě 2 (podle toho, co jste zvolili). Také revidujte všechny základní soubory, které vyžadují úpravy, jak je popsáno pomocí kterékoli z výše uvedených dvou metod.
Spusťte instanci Plausible:
docker-compose up -d
Přistupte k věrohodné doméně, kterou jste zadali v konfiguraci. Měli byste vidět takovou obrazovku. Pomocí přihlašovacích údajů, které jste poskytli v plausible-conf.env
soubor, přihlaste se do věrohodného řídicího panelu.
Krok 3:Použití věrohodné analýzy pro vaše webové stránky
Je čas přidat web(y), které chcete sledovat a analyzovat pomocí Plausible. Když jste přihlášeni k řídicímu panelu vaší instance Plausible, klikněte na „+ Přidat web“.
Zadejte název své domény (řekněme domain.com
) bez www
nebo https://
a klikněte na "Přidat úryvek"
Všimněte si, že domain.com
může být jakákoli doména a nemá nic společného s hostováním Plausible na její subdoméně. Instance Plausible může být hostována na jakémkoli jiném názvu domény a nemusí to být nutně subdoména analyzované domény.
Tento fragment JavaScriptu musíte přidat do skriptů záhlaví na webu domain.com. Je jen na vás, jak na svůj web přidat skript záhlaví.
V Linux Handbook používáme Ghost, rychlý a lehký CMS.
Na Ghost to musíte vložit do sekce záhlaví pod SETTINGS > Code injection
a klikněte na "Uložit":
Po přidání budete moci sledovat webovou analýzu domény krátce poté, co na ni kliknete na hlavním panelu.
V případě jiných webových aplikací, včetně WordPress a Discourse, se můžete také podívat na oficiální průvodce integrací.
Povolit týdenní nebo měsíční přehledy s Plsuible
Za předpokladu domain.com
je doména, kterou jste přidali pro analýzu, přejděte na domain.com > Settings > Email Reports
po přihlášení do řídicího panelu.
Povolte požadované možnosti:
Pokud dáváte přednost tomu, abyste se vydali nerdskou cestou, můžete také přistupovat k nastavení e-mailu přímo na základě následující syntaxe adresy URL:
https://plausible.domain.com/domain.com/settings#email-reports
kde plausible.domain.com
je místo, kde hostujete svou pravděpodobnou instanci a domain.com
je web, který chcete analyzovat.
A co globální statistiky?
Pokud jste nakonfigurovali GeoIP, můžete si zobrazit globální mapu na řídicím panelu, kde jsou země návštěvníka vystínovány fialově. Čím tmavší odstín barvy, tím vyšší je počet návštěvníků země.
Umístěním kurzoru na zemi na mapě se zobrazí počet jejích návštěvníků pro váš web. Kliknutím na „VÍCE“ zobrazíte na mapě úplný seznam počtů návštěvníků podle zemí.
Tipy pro údržbu
Pokud chcete zkontrolovat protokoly kontejneru během jeho nasazení v reálném čase, můžete spustit:
docker logs -f hosting_plausible_1
Kdykoli, pokud chcete zastavit instanci, můžete použít:
docker-compose down
A je to! Úspěšně jste nasadili Plausible Analytics s e-mailovými přehledy a statistikami map země na hlavním panelu!
Osobní poznámky k věrohodné
Naučili jste se tedy nasadit věrohodnou analýzu na váš server. Jakou metodu jste pro tento účel zvolili?
Vždy raději používám metodu reverzního proxy, protože vždy ponechává možnost nasadit další webové služby, a tím ušetřit náklady na server.
Metoda reverzního proxy je vhodnější i pro režim provozu jedné služby s jedním serverem, protože celé nastavení je odolné vůči budoucnosti. Pokud plánuji nasadit druhou instanci na metodu popsanou v předchozí části, vyžadovalo by to spoustu dalšího úsilí při změně a přijetí nové konfigurace reverzního proxy. Je tedy lepší to mít připravené od samého začátku.
Navíc se nemusíte starat ani o certifikáty SSL.
Pokud máte na Dockeru povoleno živé obnovení, měli byste použít zásadu restartování on-failure
místo always
zobrazený v tomto návodu. Zabrání restartování kontejnerů v případě, že se démon Docker restartuje.
Namísto Google Analytics si užijte Analytics bez Google :)
Pokud narazíte na nějakou chybu, narazíte na nějaké problémy nebo máte návrh, dejte mi prosím vědět zanecháním komentáře.