使用 Umami 自建网站流量统计分析工具

一直都想找一款自建的统计工具替代掉,之前考虑过用 Matomo,但是看大家反馈说资源占用很大,而且很多功能都用不到,对于个人小站来说没有必要,最近终于发现了 Umami 这款工具,完全符合我的需求。

Umami 是一个简单易用、自托管的开源网站访问流量统计分析工具。Umami 不使用 Cookie,不跟踪用户,且所有收集的数据都会匿名化处理,符合 GDPR 政策,资源占用很低,虽然功能简单,但分析的数据内容很丰富,基本的来源国家,来源域名,使用的浏览器、系统、设备,访问的网页这些都有。还支持多国语言,完全可以用来替代 Google Analytics、Cloudflare Web Analytics、CNZZ、51LA 等统计工具,而且自己搭建也可以避免被 block 掉从而使统计数据更精确( 后来发现也会被部分去广告插件拦截… )。

  

  查看在线演示

  Umami 这个词语其实源于 “Umai”,在日语里是“美味、鲜味”的意思,从使用体验来看确实 umami,于是在这里分享一下搭建与使用的教程。

搭建过程

  这里以 Debian 系统为例,使用源文件编译安装,Docker 安装的方式可以参考官方文档

环境准备

  环境要求

  • Node.js 12 或更高版本
  • 数据库 (MySQL 或者 Postgresql)

  MySQL 的安装可以参考我之前的文章 安装并配置 LNMP 的记录

  这里简单的说一下 Node.js 的安装,由于 Debian 10 官方库的版本为 v10.24.0,不满足要求,所以需要添加由 NodeSource 维护的 PPA 来安装更新版本的 Node.js:

  使用最新版本

  截至目前 (2021-08-11),Node.js 的最新版本 为 v16.6.1

1
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - 

  使用 LTS 版本(推荐)

  我这里安装的是 LTS(长期支持)版本

1
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - 

  安装 Node.js

1
sudo apt install nodejs 

  检查 Node.js 和 NPM 版本:

1
2
nodejs -v
npm -v

  Update(2021-10-13):

  如果你已经更新到了 Debian 11 系统(Debian 10 升级 11 教程 ),官方软件源 node.js 为 v12.22.5 版本,npm 为 7.5.2 版本,可以直接使用下面的命令安装:

1
apt install -y nodejs npm

安装 Umami

  从 GayHub 获取源代码:

1
2
3
git clone https://github.com/mikecao/umami.git
cd umami
npm install

  创建一个 .env 文件,并添加下面的内容:

1
2
DATABASE_URL=mysql://username:password@localhost:3306/database
HASH_SALT=[任意随机字符串]

  例如:

1
2
DATABASE_URL=mysql://root:123456789@localhost:3306/umami
HASH_SALT=your-long-radom-string

  为 umami 导入预设好的数据表:

1
mysql -u username -p databasename < sql/schema.mysql.sql

  最后构建并启动程序:

1
2
npm run build
npm start

  但是这个命令退出以后就会自动停止,所以我们需要 PM2 工具来守护进程,PM2 能守护的东西很多,例如:Node.js、Python、PHP、Ruby、perl,还有消息队列程序、Shell脚本等等。

  安装 PM2:

1
npm install pm2 -g

  在 Umami 目录下运行:

1
pm2 start npm --name umami -- start

  设置重启服务器后自启动:

1
2
pm2 startup
pm2 save

  补充一些 PM2 的常用命令:

1
2
3
4
5
6
7
8
pm2 list        # 查看所有运行中的应用
pm2 stop 0      # 停止 id 为 0 的应用
pm2 restart     # 重启
pm2 delete 0    # 删除 id 为 0 的应用
pm2 monit       # 显示每个应用程序的CPU和内存占用情况
pm2 show [name] # 显示应用程序的所有信息
pm2 save        # 保存当前应用列表
pm2 startup     # 创建开机自启动命令

  默认会运行在 http://localhost:3000 可以通过 IP 直接访问,这里补充一下使用 Ng­inx 反代:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
server {
  server_name umami.yourdomain.com;

  location / {
    proxy_pass http://localhost:3000;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

更新 Umami

  首先停止运行:

1
pm2 stop umami

  拉取最新文件:

1
git pull

  重新安装并构建:

1
2
npm install
npm run build

  重新启动:

1
pm2 restart umami

简单使用

  Umami 安装好后,默认用户名为 admin,默认密码为 umami

  

  登录之后的第一件事是修改密码,选择 Setting -> Profile,然后设置你的密码。添加网站

  

添加网站

  然后在上面的 Websites 中添加你的第一个网站:

  

  勾选 Enable share URL 会为你的网站分析数据生成一个分享链接。

设置代码

  之后点击图中的 Get tracking code 按钮,会弹出一段代码,复制到你网站中的 <head> 标签里就行了。

  

  更多详细的使用方式,例如点击跟踪、多用户、环境变量以及 API 操作,可以查看官网文档