Ubuntu搭建统计网站Umami统计

Umami 是 Google Analytics 的简单、快速、注重隐私的替代方案

官方GitHub地址:https://github.com/umami-software/umami
官方docker镜像地址: https://docker.umami.dev/umami-software/umami:postgresql-latest

UMAMI 基于Node.js 开发,并且支持 MySQL 或 Postgresql 等数据库存储方式,可以将数据掌握在自己手中。并且 UMAMI 还提供了非常详细的流量分析可视化的界面,UI 体验以及统计准确度十分不错。UMAMI目前还可以防止被广告屏蔽插件等等屏蔽,统计精准度大。

官方文档:详细的入门指南可以在https://umami.is/docs/找到

自建统计网站Umami统计-1

功能
  • 网站分析:Umami 可以跟踪和分析网站的访问量、页面浏览量、用户行为等指标,帮助你了解用户如何与你的网站进行交互。
  • 事件跟踪:它支持对特定事件的跟踪,例如按钮点击、表单提交、视频播放等,以便你了解用户在网站上的具体操作。
  • 用户洞察:通过Umami,你可以获取有关用户的信息,如访问频率、新用户与回访用户的比例等,从而深入了解你的用户群体。
  • 来源分析:Umami 可以追踪用户访问网站的来源,包括搜索引擎、社交媒体、直接访问等,帮助你评估营销渠道的效果。
  • 自定义报表:根据你的需求,Umami 允许你创建自定义的报表和图表,以便更好地分析和可视化数据。
  • A/B 测试支持:Umami 可以帮助你进行 A/B 测试,比较不同版本的页面或功能,以优化网站的用户体验。
  • 数据导出:你可以将数据导出为 CSV 或其他格式,以便与其他工具或分析平台进行集成和进一步分析。
特点
  • 简单易用:Umami 具有用户友好的界面和易于设置的特性,即使对于非技术人员也相对容易上手。
  • 开源免费:作为开源项目,Umami 可以免费使用,并且你可以根据自己的需求进行定制和扩展。
  • 数据隐私:Umami 注重用户数据的隐私,不会收集敏感信息或用于广告目的。
  • 轻量级:它的设计相对简洁,不会对网站的性能产生显著影响,适合中小型网站和项目。
  • 灵活定制:由于是开源的,你可以根据自己的需求对 Umami 进行二次开发和定制,以满足特定的分析要求。
  • 实时数据:Umami 提供实时数据的监测和反馈,让你能够及时了解网站的动态和用户行为。

要求:

  • 具有 Node.js 版本 12 或更高版本的服务器
  •  Umami 支持 MySQL 和 Postgresql 数据库。

在 Ubuntu 上安装 Node.js 并将 npm 更新到最新版本

安装Node.js

NodeSource 将继续维护以下架构,并可能在将来添加其他架构。

  • amd64(64 位)
  • armhf(ARM 32 位硬浮点、ARMv7 及更高版本:arm-linux-gnueabihf
  • arm64(ARM 64 位、ARMv8 及更高版本:aarch64-linux-gnu

Node项目网站:https://github.com/nodesource/distributions

自建统计umami统计-1

更新系统

sudo apt update && sudo apt upgrade

安装依赖

sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y

 

Node.js v21.x

通过NodeSource提供的官方包安装 自带最新npm

Node.js目前有三个版本,Node.js 18.x 、Node.js 20.x、Node.js 21.x

以下是 Node.js 20.x的安装,一行代码搞定。&&\ 的意思是前面的命令执行无误后,再执行后面代码

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\
sudo apt-get install -y nodejs

使用root身份安装

curl -fsSL https://deb.nodesource.com/setup_20.x | bash - &&\
apt-get install -y nodejs

如果安装其它版本,只需将上面命令中的setup_20.x换成所需安装的版本即可。

Node官网下载地址:https://nodejs.org/en/download/

还有另外一种方法,直接在ubuntu上使用apt安装Node

sudo apt update	
sudo apt install nodejs
#不自带 npm 需要自行安装
sudo apt install npm
# 升级 npm
sudo npm install npm -g	
#使用 n Node版本管理工具升级到 最新版
sudo npm install n -g
# 下载最新稳定版
sudo n stable
# 下载最新版
sudo n lastest
# 查看已下载的版本
sudo n ls
# 切换 Node 版本
sudo n 18.21.1

卸载nodejs Ubuntu 和 Debian 软件包

apt-get purge nodejs &&\
rm -rf /etc/apt/sources.list.d/nodesource.list &&\
rm -rf /etc/apt/keyrings/nodesource.gpg

安装Yarn

因为该项目使用Yarn进行编译,所以我们要安装一下Yarn。

npm install -g yarn

新建MySQL数据库

这里我们使用的是MySQL,在数据库中新建一个空数据库

使用phpmyadmin,在服务器上创建一个Umami的空数据库

自建统计网站Umami统计-1

或者在服务器上直接创建:

mysql -u root -p umami < sql/schema.mysql.sql

安装Umami

 

下载安装Umami

自定义下载到/home/umami目录,你也可以放在其他目录。

cd /home/
#git拉取umami
git clone https://github.com/umami-software/umami.git
#进入umami目录
cd umami
#安装
yarn install

自建统计网站Umami统计-1耐心等待,安装完毕后,需要配置.env 文件

配置 .env 文件

在 umami 文件夹中新建一个名为 .env 的文件。

使用touch命令新建.env文件,或者直接使用vim命令新建.env文件

vi .env

注意.env文件创建完毕后,在目录下是查看不到的,.env是隐藏文件,可以使用vi直接编辑。

编辑.env文件输入以下配置保存即可:

DATABASE_URL=mysql://用户名:密码@localhost:3306/数据库名称
APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/
DISABLE_TELEMETRY=1
TRACKER_SCRIPT_NAME=custom
  • DATABASE_URL:按说明填写我们之前配置的数据库参数即可。
  • HASH_SALT:填写随机字符即可,加密用。
  • TRACKER_SCRIPT_NAME:统计链接的自定义js文件名称,你喜欢什么名字就输入什么,不要用中文,后面也不用加.js。

两种数据库的链接方式示例

postgresql://username:mypassword@localhost:5432/mydb
mysql://username:mypassword@localhost:3306/mydb

编译 Umami

yarn build

等他执行完即可。

如果遇到无法连接数据库的错误

$ node scripts/check-db.js
✓ DATABASE_URL is defined.
✗ Unable to connect to the database.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ERROR: “check-db” exited with 1.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

将localhost修改为127.0.0.1

DATABASE_URL=mysql://用户名:密码@127.0.0.1:3306/数据库名称
APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/
DISABLE_TELEMETRY=1
TRACKER_SCRIPT_NAME=custom

卸载Umami

如果在安装过程中出现一些不可逆的操作,可以卸载掉Umami再重新安装,删除掉Umami的安装目录即可

rm -rf /home/umami
reboot

启动应用程序

通常使用yarn start就可以直接启动,但是退出ssh之后就直接停止运行了,所以需要用一些工具保证后台运行,官方文档中的推荐是安装PM2管理器。

npm install pm2 -g
sudo yarn global add pm2
cd /home/umami
pm2 start npm --name umami -- start 
pm2 startup
pm2 save

自建统计网站Umami统计-1

如果没显示什么错误即安装成功,测试本机http://127.0.0.1:3000打开是否正常。

curl http://127.0.0.1:3000

查看一下有没有数据输出。

自建统计网站Umami统计-1查看3000端口当前状态,如果3000端口没有占用,那么umami应该是没有启动起来。

lsof -i:3000

使用你的服务器IP+端口,在浏览器中打开Umami

Ubuntu搭建统计网站Umami统计-1

使用系统默认的用户名和密码进行登录

  • 用户名:admin
  • 密码:umami

Ubuntu搭建统计网站Umami统计-1

页面很简洁大方,快去设置你的吧!添加网站后获取代码就可以进行统计了!

记得在个人资料里更改密码,密码设置复杂一些!

Ubuntu搭建统计网站Umami统计-1

PM2卸载

#禁止开机启动PM2
pm2 unstartup
#杀死守护程序
pm2 kill
#卸载
npm remove pm2 -g
#删除所有保存的配置和日志
rm -rf ~/.pm2

最后,删除完成后,进入 /usr/local/lib/node_modules/ 下面查看是否有pm2文件夹,如果有的话直接删除即可。

OpenLiteSpeed做反向代理服务器

在OpenLiteSpeed中新建一个虚拟主机,然后进入到此主机中新建外部应用程序 , 类型选择 网络服务器, 名称写tongji , 地址就写 127.0.0.1 :3000, 可以写公网IP:3000

Ubuntu搭建统计网站Umami统计-1

Ubuntu搭建统计网站Umami统计-2

Ubuntu搭建统计网站Umami统计-3

然后创建一个资源集,类型选择 Proxy, URI设置为 /

Ubuntu搭建统计网站Umami统计-1

Ubuntu搭建统计网站Umami统计-2

Ubuntu搭建统计网站Umami统计-3

 

注意:网络服务器选择之前创建的tongji,其它设置填写最大。

重写规则, 因为 前后端域名不一样, 所以要用 伪静态规则把域名也传递到后端, 否则后端会拒绝连接, 前端直接返回403或者500错误。

Ubuntu搭建统计网站Umami统计-1

RewriteRule ^/(.*)$ http://tongji/$1 [P,E=Proxy-Host:xxx.com]
注意 其中 tongji 是 第二步里的外部应用程序名称, xxx.com是反向代理的域名。
安装 CyberPanel 面板的,重写规则会提示 Disabled by CyberPanel ,需要在CyberPanel 面板对应的网站里面填写重写规则。
最后,重新启动OpenLiteSpeed就可以正常访问了。

配置中文

我们登陆后台后,可能默认是英文,该面板自带简体中文。打开Settings–>Profile–>Language选择中文即可。

升级更新umami

关于umami有更新,先暂停pm2然后执行以下代码更新后再运行:

pm2 stop umami
#进入umami文件目录
cd /home/umami 
git pull
yarn install
yarn build

到这里umami搭建就正式结束了。其余配置都很简单,我们只需要根据umami面板提示的操作进行即可,有不懂的欢迎评论区留言交流。

参考文章:https://www.howtoforge.com/how-to-install-umami-analytics-on-debian-12/

5/5 - (1 vote)

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注