Umami logo

Umami

开源、隐私友好的网站分析平台,MIT 许可,可自托管,提供简洁的流量统计与事件跟踪。

精选工具性能优化网站分析开源隐私友好

开源(MIT)的轻量网站分析工具,作为 Google Analytics 的隐私替代方案,默认不使用 Cookie,跟踪脚本约 2KB,支持多站点管理、自定义事件与 API,基于 Next.js + PostgreSQL 构建,Docker 一键部署。

Umami

开源、隐私友好的网站分析平台,MIT 许可,可自托管,提供简洁的流量统计与事件跟踪。

技术简介说明

Umami 是开源(MIT) 的轻量网站分析工具,作为 Google Analytics 的隐私替代方案而设计。它通过小型跟踪脚本收集页面浏览、来源、浏览器、操作系统、国家等指标,默认不使用 Cookie、不跟踪跨站个人行为,数据由你完全掌控(自托管部署在自有服务器或 Umami Cloud)。

技术栈为 Next.js + PostgreSQL(现代版本),部署可用 Docker 一键启动。与 Plausible 相比,Umami 的 MIT 许可更宽松,适合嵌入商业产品与二次开发;功能上提供网站管理、团队、事件、漏斗(视版本)与 API,是开源社区中最活跃的分析方案之一。

基本信息

  • 官网https://umami.is
  • GitHubhttps://github.com/umami-software/umami
  • License:MIT
  • 跟踪脚本/script.js(自托管)或 Umami Cloud CDN
  • 主要维护者/公司:Umami Software(社区驱动)
  • GitHub Stars:约 25,000+
  • 运行环境:Node.js 18+、PostgreSQL;浏览器跟踪脚本

快速上手

Docker 自托管(推荐)

git clone https://github.com/umami-software/umami.git
cd umami
docker compose up -d

默认 http://localhost:3000,登录 admin / umami,在控制台添加网站获取 Website ID

跟踪脚本

<script
  defer
  src="https://your-umami.example.com/script.js"
  data-website-id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
></script>

Next.js 集成

import Script from 'next/script'
 
<Script
  defer
  src={`${process.env.NEXT_PUBLIC_UMAMI_URL}/script.js`}
  data-website-id={process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID}
  strategy="afterInteractive"
/>

自定义事件

umami.track('signup', { plan: 'pro' })

React Hook(社区模式)

// 路由变化时
useEffect(() => {
  if (typeof window.umami !== 'undefined') {
    window.umami.track((props) => ({ ...props, url: pathname }))
  }
}, [pathname])

核心特性

  • MIT 开源:可自由修改、商用、嵌入产品。
  • 轻量脚本:约 2KB,defer,对性能影响小。
  • 无 Cookie 设计:隐私友好,简化合规。
  • 多站点管理:单实例托管多个网站。
  • 团队与权限:多用户协作(视版本)。
  • 自定义事件umami.track(event, data)
  • API:查询统计数据集成 BI。
  • Umami Cloud:官方托管,免运维。
  • Docker 部署:生产常用 compose + PostgreSQL。

适用场景

  • 需要完全数据主权的博客、文档、营销站、内部工具。
  • 希望 MIT 许可二次开发或白标分析面板的产品公司。
  • 预算有限,不愿为 GA4 或企业 RUM 付费的小团队。
  • 欧盟/隐私敏感地区,避免第三方美国云分析。
  • 与 Plausible 二选一:偏好 MIT + 自托管生态选 Umami。

技术亮点

  • GitHub 25k+ stars:社区活跃,迭代快。
  • 现代栈:Next.js App Router、TypeScript、Prisma/PostgreSQL。
  • 部署简单:Docker 数分钟可运行。
  • 云与自托管并行:先 Cloud 验证再迁移。
  • 实时仪表板:页面、来源、设备、国家可视化清爽。

核心概念与架构

浏览器 script.js
      ↓
 POST /api/send(或 collect 端点)
      ↓
 Umami Server(Next.js API)
      ↓
 PostgreSQL(事件聚合)
      ↓
 Dashboard UI / Stats API

核心概念

  • Website ID:每个跟踪站点的 UUID。
  • Session:短期匿名会话(无 Cookie 时基于 IP+UA 等哈希,见文档隐私说明)。
  • Event:自定义 umami.track 名称与 data。
  • Team:多用户共享网站访问。

技术局限与边界

  • 非 GA 级营销归因:广告平台、BigQuery 导出生态弱。
  • 高流量扩展:超大规模 PV 需数据库调优与分片,非开箱企业级。
  • Session Replay 无:需另配回放工具。
  • 自托管运维:备份、升级、HTTPS、反垃圾流量自行负责。
  • SPA 路由:需手动或中间件触发 pageview,否则只记首屏。

生态地图

生态集成

  • Next.jsnext/script + 环境变量注入 website id。
  • 反向代理:Nginx/Caddy 子路径 /umami 托管。
  • Turbo/Monorepo:可 fork 为内部 @company/analytics 包。
  • Grafana:通过 API 拉取指标到自定义面板(非原生)。
  • CSP:允许 script 与 connect 到自托管域。

开发与工程化

  • 环境变量DATABASE_URLAPP_SECRET 生产必改默认密码。
  • HTTPS:生产强制 TLS,防止脚本被劫持。
  • 过滤内部 IP:Umami 支持忽略 IP 范围(员工流量)。
  • 数据库迁移:升级版本前阅读 release note 跑 migrate。
  • 备份策略:PostgreSQL 定期快照。

性能与安全

  • 性能:脚本极小;自托管 API 需 CDN/缓存优化高并发 collect。
  • 安全:改默认 admin 密码;暴露公网需防刷量(rate limit)。
  • 隐私data 勿含 email/phone;遵守站点隐私政策。
  • MIT 自由:嵌入产品时仍建议披露分析采集说明。

技术对比

维度UmamiPlausibleMatomo
LicenseMITAGPL / SaaSGPL
自托管
脚本~2KB~1KB较大
功能极丰富
Stars25k+
适合MIT 商用欧盟 SaaS全功能自托管

最佳实践

  1. Docker + PostgreSQL 生产部署,勿用默认凭证。
  2. SPA 路由变化手动 track,确保单页统计准确。
  3. 开发环境禁用或独立 website id。
  4. 定期升级获取安全补丁与新 API。
  5. 高流量前压测 collect 端点与 DB 连接池。
  6. 与法务确认无 Cookie 分析在目标市场是否仍须横幅。

学习与社区资源