Sentry 22.9.0版本数据正确清理方法及空间占用问题咨询
Sentry 22.9.0 自托管版本数据清理问题解决方案
1. 正确清理历史数据的步骤
针对sentry-self-hosted部署的容器命名规则变化,按以下步骤操作:
- 确认Worker容器名称
执行docker ps查看运行容器,Worker容器通常命名为sentry-self-hosted-worker-1(前缀由docker compose项目名决定,默认是sentry-self-hosted)。 - 进入Worker容器执行清理命令
进入容器:
运行清理命令指定保留天数(示例为7天):docker exec -it sentry-self-hosted-worker-1 bash
该命令仅删除超期事件数据,不会清除项目配置、用户信息等核心内容。sentry cleanup --days 7 - 检查项目级保留设置
若部分项目单独配置了事件保留天数,全局的SENTRY_EVENT_RETENTION_DAYS不会覆盖这些设置。需在Sentry后台「项目设置」→「事件保留」中确认每个项目的规则是否符合预期。
2. 修改SENTRY_EVENT_RETENTION_DAYS后仍占大量空间的原因
- 该变量仅控制新事件保留
SENTRY_EVENT_RETENTION_DAYS是新事件的默认保留天数,不会自动清理修改前已存在的旧事件,旧事件需手动执行sentry cleanup命令删除。 - 数据库未释放磁盘空间
PostgreSQL删除数据后不会立即将空间归还操作系统,仅标记为内部可复用。需进入PostgreSQL容器执行空间释放操作(建议低峰期执行,会锁表):- 进入容器(通常是
sentry-self-hosted-postgres-1):docker exec -it sentry-self-hosted-postgres-1 bash - 切换用户并连接数据库:
su - postgres psql -d sentry - 执行空间回收:
VACUUM FULL;
- 进入容器(通常是
- ClickHouse数据未清理
22.9.0版本的self-hosted Sentry默认用ClickHouse存储事件数据,需检查其TTL策略:- 进入ClickHouse容器(通常是
sentry-self-hosted-clickhouse-1):docker exec -it sentry-self-hosted-clickhouse-1 bash - 查看表的TTL设置:
clickhouse-client SELECT name, ttl_table FROM system.tables WHERE database = 'sentry';
ALTER TABLE sentry.events MODIFY TTL timestamp + INTERVAL 7 DAY; - 进入ClickHouse容器(通常是
- Docker缓存或日志占用
检查Docker资源占用,清理无用卷、镜像和日志:docker system prune -a
内容的提问来源于stack exchange,提问作者JJut
相关产品推荐
相关产品推荐

