为了各章节的完整性导致部分内容有些冗余,可略读
1.网站统计,why?
建立自己的博客之后,我们可能想获取博客的访问情况,包括但不限于访客IP、访客数量、博文的浏览量。从而洞悉博客的改进方向以及博文的受欢迎程度,提高博客的访问量,借此获取微不足道的收益或结交志同道合的朋友。其实很多博客主题都可能带有一定的统计功能,大都借助 不蒜子 进行统计,因为其免费且简单,但是问题也很明显,至今不蒜子都没有开通注册功能,也自然没有其许诺的“对于已经上线一段时间的网站,‘不蒜子’允许您初始化首次数据”功能,这意味着博客的浏览量一大部分都是由自己贡献的…,本文介绍几种网站统计的方式,包括利用类似不蒜子的第三方进行统计或docker部署自己的统计服务。
2.51LA统计
这是第三方统计,需要先前往 51LA官网 注册账号,使用最新的 V6 流量统计系统 创建应用。
1.添加应用统计
2.填写应用名称以及需要统计的网站域名
3.获取SDK追踪代码并复制
4.将复制的追踪代码注入到需要监控的网站中
对于Halo博客可以直接登录到后台进行代码注入
5.查看统计到的监测数据
代码注入之后,等待几分钟可以看到 安装成功,之后点击 查看报表 就可以看到网站的监测数据了
不仅可以看到PV、UV还可以获取访问者的城市、受访页面等大量网站访问信息
3.自部署网站统计
安装前提:
1.备好服务器
2.已经安装好docker和docker compose,请参看我的博文 docker系列-docker与docker compose安装
安装建议:
1.将所有docker项目放在统一目录 /root/data/docker_data/ 下,方面后期管理与维护
2.添加SWAP虚拟内存,请参看我的博文 添加 SWAP 虚拟内存
3.1 Umami统计
3.1.1 Umami简介
Umami作为使用广泛的网站统计应用,不仅免费小巧而且易于部署、界面美观,可以非常直观地看到网站访问数据。美中不足的是访客的地址只能精确到国家无法精确到省市。
Umami官网:https://umami.is/
3.1.2 Umami的安装
3.1.2.1 创建安装目录
mkdir -p /root/data/docker_data/umami
3.1.2.2 创建docker-compose.yaml文件并上传至服务器
上传 docker-compose.yaml 文件到umami目录下,docker-compose.yaml 文件内容如下:
version: '3'
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3000:3000" # 左侧为umami外部访问端口,可自行修改注意不要冲突
environment:
DATABASE_URL: postgresql://umami:password666@db:5432/umami # 数据库密码与下方一致
DATABASE_TYPE: postgresql
APP_SECRET: replace-me-with-a-random-string
depends_on:
db:
condition: service_healthy
restart: always
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: password666 # 数据库密码,注意修改
volumes:
- ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
- ./umami-db-data:/var/lib/postgresql/data
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
volumes:
umami-db-data:
3.1.3 Umami的部署
查看3000端口有没有被占用
lsof -i:3000
没有占用,进入umami目录下进行部署即可,若被占用可以更换为其它未被占用的端口,之后执行如下命令进行部署:
cd /root/data/docker_data/umami
docker compose up -d
3.1.4 Umami的基本使用
访问 http://ip:3000, 登录Umami后台
初始账号:admin
初始密码:umami
3.1.4.1 Umami的基础设置
登陆之后尽快修改密码,还可以修改语言与时区
3.1.4.2 获取追踪代码并注入到网站中
1.添加网站
2.获取追踪代码
3.将追踪代码注入到网站的head区域
等待几分钟后,查看仪表板就能看到统计信息了
3.1.4.3 共享链接功能
Umami还可以开启共享链接的功能,开启之后访客也可以通过共享链接查看网站的统计信息
3.1.5 Umami的升级与更新
# 方式一
cd /root/data/docker_data/umami
docker compose down --rmi all # 停止容器运行并删除相关镜像
vim docker-compose.yml # 修改umami的版本号为最新,如果使用的是latest版本可以忽略此步骤
docker compose up -d # 重新运行容器
# 方式二
cd /root/data/docker_data/umami
docker compose down # 停止容器运行
vim docker-compose.yml # 修改umami的版本号为最新,如果使用的是latest版本可以忽略此步骤
docker compose pull # 重新拉取镜像
docker compose up -d # 重新运行容器
3.1.6 Umami的卸载
cd /root/data/docker_data/umami
docker compose down --rmi all # 停止容器运行并删除相关镜像
cd ..
rm -rf /root/data/docker_data/umami # 完全删除
3.2 Matomo统计
3.2.1 Matomo简介
Matomo作为功能更为强大的网站统计应用同样免费开源,如果Umami不能满足你的统计需求,那你或许可以尝试一下Matomo了,相比与Umami,Matomo可以获取更精细的访客行为,比如访客的访问页面及其耗时、访客IP归属的城市,同时还可以获取访问某一页面的具体时间等,当然其功能的强大远不仅限于此。内存占用大约为0.8G,如果仅仅只想统计一下访客数据,建议放弃部署,因为许多功能对于你来说会显得特别鸡肋。
Matomo官网:https://matomo.org/
3.2.2 Matomo的安装
3.2.2.1 创建安装目录
mkdir -p /root/data/docker_data/matomo
3.2.2.2 创建docker-compose.yaml文件并上传至服务器
上传 docker-compose.yaml 文件到Matomo目录下,docker-compose.yaml 文件内容如下:
version: '3'
services:
matomo-sql:
image: mysql:latest # 使用 MySQL 数据库镜像
container_name: matomo-sql
restart: always # 容器重启策略:如果容器停止,总是重启
environment:
- MYSQL_DATABASE=matomo # 设置数据库名
- MYSQL_USER=sqwfly # 设置数据库用户名,自行修改
- MYSQL_PASSWORD=password123 # 设置数据库用户密码,自行修改与下面保存一致
- MYSQL_ROOT_PASSWORD=rootpassword # 设置数据库 root 用户密码,自行修改
- TZ=Asia/Shanghai # 设置时区
ports:
- "3306:3306" # 左侧端口为暴露的端口号映射,将 MySQL 的 3306 端口映射到宿主机
volumes:
- ./data/matomo-sql:/var/lib/mysql # 将宿主机的目录挂载到容器的 MySQL 数据目录
matomo-app:
image: matomo:latest
container_name: matomo-app
restart: always
links:
- matomo-sql # 链接到 MySQL 数据库服务
volumes:
- ./data/matomo:/var/www/html # 将宿主机的目录挂载到 Matomo 应用目录
environment:
- TZ=Asia/Shanghai # 设置时区
- MATOMO_DATABASE_HOST=matomo-sql # 指定数据库主机名为 'matomo-sql'
- PHP_MEMORY_LIMIT=2048M # 设置 PHP 内存限制
- MATOMO_DATABASE_ADAPTER=mysql # 指定数据库适配器为 MySQL
- MATOMO_DATABASE_TABLES_PREFIX=matomo_ # 设置数据库表名前缀
- MATOMO_DATABASE_USERNAME=sqwfly # 指定数据库用户名,自行修改
- MATOMO_DATABASE_PASSWORD=password123 # 指定数据库用户密码,自行修改与上面保持一致
- MATOMO_DATABASE_DBNAME=matomo # 指定数据库名称
ports:
- "84:80" # 容器端口映射,将 Matomo 的 80 端口映射到宿主机
3.2.3 Matomo的部署
查看84端口有没有被占用
lsof -i:84
没有占用,进入matomo目录下进行部署即可,若被占用可以更换为其它未被占用的端口,之后执行如下命令进行部署:
cd /root/data/docker_data/matomo
docker compose up -d
3.2.4 Matomo的基本使用
3.2.4.1 Matomo的初始化
访问 http://ip:84, 会以图形化界面的形式提示初始化步骤,具体如下(无关操作已忽略),除了数据库设置剩余操作都可以在应用的设置中找到:
1.数据库设置
2.设置超级用户即管理员
自己设置管理员的用户名、密码以及邮箱
3.设置需要统计的网站以及时区
4.获取追踪代码
3.2.4.2 将追踪代码并注入到网站中
复制获取的追踪代码到网站的head区域
等待一段时间就可以查看统计信息了,初始界面如下
你也可以点击报表界面进行面板的自定义配置
3.2.5 Matomo的升级与更新
# 方式一
cd /root/data/docker_data/matomo
docker compose down --rmi all # 停止容器运行并删除相关镜像
vim docker-compose.yml # 修改matomo的版本号为最新,如果使用的是latest版本可以忽略此步骤
docker compose up -d # 重新运行容器
# 方式二
cd /root/data/docker_data/matomo
docker compose down # 停止容器运行
vim docker-compose.yml # 修改matomo的版本号为最新,如果使用的是latest版本可以忽略此步骤
docker compose pull # 重新拉取镜像
docker compose up -d # 重新运行容器
3.2.6 Matomo的卸载
cd /root/data/docker_data/matomo
docker compose down --rmi all # 停止容器运行并删除相关镜像
cd ..
rm -rf /root/data/docker_data/matomo # 完全删除
评论区