Prometheus 数据保留时间配置
2025-03-25 tech prometheus 2 mins 1 图 874 字
今天在调整Prometheus的数据保留时间,将默认的15天存储延长到30天,记录下过程。
配置
按照网上查到的教程,在启动命令中添加了--storage.tsdb.retention.time=30d
,结果Prometheus直接报错
Error parsing commandline arguments: unknown long flag '--storage.tsdb.retention.time'
通过prometheus --version
确认当前版本为2.6.0,资料显示:
- **3.0.0+版本**才支持`--storage.tsdb.retention.time`参数
- **旧版本**需要使用`--storage.tsdb.retention=30d`(无`.time`后缀)
将参数改为旧版格式:
./prometheus --storage.tsdb.retention=30d --config.file=prometheus.yml
配置优先级验证
为了确认配置生效方式,做了两组测试:
命令行 vs 配置文件冲突
- `prometheus.yml`中设置`storage.tsdb.retention: 15d`
- 命令行参数`--storage.tsdb.retention=30d`
结果:命令行参数覆盖配置文件,实际生效30天
可以通过这个页面查看生效的配置:
http://<prometheus-server>/flags
完整配置示例
# 启动脚本示例(适用于v2.6)
./prometheus \
--storage.tsdb.retention=30d \ # 旧版参数
--config.file=prometheus.yml \ # 配置文件路径
--web.enable-lifecycle # 可选:启用热加载
# prometheus.yml(兼容新旧版本)
storage:
tsdb:
retention: 30d # 新版本写成retention.time