案例背景
上个月客户大促,流量刚上来,客服反馈核心下单页面部分用户点击'支付'无反应。后端监控 QPS 正常且报错率为零,前端复现困难。
通过 Sentry 控制台过滤该时间段报错,发现具体堆栈:Uncaught TypeError: Cannot read property 'price' of undefined。结合用户操作录屏分析,确认是特定优惠券组合导致前端价格计算逻辑异常,变量未取到值。定位问题后修复代码,发布即解决。
这就是 Sentry 的价值,将'猜 Bug'转变为'看 Bug'。
为何需要自建?
Sentry 官方 SaaS 服务存在两个主要问题:
- 成本:免费额度有限,业务量增长后 Event 数量激增,费用较高。
- 合规:国内企业(尤其是金融、政企)对数据出境敏感。Sentry 会采集 IP、设备信息及操作行为,私有化部署是确保数据安全的唯一出路。
好消息是开源版本功能与 SaaS 版差异不大;坏消息是架构较重。
环境准备
Sentry 底层依赖 Postgres、Redis、Kafka 和 ClickHouse,资源消耗较大。
- 最低配置:4 核 8G 内存。
- 建议配置:16G 起步,硬盘使用 SSD。
- 部署方式:推荐使用 Docker 和 Docker Compose,避免源码编译带来的依赖问题。
启动步骤
- 拉取官方部署脚本仓库:
git clone https://github.com/getsentry/onpremise.git
cd onpremise
-
运行安装脚本
install.sh。该脚本负责检查环境、生成密钥、拉取镜像及初始化数据库。- 注意:国内服务器拉取镜像可能超时,需配置 Docker 镜像加速或手动下载 GeoIP 等文件。
- 安装过程中需创建管理员账号,请妥善保管凭证。
-
启动容器:
docker-compose up -d
- 检查状态:
docker-compose ps
确保所有容器状态为 Up 且 Healthy。访问 http://你的IP:9000 看到登录框即表示成功。

进阶配置:邮件通知
默认配置下 Sentry 不会主动通知。需配置 SMTP 服务。
编辑 sentry/config.yml,取消 SMTP 相关注释并填写信息:
mail.host: 'smtp.exmail.qq.com'
mail.port: 465
mail.username:

