记录贴:sentry磁盘占用过大如何清理?

简介: 记录贴:sentry磁盘占用过大如何清理?

公司的线上系统,采用sentry来收集日志,并能展示出来,给到各个项目组去使用,但用着用着就空间满了,要进行数据的清理才行。

通过网上查找资料,及操作,记录一下。

1、SENTRY数据软清理 (清理完不会释放磁盘,如果很长时间没有运行,清理时间会很长)

Bash

#登录worker容器
docker exec -it sentry_onpremise_worker_1 /bin/bash

保留多少天的数据,cleanup使用delete命令删除postgresql数据,但对于delete,update等操作,只是将对应行标志为DEAD,并没有真正释放磁盘空间
sentry cleanup --days 7

2、POSTGRES数据清理 (清理完后会释放磁盘空间)

Bash

//登录postgres容器
docker exec -it sentry_onpremise_postgres_1 /bin/bash

//运行清理
vacuumdb -U postgres -d postgres -v -f --analyze

3、定时清理脚本

Bash

0 1 * * * cd /data1/onpremise && {
    time docker-compose run --rm worker cleanup --days 7; } &> /var/log/cleanup.log
0 8 * * * {
    time docker exec -i $(docker ps --format "table {
   {.Names}}"|grep postgres) vacuumdb -U postgres -d postgres -v -f --analyze; } &> /data1/logs/vacuumdb.log

4、异常处理

因为磁盘已经被占满,所以上面的清理命令也执行不动了,没办法只能自己寻找大文件临时删除一些,于是找到了下面的大文件
/var/lib/docker/volumes/sentry-kafka/_data/events-0/
/var/lib/docker/volumes/sentry-kafka/_data/ingest-events-0/
删除昨天以前的数据
看着是 .log结尾的文件,而且很大,就直接删除了,结果发现重启后,sentry无法正常收到上报了。
参考:forum.sentry.io/t/sentry-di…
没办法,只能重新安装
Bash

cd /data1/onpremise
./install.sh

重新启动生效,重新安装不会清理原有数据,所以不备份也没关系
Bash

docker-compose down
docker-compose build
docker-compose up -d

5.清理kafka占用磁盘过大的问题

清理kafka占用磁盘过大的问题搜到可以配置 .env,如下,但是我的没有效果
Bash

KAFKA_LOG_RETENTION_HOURS=24
KAFKA_LOG_RETENTION_BYTES=53687091200   #50G
KAFKA_LOG_SEGMENT_BYTES=1073741824      #1G
KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS=300000
KAFKA_LOG_SEGMENT_DELETE_DELAY_MS=60000

于是自己研究,首先进入kafka的容器
Bash

docker exec -it sentry_onpremise_kafka_1 /bin/bash

查看topics

kafka-topics --list --zookeeper zookeeper:2181

修改kafka配置文件

vi /etc/kafka/server.properties

修改为7小时 默认168

log.retention.hours=7
log.cleaner.enable=true
log.cleanup.policy=delete
log.cleanup.interval.mins=1

重启

kafka-server-stop 
kafka-server-start -daemon

重启后过了一会也没效果,第二天才看到效果,具体原因有待研究,再去查看目录的大小,发小从20G下降到12G左右
Bash

cd /var/lib/docker/volumes/sentry-kafka/_data/events-0
du -h --max-depth=1
ls -alh # 日期最小的是3天前的日志:00000000000000146071.log

docker容器没有vi命令的解决方案
Bash

apt-get update
apt-get install vim

6、官方解决方案

其实官方已经提供了解决方案,修改 .env文件的以下配置
Bash

SENTRY_EVENT_RETENTION_DAYS=7

重新安装即可

目录
相关文章
|
Web App开发 存储 前端开发
一键同步,无处不在的书签体验:探索多电脑Chrome书签同步插件
一键同步,无处不在的书签体验:探索多电脑Chrome书签同步插件
498 0
|
Kubernetes Linux API
[没接触过kubevirt?]15分钟快速入门kubevirt
什么是kubevirt? kubevirt是一个容器方式运行虚拟机的项目。`kubevirt`是附加`kubernetes`集群上的,它是通过 `CustomResourceDefinition(CRD)`部署到`Kubernetes API`变成资源对象。使用方式类似创建`deploy、pod`......这些资源清单。
5684 0
[没接触过kubevirt?]15分钟快速入门kubevirt
|
消息中间件 缓存 监控
Sentry 开发人员文档(中文手册,二次开发指南)
Sentry 开发人员文档(中文手册,二次开发指南)
3766 0
Sentry 开发人员文档(中文手册,二次开发指南)
|
监控 前端开发 JavaScript
Sentry 监控部署与使用(详细流程)
Sentry 监控部署与使用(详细流程)
3048 0
|
11月前
|
人工智能 Kubernetes jenkins
容器化AI模型的持续集成与持续交付(CI/CD):自动化模型更新与部署
在前几篇文章中,我们探讨了容器化AI模型的部署、监控、弹性伸缩及安全防护。为加速模型迭代以适应新数据和业务需求,需实现容器化AI模型的持续集成与持续交付(CI/CD)。CI/CD通过自动化构建、测试和部署流程,提高模型更新速度和质量,降低部署风险,增强团队协作。使用Jenkins和Kubernetes可构建高效CI/CD流水线,自动化模型开发和部署,确保环境一致性并提升整体效率。
|
存储 监控 前端开发
Sentry 监控部署与使用(详细流程)
Sentry 监控部署与使用(详细流程)
14394 1
|
监控 前端开发 JavaScript
前端稳定性工具-Sentry
【11月更文挑战第9天】Sentry 是一个开源的错误和性能监控平台,支持多种编程语言和框架。它能够捕获前端应用中的各种错误和性能问题,提供详细的错误信息和用户行为关联,帮助开发团队快速定位和解决问题,优化应用性能。但需注意隐私保护、数据准确性和成本控制。
1859 3
|
10月前
|
机器学习/深度学习 存储 人工智能
千问QWQ-32B/满血DeepSeek R1部署指南,两种方式轻松玩转热门推理模型
本文介绍了如何利用阿里云CAP平台一键部署QWQ-32B和DeepSeek R1两大热门推理模型。通过应用模板或模型服务两种方式,开发者可快速完成部署并验证模型效果。QWQ-32B在数学、编程等任务上表现出色,而DeepSeek R1凭借强化学习训练,具备高效推理能力。两者均支持API调用及第三方平台集成,助力智能应用开发。
千问QWQ-32B/满血DeepSeek R1部署指南,两种方式轻松玩转热门推理模型
|
10月前
|
人工智能 JavaScript 测试技术
云效+DeepSeek 打造高效代码评审的新途径
本文介绍如何在云效平台上利用DeepSeek等大模型实现AI智能代码评审。通过创建云效组织、获取API令牌、配置Flow自定义步骤、导入示例代码库及创建流水线,结合单元测试和代码扫描功能,实现自动化代码审查。此方案显著减少人工评审工作量,提升代码质量与开发效率,确保项目快速且安全地上线。
|
Prometheus Kubernetes 负载均衡
Opentelemetry collector用法
本文详细介绍了Opentelemetry Collector的使用方法及其各个组件(receiver、processor、exporter、connector和服务配置)的功能与配置。Collector的核心组件通过官方仓库提供丰富的实现,涵盖了认证、健康监控等功能。
1988 63
Opentelemetry collector用法

热门文章

最新文章