博客一直使用谷歌分析(Google Analytics)作为流量统计分析平台,随着大家对隐私的重视,尤其是欧洲通用数据保护条例(GDPR)的颁布,谷歌分析的使用就有必要征求用户的同意,本博客自改版之后在隐私条款处已经说明使用了谷歌分析,并且在Cookie设置处也将允许谷歌分析的权限交给用户,经过一年多的运行发现存在相应的问题,最主要的是如果本博客访问的用户不设置Cookie,这也是大多数情况,一般博客右下角的Cookie提醒是可以忽略的,那么统计必然不准确,那么谷歌分析就失去了参考价值,好在由于全站套用了Cloudflare CDN,其中Cloudflare基础版(Free Plan)提供了一个简单的流量分析模块,让自己也大概能够窥探自己博客的流量情况。
为了能够更好的得到博客热门文章、访问者设备类型、设备分辨率这些信息以供以后改进博客内容和用户体验,同时兼顾用户隐私,决定尝试使用umami自建博客流量统计分析平台。
1 umami介绍
打开umami的官方网站,可以看到其声称“Umami is an open source, privacy-focused alternative to Google Analytics”,提取出三个特点:一是开源,开源表明其代码透明,未有第三方接入,可以本地部署,数据不对外分享;二是注重隐私,其未使用Cookie技术,也不跨站跟踪用户,和GDPR保持兼容;三是可部分替代谷歌分析,谷歌分析的强大基于其大数据平台和用户跟踪,其实大部分功能对于我的博客来说也纯属浪费,所以对于我来说umami可以替代谷歌分析,可能对于商业公司来说还需要斟酌。
2 umami安装
要安装umami首先要选取一个域名,比如本站使用了analytics.wangye.org
作为管理和数据采集的域名,这样做的好处是避免广告拦截插件误伤主域名,当然也不是很建议使用analytics打头的域名,部分广告拦截插件已经使用通配符analytics.* 拦截了所有以analytics打头的域名,可以使用比较小众的二级域名。
2.1 使用Docker部署
由于本站建立在容器化基础上,所以对于umami也优先考虑这种部署方式,对于其他部署安装方式请参考其官方文档。下面以PostgreSQL数据库为例,首先创建名称为mydb
的数据库,并赋予username
全部权限,接着使用部署的docker-compose.yaml
如下:
version: '3'
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
network_mode: "host"
environment:
DATABASE_URL: postgresql://username:mypassword@localhost:5432/mydb
DATABASE_TYPE: postgresql
HASH_SALT: replace-me-with-a-random-string
restart: always
container_name: umami
如果使用mysql数据库请自行修改image
为ghcr.io/umami-software/umami:mysql-latest
,environment
的DATABASE_URL
改为mysql://username:mypassword@localhost:3306/mydb
,DATABASE_TYPE
改为mysql
。
上述配置的HASH_SALT
中replace-me-with-a-random-string
请自行替换为随机字符串以确保安全。
配置完成后使用下面的命令拉取并启动umami程序:
docker compose pull
docker compose up -d
umami 默认运行在端口3000 上,默认账号:admin,默认密码:umami,登录系统后建议修改密码。
2.2 创建网站并获得跟踪代码(Tacking Code)
通过横向导航菜单点击“设置”,通过纵向菜单点击“网站”,点击“+添加网站”,填写网站名称和域名,点击“编辑”,切换到“跟踪代码”,复制文本框的跟踪代码并嵌入到你所要统计的网站HTML页面里。
3 总结
umami的统计功能虽然不如Google Analytics那么强大,但是对于个人用户来说已经绰绰有余,而且相比较Google Analytics必须使用Cookie技术跟踪用户而且被大多数广告拦截插件所拦截,umami的整体优势还是相当大的,对于个人站用户可以考虑采用。
什么时候帮我也装一个...
算了,还是不装了,百度统计用着就行了。
随时可以安装,使用docker部署还是比较简单的。
To continue use comments feature please understand our privacy policy first and then you should allow the following type of cookies that for comment service:
By click the button below you will being asked by a pop-up box to confirm which cookies you're happy for me to use.
Understood & Confirm Cookie Settings