前言
前俩期,我们搭建了自己的网站监控——【好玩的Docker项目】搭建一个专属自己的网站监控——Uptime Kuma,还有服务器的监控——【好玩的Docker项目】搭建两个专属自己的服务器监控——Ward && ServerStatus,这一期带大家来搭建一个网站流量的监控,看看自己的小破站到底有多少人看,是不是 1 ip呢?
效果展示
非常清爽,满足小博客使用已经足够了,
搭建视频
YouTube:https://youtu.be/rRBMZwKiCRk
哔哩哔哩:https://www.bilibili.com/BV1eL4y1b7P6
环境准备
- 服务器:腾讯云轻量应用服务器(购买链接)
- 系统:Debian 10(DD脚本)
- 域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程)
- 安装好Docker、Docker-compose(相关脚本)
- 安装好Nginx Proxy Manager(相关教程)
- 宝塔用户建议使用国际版aapanel(下载链接)
开始搭建
1、安装docker、curl、git、vim、wget等必备的工具
apt update -y
apt install -y wget vim sudo curl git
wget -qO- get.docker.com | bash
docker -v
systemctl enable docker
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
2、然后到github上接取项目,进入目录
cd ~
mkdir -p ~/data/docker_data/umami
cd ~/data/docker_data/umami
3、编辑配置文件
nano docker-compose.yml
4、写入Docker-compose代码
---
version: '3'
services:
umami:
image: docker.umami.dev/umami-software/umami:postgresql-latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: replace-me-with-a-random-string
depends_on:
- db
restart: always
db:
image: postgres:15-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
检查完毕之后,ctrl+x
退出,按y
确认修改内容, enter
确认
5、启动Umami
docker-compose up -d
关于Internal Server Error 问题
来自小伙伴@colinsoo 在评论区的反馈:
主要是因为数据库链接和初始化。 在
docker-compose
中有个映射是 →./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
这个.sql
文件可以去作者的仓库里面找到:https://github.com/mikecao/umami/blob/master/sql/schema.mysql.sql
需要提前映射到安装的地方,来初始化数据库(也就是要提前建表),整了一天才发现主要问题在这……可能主要是因为这个东西可以静态部署,所以没有整合到应用里,需要手动执行?
大家可以自行测试一下!
此时,访问http://ip:3000
就可以访问了,打开的是英文界面,右上方可以切换语言,默认用户名为admin
,密码为umami
宝塔用户需要打开防火墙,放行3000
端口,腾讯云、阿里云等用户还需要在官网后台服务器页面放行官方防火墙的3000
端口。
如果要反向代理,且反向代理的服务与umami在一台服务器上,可以不用放行3000
端口。
反向代理
1、宝塔用户
location / {
proxy_pass http://127.0.0.1:3000/;
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
2、NginxProxyManager用户
反向代理的服务与umami在一台服务器上
ip addr show docker0
访问域名即可。
反向代理的服务与umami不在一台服务器上
打开防火墙,放行3000
端口,腾讯云、阿里云等用户还需要在官网后台服务器页面放行官方防火墙的3000
端口。
访问域名即可。
添加到站点
激活共享链接就是公开统计数据。
注意这边添加域名,不需要带https://
Halo
视频教程:如何用服务器优雅地搭建一个博客—Hello,Halo!
Wordpress
将代码加在主题文件的footer.php
下,添加完成之后,刷新浏览器缓存,就能统计到了。
其他的博客也是大同小异,在统计代码的地方加入这段JS代码即可。
最后
目前用了大半年了,感觉效果不错,有一个缺点是不能统计到搜索的关键词。
类似的统计服务还有百度统计、谷歌统计、Matoma等等,不过他们都没有这个这么轻量,如果需要更复杂的功能,可以试试Matomo,也是一个开源的项目。
地址:https://github.com/matomo-org/matomo
评论区