logstash的工作原理

logstash的工作原理

logstash时间处理管道有三个阶段:输入 -> 过滤器 -> 输出。输入生成事件,过滤器修改它们,输出将它们发送到其它地方。输入和输出支持编码解码器,使我们能够在数据进入或退出管道时对数据进行编码和解码,而无需使用单独的过滤器。

输入input

你使用输入将数据导入logstash,一些常用的输入是:

①file:从文件系统上读取,与Linux命令非常相似 tailf

②syslog:在已知端口514上侦听syslog消息并根据RFC3164格式进行解析

③redis:使用redis通道和redis列表从redis服务器读取

④beats:处理beats发送的事件

过滤器filter

过滤器是logstash管道中的中间处理设备。你可以将过滤器与条件组合,以便在满足特定条件时对其执行操作。一些有用的过滤包括:

①grok:解析并构造任意文本。grok是目前logstash中将非结构化日志数据解析为结构化和可查询内容的最佳方式。有了内置与logstash的120中模式,你能找到你最满足的模式

②mutate:对事件字段执行常规转换。可以重命名、删除、替换和修改事件中的字段

③drop:完全删除事件,例如debug事件

④clone:制作事件的副本,可能添加或删除字段

输出output

输出是logstash管道的最后阶段。事件可以有多个输出,但是一旦所有输出处理完成,事件就完成了它的执行。一些常用的输出包括:

①elasticsearch:将事件数据发送到elasticsearch。如果你计划以高效、方便且易于查询的格式保存数据,elasticsearch是你的最佳选择

②file:将事件数据写入磁盘文件

③graphite:将事件数据发送到graphite,这是一种用户存储和绘制指标的流行开源工具

④statsd:将事件数据发送到statsd,这是一种“侦听统计信息,如计数器和定时器,通过UDP发送并将聚合发送到一个或多个可插入后端”的服务。

编解码器codecs

编解码器基本上是作为输入和输出的一部分。使用编解码器开源轻松地将消息传输与序列化过程分开,流行的编解码器包括json、msgpack和plain(文本)。

·json:以json格式编码或解码数据

·multiline:将多行文本时间合并到一个事件中

执行模型Execution Model

logstash时间处理管道协调input、filter、output的执行。

logstash管道中的每个输入阶段都在其自己的线程中运行。将事件写入内存或磁盘上的中央队列。每个管道工作线程从该队列中获取一批事件,通过配置的filter运行一批事件,然后通过任何输出运行过滤的事件。批处理的大小和管道工作线程的数量是可配置的。

默认情况下,logstash在管道阶段(输入 -> 过滤器 -> 输出)之间使用内存中有界队列来缓冲事件。如果logstash正常地终止,则存储在内存中的所有事件都会丢失。为了防止数据丢失,你可以启用将正在进行的事件保存到磁盘。

 

转载于:https://www.cnblogs.com/qinwengang/p/10941886.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值