Logstash 使用

用户头像
Rayzh
关注
发布于: 2020 年 11 月 29 日
Logstash使用

这篇文章主要讲述下Logstash的详细使用方法。

一、Logstash是什么

Logstash is an open source data collection engine with real-time pipelining capabilities.

简单的说,Logstash是一个实时数据搜集的工具。

Logstash包括三个部分:input、filter、output,其中filter部分不是必须。input作为数据的输入,官方插件里,提供包括file、jdbc、http等多种方式;filter部分主要是对input的数据进行清洗,官方插件里提供包括正则、split、kv、ruby等多种方式,将输入的数据清洗成自己需要的格式;output是数据经过清洗之后保存的地方,可以是hdfs、es等多种方式。原始通过这三个步骤,从而处理为自己想要的数据格式。

二、有哪些用途

以ELK Stack中的使用方式为例。我们通过input的kafka插件,获取到数据之后,通过filter中的grok、kv等插件清洗了原始数据,再通过output的es插件输出到Elasticsearch指定的index中。

除此之外,Logstash本身丰富的插件也可以用来做实时数据搜集的工具。从MySQL到HDFS、从Kafka到MySQL等等,可以将Logstash作为异构数据的实时同步通道。

三、logstash.conf如何写

Logstash的具体数据处理,是配置在logstash.conf文件中,多个pipline需要配置logstash.yml。

编写数据采集规则,只需要关注input、filter、output三个部分。官方文档中,每个插件的详细使用配置和demo都可以查询到,是编写配置过程中必须参考的。由于logstash版本变更过程中一些方法的弃用,目前最合适的方法是根据对应版本的docs说明进行编写。

比如,我们ELK中经常搜集的类似Apache、Nginx这类标准化的日志格式,可以参考:

https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html

对于csv、json类型的数据,也可以找到对应的解析插件:

https://www.elastic.co/guide/en/logstash/current/plugins-filters-csv.html

https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html



标准的插件,几乎涵盖了我们日常需要处理的各种数据格式。选择合适的轮子,可以高效地解决问题。当然,如果这些轮子都不适用并且改造原始数据格式难度较大,我们有没有其他的方式呢?请参考:

https://www.elastic.co/guide/en/logstash/current/plugins-filters-ruby.html

发布于: 2020 年 11 月 29 日阅读数: 19
用户头像

Rayzh

关注

我知道我需要什么 2018.11.13 加入

主业是搞运维的,重心在容器生态和大数据生态上。 期待和大家的交流。

评论

发布
暂无评论
Logstash使用