百度统计、Google Analytics平替开源网站分析工具:Umami

关注我的公众号:【编程朝花夕拾】,可获取首发内容。

01 引言

还记得之前做项目的时候,需要统计网站的PVUV等,引入了百度统计的一段js。因为公司需要上市,数据安全的越来越重视,于是由于安全问题取消了网站的统计功能。

最近,发现一款类似百度统计、Google Analytics的开源分析工具:Umami。可以云托管也可以独立部署,数据更安全。

02 简介

Umami是一款开源、注重隐私的网络分析工具,可作为谷歌分析的替代方案。它能提供有关网站流量、用户行为和性能的重要见解,同时始终将数据隐私放在首位。不收集或存储个人数据,无需使用Cookie,并且符合GDPRPECR标准。

优势:

  • 极简主义与用户体验

    界面清爽通过精美的图表和列表一目了然地展示,聚焦核心指标

  • 以隐私保护为核心

    无需Cookie警告,默认不收集任何个人身份信息,也不使用Cookie进行跟踪

  • 开源与自托管

    MIT 许可证下的开源软件,可以免费使用、修改和分发

  • 强大的多功能支持

    同时跟踪和管理多个网站,每个网站都有独立的仪表板和数据,以及共享链接

GitHub地址:github.com/umami-softw...

官方地址:umami.is/

03 部署

官方文档给了三种安装方式:

  • GitHub上源码安装
  • 使用Docker compose构建自己的镜像源
  • 使用已有的镜像

3.1 拉取镜像

本文以存在的镜像部署。镜像根据数据存储的介质分了两种:postgresql版和mysql版。

sh 复制代码
# PG版
docker pull docker.umami.is/umami-software/umami:postgresql-latest

# mysql版
docker pull docker.umami.is/umami-software/umami:mysql-latest

本节选用的PG版:

3.2 启动

官方没有给出docker启动的脚本,直接启动会报错。从源码安装的流程中发现,安装时需要指定DATABASE_URL参数,用来执行数据库驱动的连接以采集数据。如图:

所以我们启动业务需要指定数据库连接。容器的端口是3000,也需要暴露出来。

docker启动命令:

sh 复制代码
docker run \
--name umami \
-p 3000:3000 \
-e DATABASE_URL=postgresql://root:root@postgres@127.0.0.1:5432/umami \
-d docker.umami.is/umami-software/umami:postgresql-latest

这里的数据库连接需要指定数据库,所有我们需要提前创建好数据库。启动之后,需要查看日志:

sh 复制代码
docker logs -f umami 

如下图表示启动成功:

我们就可以通过,localhost:3000 访问了。localhost需要换成服务器的IP

届时,我们也会发现数据库也已经自动创建好了表:

3.3 测试

直接访问需要登录。默认的用户名和密码:admin/umami

登录之后非常简洁:

只有仪表盘、网站、报告和设置这四个Tab,且为空。

04 使用

在使用之前,默认进入的可能是英文。我们可以通过右上角的图标切换语言:

4.1 添加网站

我们需要添加需要监控的网站:

我们添加监控localhost的所有网站。同时也支持IP

查看网站,就会进入到监控的额详情的列表:

4.2 添加脚本

监控服务好了之后,就需要页面添加脚本了。

进入之后,查看跟踪代码:

js 复制代码
<script defer src="http://127.0.0.1:3000/script.js" data-website-id="6ffdf9b6-362a-42b3-afe6-4b91db81cb35"></script>

这里的data-website-id是生成的每个网站的唯一标识。只修要将这段js放在<head>标签里。

如图:

我分别在两个页面里面加了这段js

4.3 访问测试

这里可以收集到所有来自localhost的访问信息。更多信息请自行探索吧!

相关推荐
带刺的坐椅1 分钟前
用 Solon TeamAgent 落地供应链异常管理与自动补货
java·ai·llm·agent·solon·供应链
MobotStone3 分钟前
五个AI使用习惯让你的效率翻倍
后端
潇凝子潇3 分钟前
UnsupportedOperationException
java·前端·数据库
pixcarp6 分钟前
GMP调度模型和GC垃圾回收机制解析
后端·学习·golang·内存管理·gc·gmp
qq_33776320191 小时前
国际期货资管系统开发方案|内外盘交易平台源码授权与二次开发支持
java·c语言·开发语言·c++·c#
不定积分要+C_yyy1 小时前
Java关键字final三种用法、核心特性与高频易错点
java·开发语言
xexpertS2 小时前
队列积压治理:如何避免异步系统出现难以恢复的消息积压
java·开发语言
万少7 小时前
用腻了 WorkBuddy 的默认界面?这个开源小工具给它换上了毛玻璃
前端·javascript·后端
皮皮林5519 小时前
代码越“整洁”,性能越“拉胯”?
后端
金金金__10 小时前
一篇文章带你入门OpenSpec
后端