You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kubernetes中修改Loki的日志保留周期?

解决Loki通过Helm Chart修改日志保留周期不生效的问题

1. 修复values.yaml的YAML格式错误

你的values.yaml中schema_config.configs部分存在缩进错误,导致Helm无法正确解析配置,进而 fallback 到默认值。正确的缩进需要将index、object_store等字段嵌套在- from的数组项内,同时移除已被弃用的table_manager配置(新版Loki用compactor替代它处理日志保留):

loki:
  chunk_store_config:
    max_look_back_period: 740h
  compactor:
    shared_store: filesystem
    working_directory: /data/loki/boltdb-shipper-compactor
    retention_enabled: true
    retention_delete_delay: 2h  # 可选,控制删除延迟避免误删
    retention_delete_worker_count: 10  # 可选,调整删除并发数
  limits_config:
    retention_period: 740h
    enforce_metric_name: false
    reject_old_samples: true
    reject_old_samples_max_age: 740h
  schema_config:
    configs:
    - from: "2020-10-24"
      index:
        period: 24h
        prefix: index_
      object_store: filesystem
      schema: v11
      store: boltdb-shipper
  storage_config:
    boltdb_shipper:
      active_index_directory: /data/loki/boltdb-shipper-active
      cache_location: /data/loki/boltdb-shipper-cache
      cache_ttl: 24h
      shared_store: filesystem
    filesystem:
      directory: /data/loki/chunks

2. 重新部署或升级Helm Release

如果是首次安装失败,先卸载旧实例再重新安装:

helm uninstall loki-stack -n my-test-ns
helm install -f values.yaml loki-stack grafana/loki-stack --set loki.enabled=true,promtail.enabled=false --namespace=my-test-ns

如果实例已运行,直接执行升级:

helm upgrade -f values.yaml loki-stack grafana/loki-stack --set loki.enabled=true,promtail.enabled=false --namespace=my-test-ns

3. 验证配置是否生效

进入Loki Pod查看生成的配置文件,确认目标字段已更新:

kubectl exec -n my-test-ns <loki-pod-name> -- cat /etc/loki/loki.yaml

重点检查:

  • chunk_store_config.max_look_back_period 是否为740h
  • limits_config.retention_period 是否为740h
  • compactor.retention_enabled 是否为true

也可以通过Loki API快速验证:

kubectl port-forward -n my-test-ns <loki-pod-name> 3100:3100
curl http://localhost:3100/config/v1 | jq '.limits_config.retention_period'

关键注意事项

  • YAML格式严格性:Helm对YAML缩进、格式异常敏感,建议用yamllint等工具校验配置文件,避免因格式错误导致配置被忽略。
  • Chart版本兼容性:确保使用的grafana/loki-stack Chart版本与Loki版本匹配,不同版本的配置结构可能存在差异(比如旧版本依赖table_manager,新版本仅用compactor)。
  • Retention生效前提:对于boltdb-shipper存储,必须启用compactor.retention_enabled=true,否则所有retention配置都不会生效。

内容的提问来源于stack exchange,提问作者hashguard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:50:26