搬瓦工部署 Sentry 错误追踪平台教程
Sentry 是全球最知名的错误追踪和性能监控平台,被无数开发团队用于实时捕获和分析应用程序中的异常。它支持几乎所有主流编程语言和框架,提供详细的错误堆栈、上下文信息和面包屑追踪,帮助开发者快速定位和修复 Bug。Sentry 提供付费的 SaaS 服务,同时也完全开源,支持自托管。本文将介绍如何在搬瓦工 VPS 上自托管 Sentry。部署前请确保已安装 Docker 和 Docker Compose。
一、Sentry 核心功能
- 错误捕获:自动捕获未处理的异常,包含完整的堆栈追踪。
- 面包屑:记录错误发生前的用户操作和系统事件。
- Issue 分组:智能将相似错误归类,避免重复通知。
- Release 追踪:关联错误到具体的代码版本,追踪回归问题。
- 性能监控:追踪事务性能,发现慢查询和瓶颈。
- 告警通知:支持邮件、Slack、Webhook 等多种通知渠道。
二、系统要求
自托管 Sentry 资源消耗较高:
- 操作系统:Ubuntu 20.04+ 或 Debian 11+。
- 内存:至少 4GB,推荐 8GB 以上。
- CPU:至少 2 核。
- 磁盘:至少 30GB 可用空间。
- Docker:Docker 19.03+ 和 Docker Compose 2.x+。
建议选择搬瓦工高配方案。购买时使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买入口:bwh81.net。
三、使用官方安装脚本
Sentry 官方提供了 self-hosted 仓库,包含自动化安装脚本:
cd /opt
git clone https://github.com/getsentry/self-hosted.git sentry
cd sentry
运行安装脚本:
./install.sh
安装过程中会提示创建管理员账户,按照提示输入邮箱和密码。安装完成后启动服务:
docker compose up -d
四、访问 Sentry
安装完成后访问 http://your_server_ip:9000,使用安装时创建的管理员账户登录。首次登录需要完成初始设置向导。
五、创建项目并接入 SDK
在 Sentry 中创建项目后,会得到一个 DSN(Data Source Name),用于 SDK 配置:
Python 应用接入
# pip install sentry-sdk
import sentry_sdk
sentry_sdk.init(
dsn="http://your_key@your_server_ip:9000/project_id",
traces_sample_rate=1.0,
environment="production",
release="my-app@1.0.0",
)
# 主动捕获异常
try:
dangerous_operation()
except Exception as e:
sentry_sdk.capture_exception(e)
# 发送自定义消息
sentry_sdk.capture_message("Something happened", level="warning")
JavaScript 应用接入
// npm install @sentry/browser
import * as Sentry from "@sentry/browser";
Sentry.init({
dsn: "http://your_key@your_server_ip:9000/project_id",
tracesSampleRate: 1.0,
environment: "production",
});
六、配置反向代理
cat > /etc/nginx/sites-available/sentry <<'EOF'
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://127.0.0.1:9000;
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;
}
}
EOF
ln -s /etc/nginx/sites-available/sentry /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d your_domain.com
七、配置告警规则
在项目的 Alerts 页面创建告警规则。常见的告警条件包括:
- 新 Issue 首次出现时通知
- 某个 Issue 在指定时间内出现次数超过阈值
- 某个 Issue 重新出现(回归)时通知
- 事务 P95 延迟超过指定阈值
八、数据清理
Sentry 的数据量增长较快,需要配置自动清理:
# 编辑 sentry/config.yml,设置数据保留天数
# system.event-retention-days: 90
# 手动清理旧数据
docker compose run --rm web cleanup --days 90
九、常见问题
安装脚本执行失败
确保 Docker 和 Docker Compose 版本满足要求,磁盘空间充足。查看安装日志定位具体错误。
内存不足导致服务崩溃
Sentry 包含多个组件(Web、Worker、Kafka、ClickHouse 等),内存消耗很大。建议至少 4GB 内存,可以在 .env 中调整各组件的内存限制。
总结
Sentry 是功能最完善的错误追踪平台,但自托管的资源需求较高。如果你的 VPS 资源有限,可以考虑更轻量的替代方案 GlitchTip。选购搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享 6.77% 折扣。