grafana/loki-stack 设置日志保存时间及自动清理

Loki 本身不提供命令行或 HTTP API 删除特定日志,但你可以通过配置 retention_period 来实现日志自动清理。

yaml 复制代码
loki:
  config:
  	table_manager:
  		retention_deletes_enabled: true
  		retention_period: 168h  # 保留7天

适用于 boltdb-shipper 或 chunk store。

如果你用的是 filesystem 模式,还可以这样:

yaml 复制代码
loki:
  config:
    schema_config:
      configs:
      - from: 2020-10-24
        store: boltdb-shipper
        object_store: filesystem
        schema: v11
        index:
          prefix: index_
          period: 24h
	limits_config:
  		retention_period: 168h 
   	compactor:
    	shared_store: filesystem
    	retention_enabled: true #启用日志保留与删除逻辑。必须开启它,Loki 才会按照 retention_period 进行清理。
    	retention_delete_delay: 15s #表示当日志过期后,再等 2 小时才会执行删除。这可以防止日志刚刚到期就被清掉,适用于边界时间处理。
    	retention_delete_worker_count: 150 #控制同时并发执行的清理 worker 数量,数字越大,清理越快,但资源消耗也更多。

然后部署 Loki 的 compactor 组件(默认部署,只要改配置就可以),它负责删除超过保留期的日志。

如果配置成功,观察 loki 日志会有如下输出

bash 复制代码
level=info ts=2025-05-23T08:27:04.059284074Z caller=index_set.go:185 msg="cleaning up unwanted indexes from table index_xxx"

还有一个日志接收参数,这里顺带提一下
reject_old_samples_max_age: 168h 不是日志的保留期限,而是一个防止旧数据写入的限制。它的作用是:

yaml 复制代码
loki:
  config:
	limits_config:
  		reject_old_samples: true
  		reject_old_samples_max_age: 168h #表示 Loki 拒绝接收时间戳早于当前时间减去该值的日志样本。
相关推荐
kft13142 小时前
Grafana + OracleDB Exporter深度监控大屏(docker-compose版)
docker·容器·grafana
Richard.Wong13 小时前
grafana连接sqlserver2014
grafana
Richard.Wong20 小时前
grafana连接influxdb
grafana
迎仔21 小时前
Prometheus & Grafana:算力中心的“ICU 监控系统”
grafana·prometheus
牛奶咖啡131 天前
Prometheus+Grafana构建云原生分布式监控系统(六)
云原生·grafana·prometheus·prometheus黑盒监控·黑盒监控的数据可视化·黑盒监控的安装配置
牛奶咖啡132 天前
Prometheus+Grafana构建云原生分布式监控系统(四)
云原生·grafana·prometheus·redis_exporter·监控redis数据库·redis需要监控的重要指标·redis监控可视化
牛奶咖啡132 天前
Prometheus+Grafana构建云原生分布式监控系统(五)
云原生·grafana·prometheus·监控nginx·两种监控nginx方法·nginx源码编译参数解析·编译nginx源码实操
A-刘晨阳3 天前
【Linux】Prometheus + Grafana的使用
linux·运维·grafana·prometheus·监控
牛奶咖啡133 天前
Prometheus+Grafana构建云原生分布式监控系统(三)
grafana·prometheus·云原生监控·监控linux主机状态·node_exporter安装·监控mysql数据库实践·mysql_exporter
Java程序员威哥3 天前
Java微服务可观测性实战:Prometheus+Grafana+SkyWalking全链路监控落地
java·开发语言·python·docker·微服务·grafana·prometheus