先说这台机器要多大
社区里最近有人开需求:24–32GB 内存、6–8 vCPU、120GB 存储,月预算 15–20 美元,目的就一个——把 Sentry 装在自己机器上。这个配置看着挺认真,但和官方口径一比,会发现他估高了一档。
Sentry 的自建文档写得不含糊:Docker 19.03.6 与 Compose 2.32.2 起步,最低 4 核 CPU、16GB 内存加 16GB swap、20GB 可用磁盘;官方推荐 32GB 内存,但也明说 16+16 完全能跑——前提是那 16GB swap 落在高速盘上,你基本感觉不到差别。
真正容易被低估的不是内存,是磁盘。数据库、消息队列、Symbolicator 全塞在一台机器上,靠的就是磁盘 IO。官方给了一条很实用的判据:盯着 iowait 看,如果它长期超过 CPU 时间的 10%,这台机器已经扛不住你现在的量了。所以挑机器时,一块高 IOPS 的 NVMe 比多加两核有用得多。
发行版也有讲究:Debian/Ubuntu 优先,官方自己的 dogfood 就跑在上面;RHEL 系有已知安装问题,靠关掉 SELinux 能装上,但官方明确不鼓励;Alpine 直接不支持。
自建版少了什么
功能上,官方把它描述成“没有软件限制、也没有付费档的 Business 版”,但确实少了四样:计费与套餐体系、Spike Protection、Spend Allocation,以及 Seer 这类 AI 功能——它们是闭源的。移动端符号化也受限,iOS 拿不到公开符号服务器,PlayStation 与 Nintendo Switch 的支持同样不在自建版里。
许可要单独说一句:Sentry 现在是 FSL(Fair Source)。自己部署、公司内部用都随便,但不能把自建起来的 Sentry 当成服务卖给别人,也不能拿它的代码去做 Sentry 的直接竞品;两年后自动转为 Apache 2.0。
算一笔钱再决定
对照一下官方 SaaS:developer 档免费,但只有一个用户、每月 5 千条错误;team 档 26 美元/月(年付预付),5 万条错误、无限用户、20 个自定义面板;business 档 80 美元/月。
也就是说,只要团队里不止你一个人、每月错误量在几万条以内,26 美元这个数其实很难被打穿——一台 32GB 内存的机器按社区行情月付十几二十美元,再加上你升级、排障、看着磁盘一点点涨上去的时间,未必更便宜。
值得自建的情况其实很清楚:数据不能出境或有合规要求;事件量大到 SaaS 账单明显更贵;需要 90 天以上的留存;或者你就是要改它的代码。反过来,一个人做项目、只想看报错、又没空定期升级(官方是建议定期升的),那就别自己搭。
真要装,按顺序做
VERSION=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/getsentry/self-hosted/releases/latest)
VERSION=${VERSION##*/}
git clone https://github.com/getsentry/self-hosted.git
cd self-hosted
git checkout ${VERSION}
./install.sh
docker compose up --wait
装完默认监听 9000 端口,登录页在 http://127.0.0.1:9000。放到公网之前还有几件事不能省:
- 前面必须有一层独立的反向代理做 SSL 终止,并把真实客户端 IP 传进去——官方说这件事在 Docker Compose 的内部网络里几乎没法优雅解决;健康检查打
/_health/,正常返回 200,有问题会返回 500 并列出问题。 - 改
config.yml里的system.url-prefix,同时把sentry/sentry.conf.py里 TLS 那段补上,否则配置集成时会撞 CSRF 错误。 - 不想让安装信息回传,把
SENTRY_BEACON = False写进配置就行,安装脚本本身也会让你选。 - 磁盘吃紧就调小
SENTRY_EVENT_RETENTION_DAYS,代价是留存变短;或者把存储迁到 S3/GCS。官方另有独立的备份与恢复章节,迁移前按它走一遍。
还有一条经验值:官方说无论流量大小,自建 Sentry 的资源占用基本会稳定在同一个水平上,不会跟着业务线性涨。所以第一次配机器不必按“以后会涨”来预留,真不够了再加也不迟。
登录 后参与评论