prometheus改为remote存储后,依然会在本地文件生成data目录进行存储。

问题描述:
因为我们想长期存储prometheus的监控数据,所以选择了influxdb作为remote storage,但是按照官方文档配置完以后启动promethues,在不指定storage.tsdb.path的前提下依然会在当前目录下生成data目录,在prometheus运行一段时间后,执行如下命令

systemctl stop prometheus
rm -rf ./data
systemctl start prometheus

执行完以后依然会生成data目录,这时登录web-ui界面查看,之前删除的数据还是可以看到的,说明远程读写没有问题。

请问造成这种现象的原因是什么呢,有什么方法可以只把数据存储在远端,本地不存储呢?

这是我的prometheus的配置文件片段:

remote_write:
  - url: "http://localhost:8086/api/v1/prom/write?db=prometheus"
remote_read:
  - url: "http://localhost:8086/api/v1/prom/read?db=prometheus"
阅读 7.3k
1 个回答

没法设置不存到本地的tsdb。如果实在不想的话,可以设置本地存储的保留时间为1个小时。理论上相当于本地不存储了。
prome 在本地获取不到的时候再去远程读取数据。
但是实际的场景下,我们这边本地存储是保留时间是1天,因为prometheus的远程读的效率并没有本地读的高,其实整个监控的本质,都是频繁读取最近的数据,越是历史数据被读取的少。这样做对远程存储介质也好。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏