如何使用Matomo统计Icecast2音频流的访问数据
Icecast2音频流接入Matomo统计的两种可行方案
方案1:日志导入模式(无代码侵入,推荐新手使用)
- 确认Icecast2已开启访问日志,你可以在
/etc/icecast2/icecast.xml配置文件中调整日志存储路径,默认路径一般为/var/log/icecast2/access.log,确保日志中包含请求IP、请求路径、User-Agent、请求时间、状态码核心字段即可。 - 使用Matomo官方自带的开源日志导入工具
log-analytics,无需额外安装付费组件,直接在Matomo服务器部署对应版本的导入脚本即可。 - 配置导入规则过滤仅统计音频流请求,参考执行命令:
python import_logs.py \ --url=https://你的Matomo服务地址 \ --idsite=对应站点ID \ --exclude-path=*/admin* \ --include-path=*/*.mp3 \ --include-path=*/*.ogg \ --include-path=*/*.flac \ /var/log/icecast2/access.log
- 将上述命令配置为系统定时任务,建议每5-15分钟执行一次,即可自动同步Icecast2的访问数据到Matomo,你可以在Matomo后台新增自定义维度区分站点页面访问和音频流访问。
方案2:实时回调上报模式(低延迟,适合需要实时数据的场景)
- 利用Icecast2原生的回调钩子配置,在
icecast.xml的<mount>节点下新增<url>相关配置,当有用户建立/断开流连接时,Icecast2会主动向你指定的本地服务地址上报请求的详细参数。 - 编写一个轻量的中间转发脚本(支持PHP/Python/Node.js等任意语言,代码量不超过50行),接收Icecast2的回调参数后,调用Matomo的HTTP Tracking API上报访问数据,无需加载Matomo的JS统计脚本。
- 该方案支持自定义上报听众收听时长、断开原因等自定义字段,统计延迟低于1分钟,可实现实时查看流访问人数、来源分布等数据。
注意事项
- 统计前需要排除自有服务器IP、CDN回源IP段,避免统计到无效的内部请求
- 若Icecast2前配置了CDN分发,需要在日志或回调参数中优先取
X-Forwarded-For等头字段携带的真实用户IP,保证统计数据准确性 - 你可以在Matomo后台单独新建站点专门统计音频流数据,与原有WordPress站点数据分开管理,也可以合并到同一站点通过自定义维度做数据区分。
内容的提问来源于stack exchange,提问作者V. Bozz
相关产品推荐
相关产品推荐

