手动清除gitlab中prometheus的数据

背景:

gitlab服务器上, 磁盘经常爆满。后来通过 du -sh ./* 查出prometheus下的data占了绝大多数磁盘空间。

因此,准备删除prometheus的数据。

思路

由于prometheus的数据占用的空间较大,因此在实际使用时,可以关闭prometheus。

vim /etc/gitlab/gitlab.rb

修改配置

prometheus_monitoring['enable'] = true

改为 false

重启gitlab

gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl start

以上只是关闭prometheus,但是之前存储的数据并没有删除。

现进行清除历史数据。

1、进入prometheus目录

手动清除gitlab中prometheus的数据_第1张图片

2 启动prometheus服务:

/opt/gitlab/embedded/bin/prometheus --web.enable-admin-api --web.enable-lifecycle --config.file=prometheus.yml

我的服务器上的prometheus 可执行文件位于 /opt/gitlab/embedded/bin 下。

如果报错:

err="opening storage failed: lock DB directory: resource temporarily unavailable

原因:

修改配置文件后需要重新加载,重启后prometheus的探针一直在重启,删除重新创建会导致数据丢失,所以还是需要解决这个问题,主要是因为prometheus运行过程中使用的是nobody。

处理方法, 删除 data下的 lock文件。
然后重新启动prometheus:

/opt/gitlab/embedded/bin/prometheus --web.enable-admin-api --web.enable-lifecycle --config.file=prometheus.yml

新开一个命令终端。

3 执行删除数据的命令:

要完全删除delete_series发送clean_tombstones API 调用删除的数据,请执行以下操作: (亲测有效)

curl -X POST -g 'http://localhost:9090/api/v1/admin/tsdb/clean_tombstones'

然后使用 df -h 就可以看到磁盘可用空间增加。

要从中prometheus删除所有数据,请运行:

curl -X POST -g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]={__name__=~".+"}'

4 完成数据清理后, 关闭 prometheus 服务。(ctrl +c)

你可能感兴趣的:(git,gitlab,prometheus,服务器)