ELK - Logstash - How logstash works

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消息)合并为单个事件。

猜你喜欢

转载自blog.csdn.net/chuckchen1222/article/details/85235465