Logstash

Logstash是一个开源的并具有数据传输能力的数据收集引擎,它能够动态的统一不同数据源的数据,并序列化数据到你所选择的存储。清洗和规范所有的数据并用于下游的数据分析和可视化展示。
虽然Logstash最初推动了日志收集的创新,但其功能已经远远超越了用例本身。任何类型的事件数据都可以通过广泛的带有编解码器的输入、过滤、输出插件进行丰富和转换。Logstash本身加速了你对海量和多样化数据的的洞见。

1、Logstash的pipleline​

这里写图片描述

Logstash的pipleline必须拥有输入和输出两个元素,过滤元素是可选的,输入插件从数据源消费数据,过滤插件按照你指定的规则进行修改数据,输出插件则是将数据写入到目的地。

inputs:必须,负责产生事件,常用的:File、syslog、redis、kafka等
filters:可选,负责数据的处理和转换,常用的:grok、mutate、drop、geopip等
outputs:必须,负责数据的输出,常用的:elasticsearch、file、kafka等

2、Logstash的执行模型

Logstash的事件处理pipleline完成,需要输入、过滤、输出插件的协同工作。在Logstash的pipleline中,每一次的输入阶段都工作在独自的线程中,Inputs写事件到SynchronousQueue.SynchronousQueue不持有任何的事件数据,它传输数据到闲的工作线程,并非一条一条的传输,而是闲的工作线程,先在内存创建一个buffer,从SynchronousQueue获取一批事件数据,然后将其运行通过配置的过滤插件,进而到输出插件,最终输出到目的地。这批事件的数量以及工作线程的多少是可以配置的(参考:https://www.elastic.co/guide/en/logstash/current/tuning-logstash.html)。 当这一批数据正常的通过过滤插件、输出插件到达目的地时,其才是返回ACKed给输入线程,输入线程同样的原理作用于数据源,以保证整个pipleline过程数据传输的准确性。
默认情况下:Logstash是采用内存来存储各个阶段之间的事件数据的(inputs->filters 以及filters->outputs).如果Logstash非安全性的终止,那么内存中的数据就会丢失。当然如果你不想数据丢失,也可以持久化数据到硬盘中(参考:https://www.elastic.co/guide/e … ueues)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值