ELK - Logstash - How logstash works

本文深入解析Logstash事件处理管道的三个关键阶段:输入、过滤器和输出。介绍各种输入源如文件、syslog、redis及beats,过滤器功能如grok解析、mutate转换、drop删除等,以及输出目标如elasticsearch、file和graphite。同时,阐述编解码器的作用及其应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Logstash事件处理管道有三个阶段:输入 - 过滤器 - 输出。输入生成事件,过滤器修改它们,输出将它们传送到其他地方。

输入和输出支持编解码器,使您能够在数据进入或退出管道时对数据进行编码或解码,而无需使用单独的过滤器。

 

输入:

file:从文件系统上的文件读取,非常类似于UNIX命令tail-0F

syslog:在众所周知的端口514上侦听syslog消息并根据RFC3164格式进行解析

redis:使用redis通道和redis列表从redis服务器读取数据。在集中式Logstash安装中,Redis经常用作“代理”,它将Logstash事件从远程Logstash“托运人”排队。

beats:处理Beats发送的事件。

 

过滤器:

过滤器是Logstash管道中的中间处理设备。如果符合某些条件,则可以将筛选器与条件组合以对事件执行操作。

grok:解析和结构任意文本。Grok是目前Logstash中将非结构化日志数据解析为结构化和可查询内容的最佳方法。有了内置的120个Logstash模式,您很可能会找到满足您需要的模式!

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

drop: 完全删除事件.

clone:复制事件,可能添加或删除字段。

geoip: 添加关于IP地址的地理位置的信息(在Kibana也显示惊人的图表!)

 

输出:

输出是Logstash管道的最后阶段。事件可以通过多个输出,但是一旦所有输出处理完成,事件就完成了执行。

elasticsearch:将事件数据发送到Elasticsearch。如果您打算以高效、方便和易于查询的格式保存数据,那么可以使用弹性搜索。

file:将事件数据写入磁盘上的文件。

graphite:将事件数据发送到graphite,这是一个流行的开放源码工具,用于存储和绘制度量。

statsd:将事件数据发送到statsd,该服务“侦听统计数据,如计数器和定时器,通过UDP发送,并将聚合发送到一个或多个可插入的后端服务”。如果您已经在使用statsd,那么这对您可能很有用!

 

编解码器:

编解码器基本上是可作为输入或输出的一部分操作的流过滤器。Codec使您可以轻松地将消息的传输与序列化过程分离。流行的编解码器包括json、msgpack和纯文本。

json:以JSON格式对数据进行编码或解码。

multiline:将多行文本事件(如Java异常和StasTrack消息)合并为单个事件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值