开源的网站数据分析统计平台——Matomo

Matomo


在这里插入图片描述

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

    #yum list installed | grep php #查看已安装的PHP,
    #查到后rpm -e 卸载 #yum repolist all | grep php
    yum install epel-release -y
    
  • 2.安装REMI源:

     rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
    
  • 3.查看可以安装的PHP版本:

    yum repolist all | grep php
    
  • 4.安装管理工具

    yum install yum-utils
    
  • 5.设置默认安装的版本

    yum-config-manager --enable remi-php73
    
  • 6.安装php

    yum install php
    
  • 7.查看php安装版本

    php -v
    
  • 8.查看哪些可以安装的PHP扩展

    yum search php74-php
    
  • 9.安装php拓展

    yum 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

    #启动 php-fpm
    systemctl start php-fpm.service
    #停止 php-fpm
    systemctl stop php-fpm.service
    #重启 php-fpm
    systemctl reload php-fpm.service
    
  • 11.查看php扩展

    php -m
    

    在这里插入图片描述

3.nginx配置

matomo的安装包是通过php的网页安装,但php直接访问会被当成普通文件直接下载,不会被编译,

所以需要在nginx中配置 php-fpm 解释器

  • nginx.conf文件配置

    user 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

# 解压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跟踪代码

    在这里插入图片描述

    <!-- 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

    // 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 测试代码
    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标签追踪链接
<!-- Matomo Image Tracker-->
<img referrerpolicy="no-referrer-when-downgrade" src="http://192.168.10.45:8088/matomo.php?idsite=1&amp;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等。

Matomo API 介绍Matomo API 参考资料

  • 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 发起请求

    例子为:每次访问持续时间的访问次数

    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,我们可以更深入地了解我们的网站和用户,从而提升网站的价值和效果。

尾声
感谢小伙伴们的支持吖,祝大家万圣节快乐哦!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
今天的 Matomo 是一个完整的多合一网络分析平台网站在线数据网络统计分析平台 Matomo 提供: Matomo 分析界面 100% 数据所有权 – 将您的数据掌握在自己手中 灵活性 可靠性和安全性 一个易于使用的工具 用户隐私保护 自托管本地或云主机的选项 开源分析 GDPR 合规性 100 多个集成 对于我们的用户来说,这意味着: 网络和移动分析 转换优化功能(热图、会话记录、AB 测试、漏斗、表单分析) 访客档案 标签管理器 没有数据限制 无数据采样 白标报告和定制设计的界面 Matomo 的价值观: 开放性 自由 透明度 数据所有权 隐私 Kaizen(改善):持续改进 将这些核心价值与可用的最强大的网络分析和转换优化功能结合起来。这使得各种规模的企业都可以轻松访问它。您所需要的只是这个集中式工具。 完整的分析。100% 你的。 使用 Matomo,企业和个人可以放心,数据 100% 属于您,并且您用户的隐私得到尊重。网站所有者(您)和访问者之间的关系仍然存在,没有外部来源查看。这是因为您可以选择在自己的服务器上自行托管 Matomo,以确保数据保留在您的手中。 从 2007 年的 Piwik 到现在的 2018 年的 Matomo,这是一段令人难以置信的旅程。对于那些从一开始就相信我们的人,我们要向你们表示衷心的感谢!对于未来的支持者,我们很高兴您能加入我们。前面有令人兴奋的项目,我们迫不及待想与大家分享。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LvhaoIT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值