Matomo
文章目录
- Matomo
-
- 前言
- 一、环境准备
-
- [1. 整体安装流程](#1. 整体安装流程)
- [2.安装PHP 7.3.30](#2.安装PHP 7.3.30)
- 3.nginx配置
- 4.安装matomo
-
-
- [4.1 访问安装页面 http://192.168.10.45:8088/index.php](#4.1 访问安装页面 http://192.168.10.45:8088/index.php)
- [4.2 连接数据库](#4.2 连接数据库)
- [4.3 设置管理员账号](#4.3 设置管理员账号)
- [4.4 生成js跟踪代码](#4.4 生成js跟踪代码)
- [4.5 安装完成](#4.5 安装完成)
- [4.6 警告修改](#4.6 警告修改)
- [4.7 刷新页面,就可以看到登陆页面](#4.7 刷新页面,就可以看到登陆页面)
-
- 二、Matomo使用
-
- [1. JS代码跟踪](#1. JS代码跟踪)
-
-
- [1.1 获取生成js](#1.1 获取生成js)
- [1.2 网站粘贴js代码](#1.2 网站粘贴js代码)
- [1.3 访问后查看报表](#1.3 访问后查看报表)
- [1.4 js方法封装](#1.4 js方法封装)
- [1.5 测试代码](#1.5 测试代码)
- [1.6 报表](#1.6 报表)
-
- [2. IMG跟踪](#2. IMG跟踪)
- [3. HTTP API 跟踪](#3. HTTP API 跟踪)
- [4.HTTP API 获取报告](#4.HTTP API 获取报告)
-
-
- [4.1 创建身份验证token](#4.1 创建身份验证token)
-
- 身份验证
-
-
-
- [4.2 拼接查询参数](#4.2 拼接查询参数)
- [4.3 发起请求](#4.3 发起请求)
-
-
Matomo
: 一款开源的网站数据分析统计平台,以前称为 `Piwik,可以让您轻松地从访问者那里获得您想要的信息。例如查看您的网站访问者来自何处、正在查看哪些页面、单击了哪些链接以及其他各种有用的信息。可以用于跟踪、分析您的网站的流量,同时充分保障数据安全性、隐私性,
提供了丰富的报告和实时数据分析功能,并提供了一套完整的隐私保护措施,确保用户数据安全。
官网传送门:matomo
前言
本文是为了在linux
系统上安装matomo
,并使用它完成页面跟踪
与统计数据获取
。
一、环境准备
1. 整体安装流程
- PHP 7.2.5 或者以上的版本
- 安装php扩展:pdo 和pdo_mysql
- MySQL 5.5或者以上的版本
- nginx配置
- 下载安装matomo 4.15.1
2.安装PHP 7.3.30
-
1.安装epel
sh#yum list installed | grep php #查看已安装的PHP, #查到后rpm -e 卸载 #yum repolist all | grep php yum install epel-release -y
-
2.安装REMI源:
shrpm -ivh https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
-
3.查看可以安装的PHP版本:
shyum repolist all | grep php
-
4.安装管理工具
shellyum install yum-utils
-
5.设置默认安装的版本
shyum-config-manager --enable remi-php73
-
6.安装php
shyum install php
-
7.查看php安装版本
shphp -v
-
8.查看哪些可以安装的PHP扩展
shyum search php74-php
-
9.安装php拓展
shyum install php74-php-bcmath php74-php-gd php74-php-pdo php74-php-mbstring php74-php-cli php74-php-fpm php74-php-mysqlnd php74-php-simplexml php74-php-devel yum install php php-curl php-gd php-cli mysql-server php-mysql php-xml php-mbstring php-fpm
-
10.运行php-fpm
修改
/etc/php-fpm.d/www.conf
文件启动fpm程序
systemctl start php-fpm.service
sh#启动 php-fpm systemctl start php-fpm.service #停止 php-fpm systemctl stop php-fpm.service #重启 php-fpm systemctl reload php-fpm.service
-
11.查看php扩展
shphp -m
3.nginx配置
matomo的安装包是通过php的网页安装,但php直接访问会被当成普通文件直接下载,不会被编译,
所以需要在nginx中配置
php-fpm
解释器
-
nginx.conf文件配置
shelluser nginx nginx; #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 8088; server_name 192.168.10.45; charset utf-8; root /matomo/matomo; #location / { # try_files $uri $uri/ /index.php?$query_string; #} location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }
重启nginx nginx -s reload
4.安装matomo
sh
# 解压matomo压缩包
unzip matomo-latest.zip -d ./
#给解压的安装包赋权限
chown -R nginx:nginx /matomo
chown -R 777 /matomo/*
注:如果出现 nginx No input file specified
错误,检查nginx错误日志如有 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
,尝试关闭selinux解决:``setenforce 0`。
安全增强型Linux(SELinux)是一个Linux内核的功能,它提供支持访问控制的安全政策保护机制。记录操作如何关闭SELinux,并且避免系统无法启动的问题。
执行命令:
setenforce 0临时关闭SELinux
4.1 访问安装页面 http://192.168.10.45:8088/index.php
*
4.2 连接数据库
*
4.3 设置管理员账号
*
4.4 生成js跟踪代码
js
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//192.168.10.45/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
4.5 安装完成
*
4.6 警告修改
修改 config.ini.php
找到 trusted_hosts[] = "192.168.10.45"
,增加端口,改为 trusted_hosts[] = "192.168.10.45:8088"
另外还需要再增加一行 enable_trusted_host_check=0
,用于跳过受信任检测,否则反代之后登录可能会失败
*
4.7 刷新页面,就可以看到登陆页面
二、Matomo使用
1. JS代码跟踪
1.1 获取生成js
*
1.2 网站粘贴js代码
*
1.3 访问后查看报表
*
1.4 js方法封装
官方api参数:https://developer.matomo.org/guides/tracking-javascript-guide
js
// https://developer.matomo.org/guides/tracking-javascript-guide
/** 页面地址信息上报 */
const setCustomUrl = (url) => {
window._paq.push(['setCustomUrl', `${url}`])
}
/** 页面标题信息上报 */
const trackPageView = (title) => {
window._paq.push(['trackPageView', `${title}`])
}
/** 用户信息userId上报 */
const setUserId = (userId) => {
window._paq.push(['setUserId', `${userId}`])
window._paq.push(['trackPageView'])
}
/** 重置userId,这里多次调用trackAllContentImpressions是为了在退出登录的时候重置调userId,并在下一次登录时重新生成一条最新的记录 */
const resetUserId = () => {
// UserID passed to Matomo (see https://developer.matomo.org/guides/tracking-javascript-guide#user-id)
window._paq.push(['resetUserId'])
window._paq.push(['trackAllContentImpressions', 'new_visit=1'])
window._paq.push(['trackPageView'])
window._paq.push(['trackAllContentImpressions'])
}
/**
* 点击外网地址
* @param url
*/
const setDomains = (url) => {
_paq(['setDomains', [url]]);
_paq.push(['trackPageView']);
}
/**
* 行为埋点
* $matomo.trackEvent('行为类别', '事件', 'name', 'value')
* behaviorCategory 行为类别
* event 事件
* name 事件名称
* value 事件值
*/
const trackEvent = (behaviorCategory, event, name, value) => {
window._paq.push(['trackEvent', `${behaviorCategory}`, `${event}`, `${name}`, `${value}`])
}
const matomoFun = {
setCustomUrl, trackPageView, setUserId, resetUserId, trackEvent
}
export default matomoFun;
1.5 测试代码
js
matomoF(item) {
console.log("matomo--", item);
matomoFun.setUserId("xxx123123xxx");
matomoFun.trackEvent('风险申报', '点击matomo按钮', "测试事件",item.id);
},
1.6 报表
2. IMG跟踪
使用img标签追踪
当访客禁用 JavaScript 或者无法使用 JavaScript 时,img标签追踪功能(Image Tracking)允许您使用img标签中的链接来进行访客统计。 在下方产生链接,并将生成的 HTML 粘贴到网页中。如果要把它用作 JavaScript 的追踪功能失败时的备用方式,您可以把它放在
<noscript></noscript>
标签中。查看 追踪 API 说明文档阅读可用于img标签追踪链接的全部参数列表。
img标签追踪链接
js<!-- Matomo Image Tracker--> <img referrerpolicy="no-referrer-when-downgrade" src="http://192.168.10.45:8088/matomo.php?idsite=1&rec=1" style="border:0" alt="" /> <!-- End Matomo -->
3. HTTP API 跟踪
要跟踪页面浏览量、事件、访问量,必须向跟踪 HTTP API 端点发送 HTTP 请求(GET 或 POST),例如,http://192.168.10.45:8088/matomo.php 设置了正确的查询参数。
官方参数地址:https://developer.matomo.org/api-reference/tracking-api
在线API URL生成器:https://http-builder.openmost.io/
注意:必填参数
idsite
(required) --- The ID of the website we're tracking a visit/action for.
idsite
(必填) --- 我们跟踪其访问/操作的网站的 ID。rec
(required) --- Required for tracking, must be set to one, eg,&rec=1
.
rec
(required) --- 跟踪时需要,必须设置为 1,例如&rec=1
.
api测试
-
查看报表
4.HTTP API 获取报告
Matomo中的所有数据,都可通过简单的API接口获取。这个插件是Web服务的切入点,那你可以通过调用获取你想要的网站分析的数据,比如XML,JSON,PHP,CSV等。
4.1 创建身份验证token
身份验证
如果要在脚本,crontab等中请求数据,则需要将URL参数
token_auth
添加到需要身份验证的API调用URL中。注意:超级管理员和编辑权限生成的令牌是不能在查询中使用的,所以要换其他只读账号生成
令牌: 3c0a2e399a490607f029ae35a727b357
*
4.2 拼接查询参数
参数规范:https://developer.matomo.org/api-reference/reporting-api
标准API参数
idSite :您网站的整数 ID,例如。idSite=1,还可以指定以逗号分隔的 idSites 列表,例如。idSite=1,4,5,6,如果要获取所有网站的数据,请设置 idSite=all(仅某些 API 方法支持此功能)
period: 您请求统计信息的时间段,可以是以下任意一项:日、周、月、年或范围。所有报告都根据网站的时区返回日期
- day:day 返回给定日期的数据。
- week:week 返回包含指定"date"的那一周的数据
- month:返回包含指定"date"的月份的数据
- year:year 返回包含指定"date"的年份的数据
- range:range 返回指定"date"范围的数据。
例如,要请求 1 月 1 日至 2 月 15 日范围的报告,可以编写 &period=range&date=2011-01-01,2011-02-15
date:日期
- 标准格式 = YYYY-MM-DD
- 关键字= today , yesterday , lastWeek , lastMonth or lastYear. These are relative the website timezone. For example, for a website with UTC+12 timezone
- 日期范围 =
lastX
previousX
YYYY-MM-DD,YYYY-MM-DD
segment:定义要将报表筛选到的自定义区段。
format:定义输出的格式,XML、JSON、CSV、TSV、HTM、RSS
filter_limit:定义要返回的行数。
- 默认情况下,仅返回前 100 行。
- 设置为 -1 可返回所有行
module:API api类型
method:获取数据类型,如VisitorInterest.getNumberOfVisitsPerVisitDuration
4.3 发起请求
例子为:每次访问持续时间的访问次数
json
GET http://192.168.10.45:8088/index.php?module=API&method=VisitorInterest.getNumberOfVisitsPerVisitDuration&idSite=1&period=day&date=2023-11-02&token_auth=ca369ba839f4c9c36df034fa1366de3c&format=json
返回参数注释
通过以上步骤,我们就可以使用linux实例来搭建自己的Matomo平台,并进行网站数据分析了。
Matomo不仅可以帮助我们获取网站的基本数据,还可以进行高级分析,如用户行为、转化率、目标跟踪、电子商务等。此外,Matomo还支持多种扩展和集成,如地理位置、社交媒体、搜索引擎优化等。通过Matomo,我们可以更深入地了解我们的网站和用户,从而提升网站的价值和效果。
尾声
感谢小伙伴们的支持吖,祝大家万圣节快乐哦!