记录贴: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

重新安装即可

目录
相关文章
|
22天前
|
存储 缓存 JSON
一行代码,我优化掉了1G内存占用
这里一行代码,指的是:String.intern()的调用,为了调用这一行代码,也写了几十行额外的代码。
|
4月前
|
关系型数据库 PostgreSQL
gitlab占用内存太大了如何解决?
gitlab占用内存太大了如何解决?
|
11月前
|
Java 调度
服务器常见问题排查(一)——cpu占用高、上下文频繁切换、频繁GC
文章主要讨论了服务器中常见性能问题的一些排查思路,这篇文章主要讨论了CPU负载过高,频繁GC和频繁切换上线文这三个问题。
967 0
服务器常见问题排查(一)——cpu占用高、上下文频繁切换、频繁GC
|
10月前
|
运维 监控 JavaScript
一次诡异的磁盘空间占用问题排查
大半夜接到线上一服务器磁盘占用率超过90%的短信,需要立即处理。一般这种情况都是线上异常,当天日志打太多,无法自动删掉的。上来第一反应就是查我们规范java应用日志目录,居然没有文件,再查,居然连java进程都没有,原来不是java应用,不过没关系,干一年运维也不是白干的,还是有其他方法可以查的,在此记录下整个排查过程。
74 0
重复文件清除工具,硬盘内存拯救者。。。
重复文件清除工具,硬盘内存拯救者。。。
【PE准备阶段】将内存中的数据读取到内存,将内存中的数据读取到文件中【滴水逆向39期作业】
【PE准备阶段】将内存中的数据读取到内存,将内存中的数据读取到文件中【滴水逆向39期作业】
|
存储 缓存 文件存储
「系统」占用太多硬盘空间?试试用这些方法将它找回来
「系统」占用太多硬盘空间?试试用这些方法将它找回来
319 0
|
iOS开发
Mac系统存储空间占用空间过大解决办法
Mac系统存储空间占用空间过大解决办法
830 0
Mac系统存储空间占用空间过大解决办法
如何清理磁盘
我们的电脑在使用的过程当中会出现很多的垃圾占用内存,我们每天使用电脑之后清理一下比较好
如何清理磁盘
|
算法 Linux Windows
如何找到系统里的重复文件,快速释放磁盘空间?
不管是 Windows 电脑还是 Linux 电脑,在使用的过程中,或多或少都会留下很多重复的文件。这些文件不仅会占用我们的磁盘,还会拖累我们的系统,所以,很有必要干掉这些重复的文件。
352 0
如何找到系统里的重复文件,快速释放磁盘空间?