📅 最后更新于 2026-06-23

用 VPS 自建网站分析

Google Analytics 很强大,但它收集的数据远超你需要的信息。Umami 能让你看到真实的访问数据,不需要 cookie 弹窗,数据完全在你的 VPS 上。

为什么自建网站分析?

Google Analytics 有四个问题让越来越多的站长转向自托管方案:

Umami 是什么?

Umami 是一个开源的网站分析工具,用 Next.js 构建,PostgreSQL 或 MySQL 做数据库。它有:

部署后,你只需要在每个要跟踪的网页中加一行 <script> 标签。

需要什么配置?

个人博客/小站

  • 1 vCPU
  • 1 GB 内存
  • 20 GB SSD
  • 适合:1-5 个网站,日 PV < 5000
  • 月费约 $3-5

多站点/中等流量

  • 1-2 vCPU
  • 2 GB 内存
  • 40 GB SSD
  • 适合:5-20 个网站,日 PV < 50000
  • 月费约 $5-10

高流量/团队共享

  • 2+ vCPU
  • 4 GB 内存
  • 80 GB SSD
  • 适合:20+ 网站、高流量、多团队成员
  • 月费约 $10-20

Umami 本身很轻量(Next.js 应用约 200MB 内存),但 PostgreSQL 数据库会随着数据积累增长。1GB 内存给个人网站用完全够,日 PV 上万后建议 2GB。

Docker Compose 部署

1. 安装 Docker

apt update && apt upgrade -y
curl -fsSL https://get.docker.com | sh

2. 创建 docker-compose.yml

mkdir -p /opt/umami && cd /opt/umami

复制以下内容。注意替换三个密码和 APP_SECRET:

version: '3.8'

services:
  db:
    image: postgres:16-alpine
    container_name: umami_db
    restart: unless-stopped
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: change_db_password
    volumes:
      - pg_data:/var/lib/postgresql/data
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

  umami:
    image: ghcr.io/umami-software/umami:postgresql-latest
    container_name: umami_app
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://umami:change_db_password@db:5432/umami
      APP_SECRET: change_this_to_random_string_at_least_32_chars
    depends_on:
      - db
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

volumes:
  pg_data:

3. 启动并创建管理员

docker compose up -d

访问 http://IP:3000,默认账号 admin 密码 umami。登录后立即修改密码。

4. 添加网站并获取跟踪代码

在 Umami 后台「设置 → 网站」中添加你的域名。系统会生成一行跟踪代码,放到网站所有页面的 <head> 中:

<script defer src="https://analytics.yourdomain.com/script.js"
  data-website-id="your-website-id"></script>

部署后等几分钟,Umami 仪表盘就会显示访问数据。

5. 配置 HTTPS(推荐)

用 Nginx Proxy Manager 给 Umami 加 SSL:

docker run -d --name npm --restart unless-stopped -p 80:80 -p 443:443 -p 81:81 -v npm_data:/data -v npm_ssl:/etc/letsencrypt jc21/nginx-proxy-manager:latest

添加反向代理指向 umami_app:3000,申请 Let's Encrypt 证书。

Umami vs Plausible vs Matomo

UmamiPlausible CEMatomo
开源协议MITAGPLGPL
脚本大小< 2KB< 1KB约 22KB
最低内存1GB2GB+2GB+
数据库PostgreSQL/MySQLPostgreSQL+ClickHouseMySQL
适合场景个人/小团队中大型站点需要完整功能
部署难度简单,2 个容器中等,4+ 容器中等

个人博客和小型商业站点从 Umami 开始最合理。部署简单,资源占用少。Plausible 和 Matomo 适合对分析功能要求更高的场景。

用哪家 VPS?

核心考量:分析工具的延迟主要体现在你的访客打开网页时加载跟踪脚本的速度。如果访客主要在海外,美国或欧洲机房即可;如果在国内,需要考虑线路。
商家推荐配置月费最合适
HetznerCX22 (2GB)€3.79/月欧洲访客、性价比最高
InterServer1 Slice (2GB)$3/月美国访客、月付灵活
Vultr1GB Cloud$6/月需要多机房测试延迟
搬瓦工 CN2 GIA1GB 入门$49/年起中国访客为主,需优化线路

选择建议

常见问题

常见问题

Umami 和 Google Analytics 数据差别大吗?
会有差异,但这是预期的。原因:Umami 不依赖 cookie,同一个用户在不同设备或清除浏览器数据后会被计为新访客;Umami 默认被广告拦截器影响更小(因为脚本轻量且不用于广告跟踪);GA 使用采样和数据估算,Umami 记录每一条原始请求。重点是趋势而非绝对值。
Umami 会影响网站性能吗?
几乎不影响。Umami 的跟踪脚本只有 2KB(GA 是 45KB+),使用 defer 异步加载,不会阻塞页面渲染。对 Core Web Vitals 和 SEO 评分的影响可忽略。
Umami 需要 cookie 弹窗吗?
不需要。Umami 不收集个人信息、不使用 cookie 做跨站跟踪、不存储用户 IP 的完整地址。因此符合 GDPR、PECR 和 CCPA 的要求,不强制要求 cookie 同意弹窗。但仍然建议在隐私政策中说明你使用了自托管分析工具。
数据存在哪?怎么备份?
所有数据存在 VPS 的 PostgreSQL 数据库中。备份方式:定期用 pg_dump 导出 SQL 文件,或用 cron + rsync 同步到另一台 VPS。Umami 的数据库增长比较慢,每天几千 PV 的情况下月增长约 50-100MB。
自建分析工具值得吗?
如果你已经有 VPS 在跑其他服务,加一个 Umami 基本上不增加成本(1GB 内存投入)。相比付费方案(Plausible Cloud $9/月、Fathom $14/月),自建回本很快。如果你还没有 VPS,只为了分析买一台 $3-5/月的 VPS,比直接付费买 SaaS 版的回本周期是 2-3 个月。