4. 迁移前环境评估:检查当前 Loki 版本、存储后端、数据量估算

在启动任何存储格式迁移操作之前,必须对现有 Loki 环境进行全面的基线评估。跳过此步骤可能导致迁移中断、数据丢失或回滚困难。本节将指导你完成版本确认、后端识别与数据量估算三项核心任务。

4.1 版本与组件清单检查

首先确认所有 Loki 组件(包括 loki、logcli、loki-canary)的精确版本号。不同大版本之间的存储格式差异可能不兼容,必须确保迁移路径受官方支持。

🔍 版本检查命令
# 检查 Loki 服务版本(通过 HTTP API)
curl -s http://localhost:3100/loki/api/v1/status/buildinfo | jq .

# 检查二进制版本(直接执行)
./loki --version

# 检查日志组件版本
logcli --version
loki-canary --version

记录以下关键信息到评估清单中:

组件 版本号 部署方式 配置路径
Loki Server v2.8.x 二进制 / Docker / Helm /etc/loki/config.yaml
LogCLI v2.8.x 独立二进制 —
Loki Canary v2.8.x Docker /etc/loki/canary.yaml
Grafana 数据源 ≥9.0 Grafana 插件 数据源配置
⚠️ 版本漂移风险: 如果环境中同时运行多个 Loki 实例且版本不一致(例如 v2.7 与 v2.9 混合),存储格式可能已在中间版本发生变更。务必先将所有实例统一到同一版本,再执行迁移。

4.2 存储后端识别与配置审计

Loki 支持多种存储后端,不同后端的迁移策略差异显著。需要明确当前使用的存储类型及其配置参数。

Loki 存储后端架构识别 Loki 实例 索引存储 BoltDB / TSDB 块存储 (Chunks) 文件系统 / S3 / GCS 缓存存储 Memcached / Redis 存储后端检查要点 • 索引存储:检查 loki.yml 中 schema_config.configs[].index 字段 • 块存储:检查 storage_config.aws.s3 或 filesystem.directory • 缓存存储:检查 chunk_store_config.cache_location 配置 • 多后端混合:确认是否使用 periodic_table 多 schema 配置

4.3 数据量估算方法

准确估算当前数据量是规划迁移窗口、磁盘空间与网络带宽的基础。建议从以下三个维度进行交叉验证:

  1. API 统计查询 — 通过 Loki 的 series 和 stats API 获取元数据统计。
  2. 存储后端直接统计 — 对文件系统或对象存储中的 chunk 目录进行大小汇总。
  3. Grafana 仪表板 — 使用 Loki 官方运维仪表板查看历史用量趋势。
📊 数据量估算命令示例
# 1. 通过 API 获取每个租户的日志量(单位:字节)
curl -s "http://localhost:3100/loki/api/v1/stats?query={job=~\".+\"}" | jq '.data.bytes'

# 2. 直接统计文件系统块存储大小
du -sh /data/loki/chunks/

# 3. 统计索引存储大小(BoltDB 文件)
du -sh /data/loki/index/

# 4. 使用 logcli 查询时间范围内的日志量
logcli series --analyze --since=24h

4.4 评估清单与决策矩阵

将上述检查结果汇总到以下评估清单中,用于判断迁移策略与风险等级:

评估项 检查方法 关键阈值 风险等级
Loki 版本 --version / API v2.6 以下需先升级 高
索引存储类型 配置文件 schema_config BoltDB → TSDB 需迁移 中
块存储总量 du / API stats > 1TB 需分批迁移 中
每日新增数据量 24h 统计 > 100GB/天 需限速 低
缓存命中率 Grafana 仪表板 < 80% 需预热 低
多租户数量 series API > 1000 租户需测试 中
💡 最佳实践: 在完成评估后,建议在测试环境搭建一个与生产环境相同版本、相同数据量的 Loki 实例,执行一次完整的迁移演练。记录每个步骤的耗时与资源消耗,用于校准生产迁移计划。

4.5 环境快照与备份策略

在正式迁移前,必须对当前环境进行完整快照,确保可回滚:

  • 配置文件备份: 复制 /etc/loki/ 下所有 YAML 文件,并记录启动参数。
  • 索引数据备份: 对 BoltDB 或 TSDB 索引目录执行快照(如使用 rsync 或存储快照功能)。
  • 块数据备份: 如果使用文件系统存储,对 chunk 目录执行只读快照;如果使用对象存储,确认版本控制已启用。
  • 元数据导出: 使用 logcli 导出当前告警规则、记录规则与数据源配置。
迁移前环境快照流程 ① 配置备份 ② 索引快照 ③ 块数据备份 ④ 元数据导出 ✅ 快照完整性校验 快照应存储在与生产环境隔离的独立存储中,并验证数据完整性(MD5 校验)

完成上述评估后,你将获得一份完整的迁移前环境基线报告。这份报告将直接用于第 5 章“迁移策略选择”中的决策,包括选择全量迁移、滚动迁移还是蓝绿迁移方案。