Matomo 网站分析平台部署教程

Matomo(原 Piwik)是全球最流行的开源网站分析平台,是 Google Analytics 的最佳自托管替代方案。自托管 Matomo 意味着你完全掌控用户数据,不必将流量信息交给第三方,天然符合 GDPR 等数据隐私法规。本文将在搬瓦工 VPS 上部署 Matomo 并进行完整配置。

一、Docker 方式部署(推荐)

确保已安装 Docker 和 Docker Compose

1.1 创建 Docker Compose 配置

mkdir -p /opt/matomo && cd /opt/matomo

创建 docker-compose.yml

version: '3.8'

services:
  db:
    image: mariadb:11
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: rootpassword
      MARIADB_DATABASE: matomo
      MARIADB_USER: matomo
      MARIADB_PASSWORD: matomo_password
    volumes:
      - db_data:/var/lib/mysql
    command: --max-allowed-packet=64MB

  matomo:
    image: matomo:latest
    restart: always
    depends_on:
      - db
    ports:
      - "8080:80"
    environment:
      MATOMO_DATABASE_HOST: db
      MATOMO_DATABASE_DBNAME: matomo
      MATOMO_DATABASE_USERNAME: matomo
      MATOMO_DATABASE_PASSWORD: matomo_password
    volumes:
      - matomo_data:/var/www/html
      - ./config:/var/www/html/config

volumes:
  db_data:
  matomo_data:
docker compose up -d

1.2 配置 Nginx 反向代理

server {
    listen 80;
    listen 443 ssl http2;
    server_name analytics.example.com;

    ssl_certificate /etc/letsencrypt/live/analytics.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/analytics.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 追踪脚本缓存配置
    location ~ ^/matomo\.(js|php)$ {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
nginx -t && systemctl reload nginx

1.3 运行安装向导

访问 https://analytics.example.com,按照向导完成安装,填写数据库连接信息和超级管理员账号。

二、添加追踪代码

安装完成后,Matomo 会生成追踪代码。将以下代码添加到你要监控的网站的 </head> 标签之前:

<!-- Matomo -->
<script>
  var _paq = window._paq = window._paq || [];
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.example.com/";
    _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 -->

三、高级功能配置

3.1 目标和转化追踪

在 Matomo 管理面板中,进入"目标"页面创建转化目标,支持的目标类型包括:

  • 访问特定 URL(如感谢页面)。
  • 页面标题匹配。
  • 下载文件操作。
  • 点击外部链接。
  • 自定义事件触发。

3.2 自定义事件追踪

// 追踪按钮点击事件
_paq.push(['trackEvent', 'Button', 'Click', '购买按钮']);

// 追踪搜索行为
_paq.push(['trackSiteSearch', '搜索关键词', '商品分类', 10]);

// 追踪内容交互
_paq.push(['trackContentImpression', 'Banner', '首页轮播图', 'https://example.com/promo']);

3.3 电商追踪

// 设置电商视图
_paq.push(['setEcommerceView', 'SKU001', '产品名称', ['分类A'], 99.9]);

// 添加购物车
_paq.push(['addEcommerceItem', 'SKU001', '产品名称', ['分类A'], 99.9, 1]);
_paq.push(['trackEcommerceCartUpdate', 99.9]);

// 追踪订单完成
_paq.push(['addEcommerceItem', 'SKU001', '产品名称', ['分类A'], 99.9, 1]);
_paq.push(['trackEcommerceOrder', 'ORDER123', 99.9, 99.9, 0, 0, 0]);

四、数据隐私与合规

Matomo 内置了强大的隐私保护功能:

  • IP 匿名化:在"管理 > 隐私 > 匿名化数据"中启用,将 IP 地址的最后几个字节替换为零。
  • Do Not Track 支持:在"隐私"设置中启用浏览器的 DNT 请求。
  • 数据保留策略:设置原始数据和汇总报告的自动删除周期。
  • 用户退出选项:提供嵌入式退出表单让用户选择不被追踪。

五、性能优化

5.1 配置归档 Cron

Matomo 默认在用户访问报告时实时计算,这会导致加载缓慢。配置定时归档可以预先计算报告:

# 添加 Cron 任务
echo "5 * * * * docker exec matomo-matomo-1 php /var/www/html/console core:archive --url=https://analytics.example.com" | crontab -

然后在 Matomo 的"系统 > 通用设置"中,将"浏览器触发归档"设为"否"。

5.2 数据库优化

# 优化 MariaDB 配置
docker exec matomo-db-1 mysql -u root -p -e "
SET GLOBAL innodb_buffer_pool_size = 536870912;
SET GLOBAL query_cache_size = 67108864;
"

六、数据备份

# 备份数据库
docker exec matomo-db-1 mysqldump -u matomo -pmatomo_password matomo | gzip > /root/backups/matomo_$(date +%Y%m%d).sql.gz

# 备份配置文件
tar -czf /root/backups/matomo_config_$(date +%Y%m%d).tar.gz /opt/matomo/config/

总结

Matomo 是功能最全面的自托管网站分析方案,提供了与 Google Analytics 不相上下的分析能力,同时保证了数据完全自主可控。在搬瓦工 VPS 上通过 Docker 部署非常方便,1GB 内存即可运行中小流量的网站分析。如果你需要更轻量的统计工具,可以参考 GoatCounterAckee。选购搬瓦工 VPS 请查看 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 进入官网购买。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。