← 返回文章列表
信创 4 分钟阅读 炬鲸团队

ELK 迁移到信创环境:日志平台国产化替换的实操记录

政务单位日志平台从自建 ELK 迁移到信创环境(鲲鹏 + 麒麟 V10 + OceanBase)的实操记录:评估、三种迁移方式、部署步骤与割接验收清单。

为什么要换掉 ELK

不少政企单位的日志平台还是自建 ELK。问题不在技术,在于合规:Elasticsearch 从 7.11 起改了许可证,企业级功能不再免费;开源分支 OpenSearch 虽在,但仍要自己扛整个栈。而信创验收要求软硬件国产化,跑在 X86 服务器上的 ELK 过不了关。

换到信创环境,通常要做三件事:国产服务器、国产操作系统、国产或开源数据库。下面是我们给一家政务单位做日志平台替换的实操记录。

迁移前的评估

别急着动手,先摸清家底:

  1. 数据量:每天日志多少 GB、保留多久(决定存储和清理策略)。
  2. 采集面:哪些系统、多少实例、用什么 Agent(Filebeat / Logstash / 自研)。
  3. 查询习惯:团队最常用的查询模式,迁移后要能对应上。

评估结论直接决定迁移方式:数据量小、可停机,就一次性迁移;数据量大、不能停,就双写并行。我们见过跳过这步、迁到一半才发现关键仪表盘依赖一个没人记录过的字段——别做那个团队。

三种迁移方式

  • 一次性迁移:停机窗口内导出历史数据(JSON/CSV)导入新平台。适合数据量小、对历史检索要求不高的场景。
  • 双写并行:老平台和新平台同时接收日志,观察一段时间确认新平台数据完整、查询结果一致,再关掉老平台。稳妥,推荐。
  • 按需回捞:历史数据留在冷存储,新数据进新平台,需要查历史时再单独导出。成本最低,但历史检索会别扭。

我们推荐双写并行。做法很简单:在应用侧或采集侧把日志同时发两份,一份到旧 ELK,一份到 OBSERVE,跑一周对比。

信创环境部署

目标环境:鲲鹏 920 服务器 + 麒麟 V10(ARM)+ OceanBase(MySQL 模式)。

# 1. 下载 ARM 版二进制
wget https://ob.example.com/releases/observe-arm64.tar.gz
tar -xzf observe-arm64.tar.gz

# 2. 配置数据库连接(OceanBase,MySQL 协议)
cat > env <<EOF
DB_HOST=10.0.1.10
DB_PORT=2881
DB_USER=observe
DB_PASS=********
DB_NAME=observe
JWT_SECRET=$(openssl rand -hex 32)
EOF

# 3. 启动
./observe --config ./env

因为 OBSERVE 用 MySQL 协议,对接 OceanBase 零改动,只换连接串;同样适用于 TiDB、PolarDB 等 MySQL 兼容的国产数据库。

割接与验收

  • 数据一致性:随机抽 20 条已知报错日志,新旧平台都能查到且结果一致。
  • 查询性能:同一条聚合查询,新平台响应时间不高于旧平台的 2 倍(通常更低)。
  • 合规项:数据全程不出内网、日志有权限隔离、敏感字段可脱敏、操作有审计。
  • 回滚预案:保留旧 ELK 一周,确认稳定后再下线。

迁移后要注意的

  • 老平台的 Grok 解析规则要迁移成新平台的结构化解析规则,字段名保持一致,团队习惯不变。
  • 告警规则逐条迁移并实测触发一次,别等生产故障才验证告警。
  • 保留周期和冷存储现在就该调好:新平台压缩更好,同样的磁盘往往能多留几倍历史。