自建网站统计 — Umami
在数据隐私日益受到重视的今天,越来越多的网站运营者开始放弃 Google Analytics 等第三方统计服务,转而选择自建、轻量、开源的替代方案。Umami 正是其中的佼佼者。它界面简洁、资源占用低、功能实用,且完全尊重用户隐私——不使用 Cookie,不追踪用户行为细节,仅记录必要的访问数据。本文将介绍 Umami 的核心功能、详细部署步骤(含 Docker Compose 配置),并展示其实际效果。
一、Umami 是什么?
Umami 是一个开源的网站分析工具,由 @mikecao 开发,采用 MIT 许可证发布。其设计理念是“简单、快速、隐私优先”,适用于个人博客、企业官网、小型项目等场景。
主要功能包括:
- 实时访问统计:展示当前在线人数、页面浏览量(PV)、独立访客数(UV)。
- 多站点支持:一个 Umami 实例可管理多个网站,通过不同跟踪 ID 区分。
- 设备与浏览器分析:自动识别访问者的设备类型(桌面/移动)、操作系统、浏览器。
- 来源与地域分析:统计流量来源(直接访问、搜索引擎、外部链接)及访客国家/地区。
- 页面路径与入口/出口页:了解用户最常访问的页面及跳出情况。
- 自定义事件追踪:通过 JavaScript API 手动上报自定义行为(如按钮点击)。
- 无 Cookie 设计:默认不使用 Cookie,符合 GDPR 等隐私法规要求。
- 响应式界面:支持 PC 与移动端访问后台。
与 Matomo 等重型方案相比,Umami 更轻量(前端仅 ~5KB JS 文件),部署简单,资源消耗极低,非常适合自建。
二、使用 Docker Compose 部署 Umami
Umami 官方提供了完善的 Docker 镜像,推荐使用 Docker Compose 方式一键部署。以下是详细步骤。
前提条件
- 一台运行 Linux 的服务器(如 Ubuntu 20.04+)
- 已安装 Docker 和 Docker Compose
- 域名(可选,用于 HTTPS 访问)
1. 创建项目目录
mkdir umami && cd umami
2. 编写 docker-compose.yml 文件
创建 docker-compose.yml,内容如下:
version: '3.8'
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
DATABASE_TYPE: postgresql
HASH_SALT: your_strong_salt_here # 建议替换为强随机字符串
depends_on:
- db
restart: always
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: umami
volumes:
- umami-db-data:/var/lib/postgresql/data
restart: always
volumes:
umami-db-data:
说明:
- 使用 PostgreSQL 作为数据库(官方推荐,性能优于 SQLite)。
HASH_SALT用于加密用户密码,请务必修改为一个高强度随机字符串(如openssl rand -hex 32生成)。- 服务默认监听
3000端口,可通过 Nginx 反向代理绑定域名并启用 HTTPS。
3. 启动服务
在 umami 目录下执行:
docker-compose up -d
首次启动会自动初始化数据库和管理员账户,过程约需 1–2 分钟。
4. 访问管理后台
浏览器访问 http://你的服务器IP:3000,默认管理员账号为:
- 用户名:
admin - 密码:
umami
⚠️ 首次登录后请立即在 Settings → Account 中修改密码!
三、接入网站并查看统计效果
1. 添加网站
登录后台后,点击 Websites → Add website,填写网站名称和域名(如 example.com),系统会生成一个唯一的 Tracking ID(格式如 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。
2. 嵌入统计代码
将以下代码添加到你网站的 <head> 标签中(替换 YOUR_TRACKING_ID 和 YOUR_UMAMI_URL):
<script async src="http://your-umami-domain.com/umami.js" data-website-id="YOUR_TRACKING_ID"></script>
若通过 HTTPS 访问 Umami,则使用 https://...。
提示:为提升加载速度,可将
umami.js缓存或使用 CDN。
3. 查看统计效果
部署完成后,访问你的网站,稍等几秒即可在 Umami 后台看到实时数据。典型界面包括:
- 概览面板:显示今日 PV/UV、在线人数、热门页面。
- 流量来源:区分直接访问、搜索引擎(如 Google、Bing)、社交平台等。
- 设备分布:桌面 vs 移动端占比,主流浏览器类型。
- 地理分布:基于 IP 的国家/地区热力图(需数据库支持,Umami 默认集成轻量 GeoIP)。
界面清爽直观,无广告、无干扰,真正聚焦核心数据。

四、进阶建议
- 配置 HTTPS:使用 Nginx + Let's Encrypt 为 Umami 启用 HTTPS,保障数据传输安全。
- 备份数据库:定期备份
umami-db-data卷,防止数据丢失。 - 限制访问:可通过 Nginx 添加 Basic Auth 或 IP 白名单,保护管理后台。
- 性能优化:对于高流量站点,可调整 PostgreSQL 配置或使用独立数据库实例。
结语
Umami 以极简的设计、强大的隐私保护和零成本的自建能力,成为替代商业统计工具的理想选择。借助 Docker Compose,部署过程只需几分钟,后续维护成本极低。对于注重数据主权与用户体验的开发者和站长而言,Umami 不仅是一个工具,更是一种对“干净网络”的实践。
官方网站:https://umami.is
GitHub 仓库:https://github.com/umami-software/umami
评论