如何正确配置Prometheus的存储位置与数据保留大小?
解决Prometheus存储配置的问题
为什么你在prometheus.yml里配置会报错?
Prometheus的--storage.tsdb.path、--storage.tsdb.retention.time、--storage.tsdb.retention.size这些是启动命令行参数,并不是prometheus.yml配置文件的支持项。你把这些内容写进yml里,Prometheus的配置解析器无法识别,自然会抛出unable to unmarshall错误。
正确的配置方式:修改systemd服务文件
因为你是通过apt install安装的Prometheus,它默认使用systemd管理服务,所以需要在systemd的服务配置中添加启动参数:
创建目标存储目录并设置权限
先确保你指定的存储路径存在,并且权限正确(让prometheus用户能读写):mkdir -p /data/prometheus chown prometheus:prometheus /data/prometheus编辑systemd服务文件
打开Prometheus的systemd服务文件(默认路径是/lib/systemd/system/prometheus.service):nano /lib/systemd/system/prometheus.service找到
ExecStart这一行,在原有参数的末尾添加存储相关的启动参数,修改后的行大概是这样:ExecStart=/usr/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/data/prometheus \ --storage.tsdb.retention.time=30d \ --storage.tsdb.retention.size=50GB \ # 保留原有其他参数重新加载systemd配置并重启服务
systemctl daemon-reload systemctl restart prometheus验证配置是否生效
可以通过以下命令查看服务状态,确认启动参数已加载:systemctl status prometheus或者查看Prometheus日志确认:
journalctl -u prometheus -f也可以访问Prometheus的Web UI(默认端口9090),在
Status -> Configuration页面查看启动参数列表。
内容的提问来源于stack exchange,提问作者Daxcor
相关产品推荐
相关产品推荐

