一、Umami安装教程

网站:

  1. 官网:https://umami.is
  2. 演示:https://app.umami.is/share/8rmHaheU/umami.is
  3. 项目:https://github.com/mikecao/umami

1.1 安装前准备

一台VPS主机。Umami对于服务器配置要求不高,一般来说200M的小内存VPS主机就可以跑Umami了,选购便宜VPS主机参考本站介绍。

配置好Docker环境。Umami虽然安装方式有多样,但是推荐Docker安装,几分钟就可以完成,相当方便。Docker安装推荐使用一键安装方法,一个命令就可以搞定:Docker 和 Docker Compose 一键安装脚本 。

Umami统计安装Docker环境

1. Umami安装

执行以下命令将Umami项目下载到本地:

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

利用SFTP进入到umami文件夹里,找到项目内自带的compose文件:

Umami统计找到下载文件

用记事本打开,大部分内容不需要修改,改一下数据库的密码即可。

Umami统计修改密码

进入到umami文件夹,然后执行安装命令。

#cd umami
docker-compose up -d
Umami统计开始安装

安装完成后,打开:IP:3000 就可以看到umami页面了。

Umami统计查看页面

1.3 Umami域名

Umami上面的安装已经完成了,但是只能使用IP+端口访问,我们这里就要利用到Nginx反向绑定域名的方法来实现Umami域名访问了。代码如下:

location / {
proxy_pass http://127.0.0.1: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;
}

如果你用的是LNMP或者Oneinstack一键安装包,找到Nginx配置文件,然后添加以上反向绑定域名的代码即可。配置方法和Bitwarden自建密码存储系统图文教程绑定域名反代类似,主要调整你的反代部分,示例如下:

server
{
listen 443 ssl http2;
#listen [::]:443 ssl http2;
server_name tmth.wzfou.me ;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/wzfou.com;
location / {
proxy_pass http://127.0.0.1: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;
}
ssl_certificate /usr/local/nginx/conf/ssl/tmth.wzfou.me/fullchain.cer;
ssl_certificate_key /usr/local/nginx/conf/ssl/tmth.wzfou.me/tmth.wzfou.me.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers “TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5”;
ssl_session_cache builtin:1000 shared:SSL:10m;
# openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
access_log /home/wwwlogs/tmth.wzfou.me.log;
}

如果你用的是宝塔面板/aapanel面板,那就更简单了,直接在宝塔面板的网站管理设置添加:IP:3000 。(详情请看宝塔面板教程)

Umami统计绑定域名

现在使用域名就可以访问你的Umami了,用默认的管理员账号:admin 密码:umami 就可以登录了。

Umami统计域名访问

 

2.Docker安装

这简直深得我心,而且这款程序还支持 Docker 部署,不得不说这也是逐渐成为了许多开源程序的潮流——容器化。得益于此,我们可以方便地部署、迁移、备份每一个程序。下面介绍使用 Docker Compose 部署的方式。

安装 Docker

这里我们只需要安装 Docker,因为现在 Docker Compose 已经作为插件集成到了 Docker 里面,下面是一键安装命令、卸载命令:

#安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh ./get-docker.sh

#卸载Docker
sudo apt-get purge docker-ce #删除安装包
sudo rm -rf /var/lib/docker #删除镜像、容器、配置文件等内容

部署 Umami

部署过程同样非常简单,我的习惯是每一个 Docker 项目都会单独放一个文件夹,然后使用 Docker Compose 一键部署,这样也不需要面对一长串的命令行代码改来改去了,因为可以直接在格式化的 yaml 文件里编辑,这样更加的直观。

首先在 /data 目录下创建 umami 文件夹(放在哪里全屏个人喜好):

mkdir /data/umami

然后创建 docker-compose.yaml 文件:

cd /data/umami
touch docker-compose.yaml

然后编辑 docker-compose.yaml 文件,添加下面的内容:

version: '3'
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: replace-me-with-a-random-string
    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

保存之后在当前目录(存放有 docker-compose.yaml 的目录)执行:

docker compose up -d

耐心等待一会儿我们就可以访问 http://ip:3000 进行管理了。默认账号密码是

  • Username: admin
  • Password: umami

 

Nginx 反向代理

老生常谈的问题,我们总不可能无时无刻地访问 IP 进行管理,下面是 Nginx 配置文件的例子:

server {
    listen 443 ssl http2;
    server_name <域名>;

    ssl_certificate      <SSL 证书文件>;
    ssl_certificate_key  <SSL 证书密钥>;

    ssl_prefer_server_ciphers on;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    # intermediate configuration. tweak to your needs.
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

    location / {
      proxy_pass http://127.0.0.1:3000;
      proxy_set_header Host $host;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection upgrade;
      proxy_set_header Accept-Encoding "";
    }
}

Umami 使用

登陆进去后第一步先修改默认密码:

修改默认密码
修改默认密码

然后添加需要统计的网站:

添加网站
添加网站

输入名字、域名即可,添加完成之后获取统计代码:

获取统计代码
获取统计代码

将代码复制之后,加在网站的 <head> 标签内即可,不用担心会影响访问速度,因为这个 js 的加载方式是 async defer,添加完成之后就可以在网站后台查看实时的访问统计了。

针对 WordPress 统计优化

如果简单粗暴地在主题文件或者全局 <head> 标签里添加上统计代码,会把已经登陆的用户(管理员)也统计进去,甚至后台页面也会被记录。所以需要在主题 header.php 文件里的 <head> 标签加入一句判断语句,然后再插入统计代码:

<?php if (!is_user_logged_in()){ ?>
<替换成你的统计代码>
<?php } ?>

 

二、Umami统计操作

2.1 Umami设置

登录Umami,可以先设置一下密码、语言、时区等,Umami支持中文。

Umami统计设置中文

2.2 添加统计网站

Umami后台可以直接添加你想要统计的网站域名。

Umami统计添加网站

然后Umami会给出一段代码,将这个代码放在你的网站所有页面下。

Umami统计复制代码

2.3 Umami效果

Umami的统计功能并不多,但是很实用,例如基本的来源国家,来源域名,使用的浏览器、系统、设备,访问的网页这些都有。

Umami统计访客数据

通过Umami可以查看访问用户来自哪里。

Umami统计客户来源

Umami的地域区分为国家。

Umami统计各地分布

三、总结

Umami的统计功能不多但是很实用,基本上可以满足我们日常小站的数据统计需要了。Umami安装简单,尤其是支持Docker,你可以将它安装在你的同网站的服务器上,占用内存小。

最后修改日期: 2022年1月24日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。