百度统计、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的访问信息。更多信息请自行探索吧!

相关推荐
952361 小时前
MyBatis
后端·spring·mybatis
FQNmxDG4S3 小时前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言
虹科网络安全4 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje4 小时前
Java语法进阶
java·开发语言·jvm
uzong4 小时前
9 种 RAG 架构,每位 AI 开发者必学:完整实战指南
后端
rKWP8gKv74 小时前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫4 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287924 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本4 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
止语Lab5 小时前
从手动到框架:Go DI 演进的三个拐点
开发语言·后端·golang