Umami 云服务器上自建简单易用、自托管的开源网站访问流量统计分析工具

简介

Umami 是一款简单易用、自托管的开源网站访问流量统计分析工具,类似 Google An­a­lyt­ics、Cloud­flare Web An­a­lyt­ics、CNZZ、51LA 等。但 Umami 不使用 Cookie,不跟踪用户,且所有收集的数据都会匿名化处理,符合 GDPR 政策,资源占用很低,虽然功能简单,但分析的数据内容很丰富,基本的来源国家,来源域名,使用的浏览器、系统、设备,访问的网页这些都有,而且还支持多国语言。

Github:https://github.com/mikecao/umami

项目主页:https://umami.is/

效果预览:https://app.umami.is/share/8rmHaheU/umami.is

安装

这里推荐最省时省力的安装方式 —— 基于 Docker-Com­pose 构建并运行。

安装 Docker 与 Docker-Com­pose,如已安装的,可跳过这个步骤

curl -fsSL https://get.docker.com | bash -s docker
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

拉取源码

git clone https://github.com/mikecao/umami.git

配置 docker-compose.xml 文件:

【情况一】默认使用 docker 构建 postgresql 数据库:docker-compose.xml 文件,主要修改 DATABASE_URL、HASH_SALT、POSTGRES_DB、POSTGRES_USER、POSTGRES_PASSWORD 这几项, 如下:

version: '3'
services:
  umami:
    image: ghcr.io/umami-software/umami:postgresql-latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://【数据库用户】:【数据库密码】@db:5432/【数据库名称】
      DATABASE_TYPE: postgresql
      HASH_SALT: 【填写随机字符串】
    depends_on:
      - db
    restart: always
  db:
    image: postgres:12-alpine
    environment:
      POSTGRES_DB: umami     #自定义数据库名称
      POSTGRES_USER: umami     #自定义数据库用户名
      POSTGRES_PASSWORD: umami     #自定义数据库密码
    volumes:
      - ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
      - umami-db-data:/var/lib/postgresql/data
    restart: always
volumes:
  umami-db-data:

【情况二】使用宿主环境非 docker 构建的 MySQL:则需要将 network_mode 网络模式修改为 host , docker-compose.xml 格式参考如下:

version: '3'
services:
  umami:
    image: ghcr.io/mikecao/umami:mysql-latest
    network_mode: "host"
    environment:
      DATABASE_URL: mysql://【数据库用户名】:【数据库密码】@127.0.0.1:3306/【数据库名称】
      DATABASE_TYPE: mysql
      HASH_SALT: 【填写随机字符串】
    restart: always
    container_name: umami

数据库连接格式,参考如下:

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

创建容器并运行

cd umami/
# 后台运行容器
docker-compose up -d

使用

浏览器访问 http://localhost:3000 也可以通过 IP 直接访问,默认用户名为 admin,默认密码为 umami

登录后台后,可以选择切换中文:

设置,添加网站,设置好网站名字和域名,如果勾选 启用共享连接 则会为你的网站分析数据生成一个分享链接:

然后就可以获取统计代码,放到网站对应的位置:

反向代理

这里补充一下使用 Ng­inx 反代来绑定域名,或者使用宝塔反代。

server {
  server_name umami.yourdomain.com;

  location / {
    proxy_pass http://localhost:3000;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}