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

删除重启Grafana Loki/Promtail容器后日志丢失,如何本地持久化?

解决Loki容器删除重启后日志丢失的问题

要实现日志持久化到本地文件系统,核心是将Loki存储数据的容器内部目录映射到主机本地目录,避免容器删除时数据被清理。以下是具体步骤:

1. 本地创建持久化目录

先在主机上创建用于存储Loki数据的目录,并设置正确的权限(确保容器内的Loki进程能读写):

mkdir -p ./loki-data ./loki-index ./loki-compactor
# 授予容器用户读写权限(Loki镜像默认使用UID 10001的用户)
sudo chown -R 10001:10001 ./loki-data ./loki-index ./loki-compactor

2. 修改Loki容器启动命令

在原有命令基础上,添加本地目录与容器内存储目录的挂载映射:

docker run --name loki -d --restart unless-stopped \
  -v $(pwd):/mnt/config \
  -v $(pwd)/loki-data:/tmp/loki \
  -v $(pwd)/loki-index:/loki/index \
  -v $(pwd)/loki-compactor:/loki/compactor \
  -p 3100:3100 \
  grafana/loki:2.9.1 -config.file=/mnt/config/loki-config.yaml

挂载说明:

  • ./loki-data:/tmp/loki:对应配置中common.path_prefix和块存储目录,存储日志块与规则数据
  • ./loki-index:/loki/index:对应storage_config.boltdb.directory,存储索引数据
  • ./loki-compactor:/loki/compactor:对应compactor.working_directory,存储压缩器工作数据

3. (可选)Promtail的持久化配置

如果使用Promtail采集日志,为避免容器重启后重复采集历史日志,需要持久化Promtail的位置游标文件:

# 先创建Promtail数据目录
mkdir -p ./promtail-data
sudo chown -R 10001:10001 ./promtail-data

# 启动Promtail时挂载数据目录
docker run --name promtail -d --restart unless-stopped \
  -v $(pwd)/promtail-config.yaml:/mnt/config/promtail-config.yaml \
  -v $(pwd)/promtail-data:/var/lib/promtail \
  -v /var/log:/var/log \
  grafana/promtail:2.9.1 -config.file=/mnt/config/promtail-config.yaml

验证持久化效果

重启或删除重建Loki容器后,登录Grafana查询日志,应该能看到之前采集的日志数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 04:16:43