Prometheus 数据保留时间配置

今天在调整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

image-20250325午前111838386

完整配置示例

# 启动脚本示例(适用于v2.6)
./prometheus \
  --storage.tsdb.retention=30d \   # 旧版参数
  --config.file=prometheus.yml \   # 配置文件路径
  --web.enable-lifecycle           # 可选:启用热加载
# prometheus.yml(兼容新旧版本)
storage:
  tsdb:
    retention: 30d  # 新版本写成retention.time

Prometheus 监控容器启动时间并自动化处理 Shell 脚本 while 循环只执行一次的问题