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 支持多种存储后端,不同后端的迁移策略差异显著。需要明确当前使用的存储类型及其配置参数。
4.3 数据量估算方法
准确估算当前数据量是规划迁移窗口、磁盘空间与网络带宽的基础。建议从以下三个维度进行交叉验证:
- API 统计查询 — 通过 Loki 的
series和statsAPI 获取元数据统计。 - 存储后端直接统计 — 对文件系统或对象存储中的 chunk 目录进行大小汇总。
- 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导出当前告警规则、记录规则与数据源配置。
完成上述评估后,你将获得一份完整的迁移前环境基线报告。这份报告将直接用于第 5 章“迁移策略选择”中的决策,包括选择全量迁移、滚动迁移还是蓝绿迁移方案。