为什么要用umami
在此之前,本站及相关网站服务需要用到统计的地方,都用的是自建的matomo,这是个非常强大的网页统计服务,强大到有些臃肿,这次大搬家我就在想,我真的有必要耗费有限的服务器资源来实现到头来可能一次都用不到的功能吗?答案当然是不,经过一番对比,最终我决定换用ackee或者umami。这两个统计工具都支持无服务器部署,但我还是选择了umami。以下是umami和matomo的一些区别:
对比项目 | matomo | umami |
---|---|---|
项目大小 | 26MB(5.3.1) | 1.83MB(github仓库) |
JS文件大小 | 67460 bytes | 2,713 bytes |
支持serverless | 理论上支持 | 支持 |
支持2FA | 是 | 否 |
可定制化JS名称 | 否 | 是 |
使用数据库 | mysql | mysql/PostgreSQL |
API丰富程度 | 非常丰富 | 无 |
从文件大小上来看umami真的是轻量化了很多,对网站速度都有很大优化。不支持2FA是个扣分项,但服务和数据库都在云端,不需要登录服务器使用,算是没太大影响。数据库这方面使用neon提供的免费Postgre套餐可以满足项目使用需求,所以理论上是不需要投入任何费用的。至于API,仅有官方服务的会提供,自建的版本是没有的。
vercel部署和neon数据库
先去neon使用github或者google账号登录,首次登录会要求新建项目(Create Project
),只需要输入项目名称(Project Name
)、数据库名称(Database name
)并选择地域(Region
),前两项根据自己需求填写,地域根据vercel分配一般选择AWS US三个中的一个即可。
新建完先要点进项目,左侧Project
下有个Branches
,点击Primary compute
下方的蓝字,默认是0.25-2CU,点进去把Configure the autoscaling range
拖动到只有0.25,并点击SAVE
。之所以要这么做,是因为neon的免费套餐包含0.5G的存储、0.5G的每月数据传输、10个项目和每个项目10个分支、10000的最大并发数,190的计算时长。这里的计算时长(compute hours)关联的是运行的CPU数据、服务器运行时长,比如CU是2,每天运行24小时,一个月的计算时长=2x24x30=1440,这对190来说显然是超出太多了,而调整成0.25则=0.25x24*30=180,正好够用。虽然他支持0.25-2之间的动态调整,谁知道什么情况下突然拉起来,这个情况下数据库就被停了,所以最好调整下。
然后回到项目页面,找到Connect
,点进去把左下角的Show Passowrd
点开,然后复制Connect to your database
的内容备用。
注册vercel账号并使用github登录,按照官方文档官方文档直接把项目仓库Fork到自己的github并登录vercel导入这个仓库,或者直接一键Deploy。在New Project
页面输入Private Repository Name
,随意即可,再点Create
。
然后配置环境变量,一般只需要三个:
变量名称 | 含义 | 必须 |
---|---|---|
DATABASE_URL | 数据库地址,即上面使用neon拿到的Connect to your database 的内容。如果是mysql格式为:mysql://username:mypassword@localhost:3306/数据库名称 | 是 |
HASH_SALT | 一串随机字符串 | 否 |
TRACKER_SCRIPT_NAME | 追踪JS文件的名称,不设置默认是umami.js | 否 |
再点击Deploy
,等待2~3分钟即完成部署。
因为vercel提供的vercel.app域名在国内无法解析,部署完成后点进项目的Settings
下的Domains
,选择Add
,在Domain
输入你自己的域名,点Add Domain
保存。至于域名从哪来,可以去一些提供免费二级域名的服务商获取。然后去服务商CNAME解析域名到cname.vercel-dns.com保存,一两分钟后会自动申请好SSL证书,就可以通过自己的域名访问了。
umami设置
umami部署后默认的用户名密码是admin/umami,登录进去在个人资料可以修改语言成中文,在设置下的用户可以修改和添加用户名和密码。
在网站页面点击添加网站,输入名称和域名,完成后点击域名的设置,在跟踪代码下可以找到那串script,放到网页的之前即可。
完成之后刷新一下访问统计就出来了。
感觉
因为直接使用vercel的cdn,访问速度真的很快,而且也没有什么多余的东西。使用matomo的时候不知道是不是我的配置问题访问来源一直出不来,现在也能显示了。虽然没有独立app,直接使用网页访问也是非常顺滑的,而且他没有办法显示访客的具体机型、浏览器版本、系统版本等信息,比如matomo下会显示为Xiaomi 15, Chrome 117.xx.xx, Android 15
,umami就只有Android, Chrome
这种信息,对我来说意义不大。