先是去年3月份国内知名统计分析服务CNZZ(友盟)停止对海外域名提供网站统计分析服务,再是前阵子百度统计功能针对未备案域名的功能阉割,对于有看站点数据的站长来说,部署一套私有化的统计分析服务目前显得尤为重要,我昨天花了点时间捣腾了一下Umami
Umami特点
- 国际化&多语言
- 支持开源私有化部署——免费安全
- 它足够轻量,当然功能相对来说比较基础
- 自定义功能比较丰富
- 可关闭项目遥测功能(项目官方的匿名化收据收集用于分析)
- 脚本名以及collect方法命名可自定义,可用于解决一些通用的广告拦截器规则对脚本拦截导致统计信息不准确
安装前提(源码运行)
- 已经安装了MySQL数据库
- 已安装Nodejs、Yarn
- 已安装好pm2用于进程守护
- NodeJS、Yarn、PM2安装可参考自建Giscus为Hexo添加评论功能一文中有介绍
开始部署
拉取项目源码并安装所需依赖
git clone https://github.com/umami-software/umami.git
cd umami
yarn install
配置网站
在项目目录下执行touch .env
创建环境变量文件随后vi .env
添加如下内容
DATABASE_URL = mysql://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名 ;使用MySQL连接
TRACKER_SCRIPT_NAME = 统计脚本名 ;这里是统计脚本中JS文件名,不需要.js后缀
COLLECT_API_ENDPOINT = /api/跟踪器名称 ;例如DontBlockMe
DISABLE_TELEMETRY = 1 ;禁用官方遥测功能
开始运行
执行yarn build
进行编译
完成后使用yarn start
开始运行,默认监听3000端口,可在浏览器中输入IP:3000进行访问
进程守护
pm2 start yarn -n umami -- start --port 8002 #使用PM2启动应用,并监听8002端口
pm2 save #保存PM2配置
pm2 startup #设置开机自启动
配置反代
略了… 不过需要注意的是,如果使用CDN,最好关闭缓存功能