前端错误日志上报及网站统计(sentry+matomo)
本文配合 rancher1.6(手头一个测试集群没升级到最新的 2.x)讲解如何搭建并配置日志错误上报框架Sentry及网站统计分析框架matomo 的搭建及接入 vue(本文以iview-admin为例)项目。
背景简述
- sentry 项目运行过程中,难免出现 bug,前端不像后端可以很方便的采集项目日志(比如 log4j +
elk),导致每次出问题后还原车祸现场费时费力。另外现在随着 vue 等兴起,构建项目时打成 min.js,无疑又加大了前端定位问题的难度。而
sentry 是一款专注于错误采集的框架,支持常见的主流语言
采集,聚合,并推送错误信息。注意,sentry 并不是日志平台(e.g. log4j + elk),也不是监控平台,sentry 专注于项目中的 Error 信息的采集,聚合,报警。
- matomo 前身 Pwiki,是一款开源的 web 网站分析利器。类似于 Google Analytics。具体的特性,参见 Premium Web Analytics ,比如绘制页面热力图,录制会话,访问漏斗,A/B Test 等(这几样都是收费插件功能)。
注意:本文假设你已经有 rancher1.6 的环境
安装
matomo
rancher 创建 matomo
在 rancher 主机上
## 创建必要文件夹 |
docker-compose.yaml
version: "2" |
rancher-compose.yaml
version: "2" |
配置 matomo
选择中文
系统检查
配置数据库
自动建表完成
创建管理员用户(忘记截图了)
设置分析网站(可以随便创建,后边再进行修改),注意跟进实际情况修改时区
复制跟踪代码
配置 matomo
登陆
Sentry
rancher 创建 Sentry
docker-compose.yml
version: "2" |
注意把 SENTRY_SECRET_KEY 换成 sentry 的实际 secret key
rancher-compose.yml
version: "2" |
先将 docker-compose.yml 保存到服务器上,用来初始化 db 和创建账号
docker-compose run --rm web upgrade |
配置 Sentry
配置 vue
本文以 iview-admin 为例
git clone https://gitee.com/anjia/iview-admin.git |
sentry
注意,网上很多文档,以讹传讹的使用过时的工具,raven-js .从 5.x 后官方建议使用@sentry/browser 和@sentry/integrations
npm install --save @sentry/integrations |
修改 iview-admin\src\main.js
// The Vue build version to load with the `import` command |
npm install |
打开 http://localhost:8080/error_store/error_store_page
分别点击两个按钮,模拟出错
打开 sentry 发现已经有错误上报了,并且对错误进行聚合。点开查看详细内容。
如果需要生成 source-map ,可以参考官方文档 https://docs.sentry.io/platforms/javascript/sourcemaps/
matomo
npm install --save vue-matomo |
修改 iview-admin\src\main.js
// The Vue build version to load with the `import` command |
打开 http://localhost:8080, 随便访问几个菜单,然后打开 matomo
路由已经有数据了
并且将用户的常规数据聚合起来
更多
其实本文只是 sentry 和 matomo 简单介绍
更深入的使用,比如 sentry,推送邮件,文中一带而过的 sourcemap,单点登录(集成内部的权限认证),自定义上报内容(将错误与用户 id 关联起来),,敏感数据脱敏等
比如 matomo, 每日发送分析报表,增加 kafka 插件,进行更深层次的挖掘,自定义上报内容(购物车等),大数据量情况下的优化,优化用户设备指纹,使用了 nginx 等反代软件后,如何正确识别真实 ip,热力图,A/B test,漏斗图等
来源:https://anjia0532.github.io/2019/07/07/sentry-and-matomo-install/
评论