来用 Umami 自建统计工具吧!
前方提示:当前页面是本站的「Google AMP」版,存在24小时的缓存。如需查看最新版本,或是发表评论,请点击:完整版 »
如果需要统计博客访问的相关数据,一般会选择「百度统计」或是「谷歌分析」。前者面向中文用户,在数据展示上会更加直观;后者全球通用,功能丰富数据详细,只是需要一定的学习成本。
当然,你也可以尝试自己搭建一个统计工具,将数据完全掌握在自己的手里。比如使用「Umami」。
安装过程
首先,安装 Umami 需要一个基本的 LNMP 环境,然后再安装nodejs
和npm
。
安装Nodejs
、npm
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
apt-get install -y nodejs
apt-get install -y npm
安装完毕之后,可以用node -v
和npm -v
检查版本。
下载 Umami
git clone https://github.com/mikecao/umami.git
cd umami
npm install
创建数据库
先创建一个空数据库,比如umami
,然后在umami
目录中输入:
mysql -u username -p databasename < sql/schema.mysql.sql
username
一般是root
,databasename
就是你创建的空数据库的名字,具体例子是:
mysql -u root -p umami < sql/schema.mysql.sql
你也可以在 phpmyadmin 中手动导入到空数据库中。
创建配置文件
在umami
目录中新建一个.env
的配置文件,填入:
DATABASE_URL=(connection url)
HASH_SALT=(any random string)
其中,connection url
需要填入:
mysql://username:mypassword@localhost:3306/mydb
而any random string
填入的是随机字符串,完整的例子是:
DATABASE_URL=mysql://username:mypassword@localhost:3306/mydb
HASH_SALT=123456789
注意去掉括号。
编译
npm run build
启动程序
通常使用npm start
就可以直接启动,但是退出ssh
之后就直接停止运行了,所以需要用一些工具保证后台运行,官方文档中的推荐是:
npm install pm2 -g
cd umami
pm2 start npm --name umami -- start
pm2 startup
pm2 save
这样就可以用了。
Nginx 反代
因为可以使用ip:3000
直接访问,但是有使用域名的话还可以反代一下,这里以Nginx举例。在server
段加入配置:
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
首先停止运行
pm2 stop umami
获取更新
git pull
可能会遇到获取更新失败。我也不知道为啥我这每次都失败,可以用这个命令git reset --hard
,然后再执行上一步git pull
然后重新编译
npm install
npm run build
重新启动
pm2 restart umami
页尾版本号有发生变化,那就是更新成功了。
开始使用
进入后台,登录名是admin
,密码我有些忘了,好像默认是umami
。好像一开始登录还会要求修改密码,我也忘了…… :$(2233娘_委屈)
登陆成功之后,第一件事自然是修改语言。右上角修改语言为中文,然后添加网站。注意域名处填写纯域名,开头不要带https://
,结尾不要带/
。
之后将跟踪代码填入网站的相应位置,就可以开始数据记录了。
使用体验
「简洁」,是 Umami 的一大特色。首页以图表形式列出访问量、访问时长等基本信息,而柱状图则可以更直观地了解各个时间段网站的访问情况。
而更详细的数据如流量来源、着陆页,访客设备、地区等,可以在「查看更多」找到。美中不足的是,访客地区的统计并不准确。
在使用Umami之前,我也体验过一段时间的「Matomo」。Matomo 开启首页需要较长的加载时间,页面存在着无法关闭的开发者广告。功能丰富但略显臃肿。随着使用时间一长,统计数据量的增加,也会拖慢Matomo的运行效率,就需要更高规格的设备才能长期运行,总结下来就是整体使用体验不太好。Umami则不同,在设计上就主张简洁、快速,运行占用资源低,配置简单,因此在加载上更迅速,使用起来更轻松,只是简洁意味着众多功能的缺失。
不过对于小博客博主来说,这些基础功能就足够了。
Docker 部署
其实自己构建很麻烦的,最简单的方法还是用 Docker 来部署 Umami。
参考「Docker -- 从入门到实践」中的教程安装完 Docker-ce 和 docker-compose 后,创建docker-compose.yml
文件。填入以下内容:
version: '3.4'
services:
umami:
image: ghcr.io/mikecao/umami:mysql-latest
network_mode: "host"
environment:
DATABASE_URL: mysql://root:密码@127.0.0.1:3306/数据库名称
DATABASE_TYPE: mysql
HASH_SALT: 随机字符
restart: always
container_name: umami
和自己构建安装 umami 的方法类似,因为我是用 lnmp 安装的 mysql,不用再重复安装 docker mysql,所以 network_mode
是直接用的host
。
之后控制台执行docker-compose up -d
启动即可。
一些参考
- Linux发行版安装Nodejs
- GitHub:Umami
- Umami文档