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

Matomo

文章目录

  • Matomo
    • 前言
    • 一、环境准备
      • 1. 整体安装流程
      • 2.安装PHP 7.3.30
      • 3.nginx配置
      • 4.安装matomo
          • 4.1 访问安装页面 http://192.168.10.45:8088/index.php
          • 4.2 连接数据库
          • 4.3 设置管理员账号
          • 4.4 生成js跟踪代码
          • 4.5 安装完成
          • 4.6 警告修改
          • 4.7 刷新页面,就可以看到登陆页面
    • 二、Matomo使用
      • 1. JS代码跟踪
          • 1.1 获取生成js
          • 1.2 网站粘贴js代码
          • 1.3 访问后查看报表
          • 1.4 js方法封装
          • 1.5 测试代码
          • 1.6 报表
      • 2. IMG跟踪
    • 使用img标签追踪
      • img标签追踪链接
      • 3. HTTP API 跟踪
      • ==注意:必填参数==
          • api测试
      • 4.HTTP API 获取报告
          • 4.1 创建身份验证token
    • 身份验证
          • 4.2 拼接查询参数
          • 4.3 发起请求

开源的网站数据分析统计平台——Matomo_第1张图片

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文件

    开源的网站数据分析统计平台——Matomo_第2张图片

    启动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
    

    开源的网站数据分析统计平台——Matomo_第3张图片

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;
            }
        }
    
    }
    
    
    

    开源的网站数据分析统计平台——Matomo_第4张图片

​ 重启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

开源的网站数据分析统计平台——Matomo_第5张图片

  • 4.1 访问安装页面 http://192.168.10.45:8088/index.php

    开源的网站数据分析统计平台——Matomo_第6张图片

  • 4.2 连接数据库

    开源的网站数据分析统计平台——Matomo_第7张图片

    开源的网站数据分析统计平台——Matomo_第8张图片

  • 4.3 设置管理员账号

    开源的网站数据分析统计平台——Matomo_第9张图片

  • 4.4 生成js跟踪代码

    开源的网站数据分析统计平台——Matomo_第10张图片

    <!-- 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 安装完成

    开源的网站数据分析统计平台——Matomo_第11张图片

  • 4.6 警告修改

    开源的网站数据分析统计平台——Matomo_第12张图片

    修改 config.ini.php

    开源的网站数据分析统计平台——Matomo_第13张图片

    找到 trusted_hosts[] = "192.168.10.45" ,增加端口,改为 trusted_hosts[] = "192.168.10.45:8088"

    另外还需要再增加一行 enable_trusted_host_check=0,用于跳过受信任检测,否则反代之后登录可能会失败

    开源的网站数据分析统计平台——Matomo_第14张图片

  • 4.7 刷新页面,就可以看到登陆页面

    开源的网站数据分析统计平台——Matomo_第15张图片

二、Matomo使用

1. JS代码跟踪

  • 1.1 获取生成js

    开源的网站数据分析统计平台——Matomo_第16张图片

  • 1.2 网站粘贴js代码

    开源的网站数据分析统计平台——Matomo_第17张图片

  • 1.3 访问后查看报表

    开源的网站数据分析统计平台——Matomo_第18张图片

  • 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 报表

    开源的网站数据分析统计平台——Matomo_第19张图片

2. IMG跟踪

使用img标签追踪

当访客禁用 JavaScript 或者无法使用 JavaScript 时,img标签追踪功能(Image Tracking)允许您使用img标签中的链接来进行访客统计。 在下方产生链接,并将生成的 HTML 粘贴到网页中。如果要把它用作 JavaScript 的追踪功能失败时的备用方式,您可以把它放在 标签中。

查看 追踪 API 说明文档阅读可用于img标签追踪链接的全部参数列表。

img标签追踪链接

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

    开源的网站数据分析统计平台——Matomo_第20张图片

  • 查看报表

    开源的网站数据分析统计平台——Matomo_第21张图片

4.HTTP API 获取报告

Matomo中的所有数据,都可通过简单的API接口获取。这个插件是Web服务的切入点,那你可以通过调用获取你想要的网站分析的数据,比如XML,JSON,PHP,CSV等。

Matomo API 介绍 和 Matomo API 参考资料。

  • 4.1 创建身份验证token

    身份验证

    如果要在脚本,crontab等中请求数据,则需要将URL参数token_auth添加到需要身份验证的API调用URL中。

    注意:超级管理员和编辑权限生成的令牌是不能在查询中使用的,所以要换其他只读账号生成

    令牌: 3c0a2e399a490607f029ae35a727b357

    开源的网站数据分析统计平台——Matomo_第22张图片

    开源的网站数据分析统计平台——Matomo_第23张图片

  • 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
    

    开源的网站数据分析统计平台——Matomo_第24张图片

    返回参数注释

    开源的网站数据分析统计平台——Matomo_第25张图片

    通过以上步骤,我们就可以使用linux实例来搭建自己的Matomo平台,并进行网站数据分析了。

    Matomo不仅可以帮助我们获取网站的基本数据,还可以进行高级分析,如用户行为、转化率、目标跟踪、电子商务等。此外,Matomo还支持多种扩展和集成,如地理位置、社交媒体、搜索引擎优化等。通过Matomo,我们可以更深入地了解我们的网站和用户,从而提升网站的价值和效果。

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

你可能感兴趣的:(工具插件,开源,数据分析,matomo,网站数据统计)