自建 ELK 要迁到国产 ARM + 麒麟环境?分享一个平滑迁移方案:双写过渡、历史数据冷热分层、告警规则平移,以及迁移中踩过的坑。
自建 ELK 的团队最怕两件事:一是 Elasticsearch 集群扩容和索引管理吃掉大量人力,二是信创合规要求日志数据落到国产软硬件。迁移的难点不在“把数据搬过去”,而在“搬的过程中业务不能断、告警不能丢、历史日志还能查”。
历史日志不必全量搬。按合规要求的保留期(常见 90 天 / 180 天),把热数据迁移到新平台,冷数据导出到对象存储归档,需要时再回灌。全量搬迁 ELK 的索引既慢又贵,绝大多数查询都集中在最近几周,冷热分层才是正解。
Kibana Watcher 和 ElastAlert 的规则不能直接复用,需要逐条翻译成新平台的 YAML 规则。建议按触发频率排序,先把“最近 30 天触发过”的规则平移,死规则直接丢弃:
alert_rules:
- name: error-log-burst
expr: count(logs, level='ERROR', window='5m') > 100
severity: P1
notify: [email-oncall]
平移时顺便做一次告警瘦身——很多团队迁移完才发现,一半以上的旧规则从来没触发过。
log.file.path 这类前缀,迁移后检索语句里的字段名要同步调整;迁移不是“替换工具”,而是把告警和检索习惯一起搬过去。双写过渡加冷热分层加规则瘦身,能把这件“大工程”变成一次低风险的切换。