Elasticsearch数据采集和处理--Logstash VS Ingest Node

参考地址:

Should I use Logstash or Elasticsearch ingest nodes?

1、背景

Logstash是Elastic Stack的重要组成部分(即ELK中的L),在该架构中负责数据采集,处理,输出等功能,支持多种数据输入,数据处理,数据输出方式,并且具有可扩展性好,功能强大等优点。典型的采用Logstash进行数据采集和处理的Elastic Stack架构如下图:

Logstash数据采集和处理

而Ingest Node是在Elasticsearch5.0之后引入的特性,用于在文档实际索引动作执行前对文档进行预处理,在数据处理层面上与Logstash有许多功能重叠之处。引入Ingest Node后的Elastic Stack数据采集和处理架构如下:

IngestNode数据采集和处理

Ignest Node的出现为Elastic Stack 数据的采集和处理提供了一种新的方式,在许多场景下用户可以在不使用Logstash的情况下,完成数据的采集和处理,简化了系统架构。那么Logstash和Ignest Node有何异同?在实际使用中该如何选择呢?

2、Logstash与Ignest Node的比较

2.1 数据输入和输出

Ingest Node:作为Elasticsearch索引文档过程的一部分,仅能使用Elasticsearch支持的方式来输入,如Restful接口等,处理过后的数据也只能索引入Elasicsearch中,而不能输出到其他地方。

Logstash:支持多种数据源,包括各种Beats,Mysql,kafka等,不仅可以作为服务端接收Client通过TCP,UDP,HTTP等方式推送过来的数据,也可以主动从数据库,消息队列等处拉取数据。数据输出功能也非常强大,可以输出到消息队列,对象存储,HDFS等。

2.2 数据缓冲

Ingest Node:Elasticsearch本身并没有提供数据缓冲策略,数据输入端需要自行解决ES拒绝写入请求的情况。而Ingest Node作为ES索引文档的一部分也没有数据缓冲策略。

Logstash:提供队列机制,可以防止数据丢失和承受一定的负载尖刺。另外,还支持多种队列,可以根据业务实际情况选择合适的队列。

2.3 数据处理

Ingest Node:支持超过20多种processors,这些processors覆盖了Logstash的常用场景。限制是只能在单个数据的上下文执行,另外不能调用外部的系统,如文件,数据库等

Logstash:支持大量的processors,用户甚至可以自己的需要编写plugins,也可以调用包括磁盘文件,数据库,ES等外部资源。另外Logstash支持根据条件过滤和丢弃数据。

2.4 配置和使用

Ingest Node:通过ES接口创建Pipeline, 并存入Elasticsearch中,无监控和可视化管理界面

Logstash:主要通过配置文件来定义Pipeline,支持条件控制流和多pipeline,并提供有监控和可视化Pipeline管理功能,对于性能调优和问题定位非常有帮助。Kibana中的Logstash pipeline管理界面如下图:

[图片上传失败...(image-a61b5f-1574901926119)]

3、分析

(1)输入方面,虽然Logstash支持更多的输入方式,但是Ingest Node也可以通过与Beats,甚至Logstash配合来解决不同数据源的输入问题。

(2)输出方面,由于Ingest Node 作为Elasticsearch索引文档过程的一部分,因此除非对源码进行改造,否则无法将数据导出到其他地方。因此如果有将处理过后的数据导出到其他地方的需求,建议使用Logstash。

(3)数据缓冲方面,Ingest Node 可以通过在文档输入前接入Kafka等消息队列来解决。另外在实际使用中,即使Logstash自身有队列机制,一般也会在Logstash前增加Kafka来更好的缓冲数据传输压力。

(4)数据处理方面,IgnestNode支持Logstash的大多数常用场景,如果在使用前可以明确所有使用场景,确定Ignest Node可以满足需求,可以使用IgnestNode,如果IgnestNode不能满足要求,则需要采用Logstash。

(5)配置和使用方面,在这方面Logstash有明显优势,灵活的配置方式,可视化监控和pipeline管理,在复杂系统中有着重要的帮助作用。

(6)性能和架构方面,Ignest作为Elasticsearch集群的一部分,当数据处理逻辑相对简单时,可以简化数据采集和处理架构。但是当数据处理相对逻辑复杂时,Ingest Node数据处理过程可能影响节点的性能。这时一般采用专用Ingest Node的方式解决,而引入专用Ingest Node会使Elasticsearch集群的结构变得复杂,这与Ingest Node简化数据采集和处理架构的优势背道而驰。而Logstash是处于Elasticsearch前的专用数据采集和处理模块,当性能出现瓶颈时可以通过横向扩展的方式来提高处理能力,在架构上更为清晰。

(7)Ingest Node与Logstash的联用,Ingest Node是Elasticsearch集群的一部分,而Logstash处于Elasticsearch的前端,在结构上两者完全可以配合使用。PS:Ignest Node一个用法是为数据添加时间戳,以便更精确地记录文档索引时间,在耗时计算时有一定用处。Ingest Node与Logstash联用的Elastic Stack架构图如下:

Ingest Node与Logstash联用

4、结论和建议

通过上面的比较和分析不难发现,Ignest Node 在功能上基本为 Logstash 的子集, 在数据处理逻辑简单,没有其他额外输出端的时候,可以简化系统架构,实现快速部署。但是当处理逻辑复杂,多输入源和多输出源的场景下,Logstash的功能强大和灵活更为合适。

在实际使用中可以根据自己的业务特点来选择Ingest Node或Logstash。

(1)如果是将Elastic Stack使用在特定场景下,且数据处理逻辑相对简单,可以考察Ignest Node是否满足需求,优先使用Ignest Node实现系统的快速部署。

(2)当需要搭建的是一个通用的Elastic Stack平台,需要支持多种输入源,输出源,数据处理逻辑也相对复杂时,建议采用Logstash, 利用Logstash的功能强大,灵活,可扩展等特性,保证系统的功能性和稳定性。

(3)如果在系统搭建初期,需求不明确,由于Ignest Node和Logstash可以联用,因此可以先使用Ingest Node来搭建系统,当功能无法满足时,再在Elasticsearch前面增加Logstash。

Ingest Node和Logstash虽然在功能上有很多重叠,但是仍有各自的特点,在实际的业务场景中,可以根据业务需要灵活选择。

欢迎关注公众号Elastic慕容,和我一起进入Elastic的奇妙世界吧

image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,753评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,668评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,090评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,010评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,054评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,806评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,484评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,380评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,873评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,021评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,158评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,838评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,499评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,044评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,159评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,449评论 3 374
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,136评论 2 356

推荐阅读更多精彩内容