Prometheus 数据保留时间配置
2025-03-25 tech prometheus 2 mins 1 图 854 字
今天在调整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