【SLS开源兼容系列】从ES平滑迁移到SLS

简介: 当我们考虑把elk的数据链路迁移到sls时,往往希望做到平滑的迁移,减少迁移的代价。本文介绍几种迁移方案,供大家在做elk迁移时参考。

场景

当我们考虑把elk的数据链路迁移到sls时,往往希望做到平滑的迁移,减少迁移的代价。本文介绍几种迁移方案,供大家在做elk迁移时参考。

使用filebeat+logtail双采迁移(推荐)

适合场景,希望在新老数据链路更多时间验证,并且平滑迁移。 sls链路验证OK后旧的es数据链路可以完整下线

场景一: 原架构为filebeat->es

原先es 日志方案的架构如下

双采方案是一个文件可以被多个agent采集,因此可以同时在机器上安装sls的Logtail (由c++开发,性能优秀),采集业务日志到sls,同时使用sls的es兼容方案,可以实现继续使用Grafana和Kibana进行日志查询。

双采的链路如下。

通过安装Logtail 采集将数据写入sls,即可实现SLS的数据链路和原ES的数量链路共存,确保可以稳定切换。等SLS侧的功能充分验证后,择机下线原es的链路即可完成切换。

场景二:  原架构为filebeat+kafka+es

相比场景一的架构,多了Kafka、logtash以及其他消费程序

没关系,之前的双写链路还是适合的,有一个考虑点是消费程序原先是消费kafka,现在数据链路如果转到sls上后是否可以不改程序,只改配置继续复用吗? 当然可以,使用sls的kafka消费兼容功能可以做到。

下面来看一下双链路的方案:

还有一个问题,如果我的logtash中有很多日志格式处理逻辑,新增sls的链路如何cover这块内容? 有两种方式解决这个问题:

  1. 使用Logtail的processor来处理
  2. 使用SLS的数据加工能力

上面两种日志处理引擎提供了更强大方式,以更高性能可以处理。

使用Kafka导入迁移ES链路

适用希望保留原先的kafka链路,但是希望替换掉es的场景

使用sls的Kafka导入功能,可以将原Kafka中的数据方便地导入SLS中,并且使用SLS的ES兼容复用原先的Grafana和Kibana。

如果原先的logtash中有较多规则需要迁移的,同样适用sls的数据加工、logtail的processor都可以进行处理。

使用Kafka协议上传直切

适用场景:

  1. 希望复用原先的agent(包括复用原先agent中的各种处理逻辑、采集配置等)
  2. 适合新部署的场景或确定从原es直接使用sls方案

例如fielbeat场景,可以直接用filebeat写sls kafka兼容接口,该方式同时适合众多开源agent

小结

SLS除了提供Logtail的标准采集方式外,还提供了Kafka兼容、Kafka导入等方式写入数据的方法。这些灵活的写入方案和实际部署架构结合可以很方便地实现从原ES的日志架构中实现平滑迁移。本文对于es迁移sls的场景抛砖引玉,提供了一些思路,希望可以帮助您。

参考

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
存储
优秀开源日志平台GrayLog5.0一键安装脚本
优秀开源日志平台GrayLog5.0一键安装脚本
82 0
|
2月前
|
Prometheus Cloud Native 数据库
Grafana 系列文章(九):开源云原生日志解决方案 Loki 简介
Grafana 系列文章(九):开源云原生日志解决方案 Loki 简介
|
2天前
|
消息中间件 存储 运维
更优性能与性价比,从自建 ELK 迁移到 SLS 开始
本文介绍了 SLS 基本能力,并和开源自建 ELK 做了对比,可以看到 SLS 相比开源 ELK 有较大优势。
|
12天前
|
API 开发工具 C语言
【嵌入式开源库】EasyLogger的使用, 一款轻量级且高性能的日志库
【嵌入式开源库】EasyLogger的使用, 一款轻量级且高性能的日志库
|
3月前
|
Linux Shell
开源日志平台GrayLog5.1.10 CentOS7一键安装脚本
开源日志平台GrayLog5.1.10 CentOS7一键安装脚本
93 0
|
3月前
|
Linux
开源日志平台GrayLog5.1.7 CentOS7一键安装脚本
开源日志平台GrayLog5.1.7 CentOS7一键安装脚本
81 1
|
3月前
开源日志平台GrayLog5.1.2一键安装脚本
开源日志平台GrayLog5.1.2一键安装脚本
43 0
|
3月前
|
开发工具 Python
【SLS开源兼容系列】使用ES SDK 访问SLS
本文介绍如何用es sdk访问sls
91 0
|
11天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
|
12天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
21 1