基础环境

系统环境:

操作系统:CentOS Stream 9

软件环境:

Docker、Docker Compose

安装Docker

(1)安装 yum-utils 软件包(提供 yum-config-manager 实用程序)并设置存储库。

1
2
3
4
# 安装 yum-utils 软件包
yum install -y yum-utils
# 设置docker-ce存储库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

(2)安装最新版docker和docker compose。

1
2

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

(3)修改Docker的数据目录为“/data/dockerData”,并重启docker服务使配置生效。

1
2
3
4
5
6
7
8
9
10
11
# 创建Docker守护进程配置文件
# 编辑配置文件/etc/docker/daemon.json,配置docker数据目录
vi /etc/docker/daemon.json
**************************daemon.json**************************
{
"data-root": "/data/dockerData"
}
**************************daemon.json**************************

# 重启docker服务,使配置生效
[root@Book-ELK-VM-113 data]# systemctl restart docker

(4)启动Docker服务,并设置为开机自启动。

1
2
3
4
5
6
# 启动Docker服务
systemctl start docker
# 设置Docker为开机自启动
systemctl enable docker
# 查看Docker服务状态
systemctl status docker

部署并配置Matomo

部署Matomo

(1)创建script目录存放yml文件,编排部署Matomo。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
mkdir /data/script
vi /data/script/matomo.yml
**************************matomo.yml**************************
services:
matomo-sql:
# 使用 MySQL 数据库镜像
image: mysql:latest
# 容器名称
container_name: matomo-sql
# 容器重启策略:如果容器停止,总是重启
restart: always
# 配置环境变量
environment:
# 设置数据库名
- MYSQL_DATABASE=matomo
# 设置数据库用户名
- MYSQL_USER=matomo
# 设置数据库用户密码
- MYSQL_PASSWORD=matomo
# 设置数据库 root 用户密码
- MYSQL_ROOT_PASSWORD=matomo
# 设置时区
- TZ=Asia/Shanghai
# 暴露的端口号映射,将 MySQL 的 3306 端口映射到宿主机
ports:
- "3306:3306"
# 将宿主机的目录挂载到容器的 MySQL 数据目录
volumes:
- /data/database/matomo-sql:/var/lib/mysql
# 使用 root 用户权限运行容器
user: "0"
# 网络配置
networks:
# 使用自定义网络 'net'
net:
# 为容器分配固定的 IPv4 地址
ipv4_address: 172.18.0.10

matomo-app:
# 使用 Matomo 应用镜像
image: matomo:latest
# 容器名称
container_name: matomo-app
# 容器重启策略:如果容器停止,总是重启
restart: always
# 链接到 MySQL 数据库服务
links:
- matomo-sql
# 将宿主机的目录挂载到 Matomo 应用目录
volumes:
- /data/matomo:/var/www/html
# 设置环境变量
environment:
# 设置时区
- TZ=Asia/Shanghai
# 指定数据库主机名为 'matomo-sql'
- MATOMO_DATABASE_HOST=matomo-sql
# 设置 PHP 内存限制
- PHP_MEMORY_LIMIT=2048M
# 指定数据库适配器为 MySQL
- MATOMO_DATABASE_ADAPTER=mysql
# 设置数据库表名前缀
- MATOMO_DATABASE_TABLES_PREFIX=matomo_
# 指定数据库用户名
- MATOMO_DATABASE_USERNAME=matomo
# 指定数据库用户密码
- MATOMO_DATABASE_PASSWORD=matomo
# 指定数据库名称
- MATOMO_DATABASE_DBNAME=matomo
# 使用 root 用户权限运行容器
user: "0"
# 容器端口映射,将 Matomo 的 80 端口映射到宿主机
ports:
- "80:80"
# 网络配置
networks:
# 使用自定义网络 'net'
net:
# 为容器分配固定的 IPv4 地址
ipv4_address: 172.18.0.11

# 自定义网络配置
networks:
# 定义自定义网络 'net'
net:
# 使用桥接网络驱动
driver: bridge
# IP 地址管理配置
ipam:
config:
# 为自定义网络设置子网
- subnet: 172.18.0.0/24
**************************matomo.yml**************************

(2)执行Docker Compose创建容器,并查看当前正在运行的 Docker 容器。

1
2
docker compose -f /data/script/matomo.yml up -d
docker ps

配置Matomo

(1)在浏览器中访问http://本机ip,按引导进行安装。

(2)在向导”3.数据库设置“界面中查看并修改数据库配置信息,此处的“数据库服务器”名称填写的是数据库容器名称。

(3)在向导”5.超级用户“界面中,创建超级用户的用户名、密码及电子邮箱。

(4)在向导”6.设置网站“界面中,请设置一个想用Matomo追踪、分析的站点。

(5)在向导”7.JavaScript 跟踪代码“界面中,复制代码片段,添加到网站的每个页面,追踪网站的流量。

(6)安装完成后登录matomo,在“仪表面板”界面中,选择【INSTALL WITH JAVASRCIPT代码】,查看追踪代码。

(7)选择【TEST INSTALLATION】,测试是否能够监控网站流量,当出现”The tracking code is installed successfully! This screen will disappear as soon as some data is tracked for your website.“的绿色字样时,网站流量可正常追踪。

(8)选择菜单栏中的”所有网站”,查看所有监控的网站报表及总访问量、访问者、浏览量、活动者、收入等元素。

可选配置

(1)选择“设置”图标,选择“个人”中“设置”,将默认加载的报表日期改为“今天”。

(2)选择“设置”图标,选择“隐私设置”中“匿名化数据”,取消勾选“隐藏访客的IP地址”。

(3)选择“设置”图标,选择“网站”中“设置”,新网站默认时区选择“中国-上海”,新网站的默认货币选择“人民币 (¥)”。

(4)选择“设置”图标,选择“系统”中“地理位置”,将位置信息提供商修改为“DBIP / GeolP 2 (Php)”。

(5)选择“设置”图标,选择“平台”中“商城”,安装IP2Location、LogViewer、MarketingCampaignsReporting、Profile Gravatar插件,安装LogViewer插件后,需要在本地映射目录/data/matomo/config/中,对global.ini.php中的[log]模块进行修改。修改完成后,重启app容器。

1
2
3
4
5
6
[log]
log_writers[] = file
log_level = INFO

# 重启app容器
docker restart matomo-app

(6)启用插件TagManager 、DBStats。