wangbo123855842 / Learning

15 stars 2 forks source link

Logstash #49

Open wangbo123855842 opened 3 years ago

wangbo123855842 commented 3 years ago
スクリーンショット 2020-12-24 14 27 59

Logstash

Logstash 是一个类似实时流水线的开源数据传输引擎,它像一个两头连接不同数据源的数据传输管道,将数据实时从一个数据源传输到另一个数据源中。在数据传输过程中,Logstash 还可以对数据进行清洗,加工和整理

Logstash 的体系结构

WechatIMG566

数据传输过程分为三个阶段: 输入,过滤,输出。 这三个阶段按顺序依次相连,在实现上,他们分别由三种类型的插件实现。即 输入插件,过滤器插件,输出插件。 并课通过修改配置文件实现 快速插拔。除了这三种插件外,还有一种称为 编解码器 Codec 的插件

事件是 Logstash 中另一个重要的概念。 事件是由输入插件在读入数据时产生,不同输入插件产生的事件属性并不完全相同,但一定会包含读入的原始数据。 过滤器插件会对这些事件做进一步处理,通过对事件属性的访问,添加和修改。最后,输出插件会将事件转换为目标数据源的数据格式并将他们存储到目标数据源中

在 Logstash 管道中,每个输入插件都是在独立的线程中读取数据并产生事件。 但输入插件并不直接将事件传递给过滤器插件或者输出事件,而是将事件写入一个队列中。队列可以是基于内存,也可以基于硬盘的可持久化队列。

死信队列,会在目标数据源没有成功接收到数据时,将失败的事件写入到队列中以供后续做进一步处理。死信队列是一种容错机制,目前仅支持 ElasticSearch

可见,输入插件,过滤器插件,输出插件,编解码器插件,以及,事件,队列等组件,共同协作形成了整个 Logstash 的管道功能。

Logstash 教学视频

https://www.elastic.co/cn/webinars/getting-started-logstash?baymax=rtp&elektra=products-logstash-gs-webinar&storm=ribbon-1&rogue=everyone-default