文章

自建 Sentry 到底要多大机器:官方最低 16GB,推荐 32GB,什么人才该自己搭

静水流深 昨天 04:11 · 1,664 字 · 约 5 分钟 · 31 次阅读
我发布了文章:《自建 Sentry 到底要多大机器:官方最低 16GB,推荐 32GB,什么人才该自己搭》

先说这台机器要多大

社区里最近有人开需求: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 的资源占用基本会稳定在同一个水平上,不会跟着业务线性涨。所以第一次配机器不必按“以后会涨”来预留,真不够了再加也不迟。

登录 后参与评论

还没有人评论,来抢沙发