📜  Logstash-简介

📅  最后修改于: 2020-11-01 04:19:51             🧑  作者: Mango


Logstash是基于过滤器/管道模式的工具,用于收集,处理和生成日志或事件。它有助于集中和实时分析来自不同来源的日志和事件。

Logstash是用在JVM上运行的JRuby编程语言编写的,因此您可以在不同的平台上运行Logstash。它几乎从每种类型的源中收集不同类型的数据,例如日志,数据包,事件,事务,时间戳数据等。数据源可以是社交数据,电子商务,新闻文章,CRM,游戏数据,Web趋势,金融数据,物联网,移动设备等。

Logstash一般功能

Logstash的一般功能如下-

  • Logstash可以从不同来源收集数据并发送到多个目的地。

  • Logstash可以处理所有类型的日志记录数据,例如Apache日志,Windows事件日志,网络协议数据,来自标准输入的数据等等。

  • Logstash还可以处理http请求和响应数据。

  • Logstash提供了各种过滤器,可帮助用户通过分析和转换数据来在数据中找到更多含义。

  • Logstash还可以用于处理物联网中的传感器数据。

  • Logstash是开源的,可在Apache许可版本2.0下使用。

Logstash关键概念

Logstash的关键概念如下-

事件对象

它是Logstash中的主要对象,它封装了Logstash管道中的数据流。 Logstash使用此对象存储输入数据并添加在过滤器阶段创建的额外字段。

Logstash为开发人员提供了一个Event API来操纵事件。在本教程中,使用各种名称来引用此事件,例如日志数据事件,日志事件,日志数据,输入日志数据,输出日志数据等。

管道

它包括Logstash中从输入到输出的数据流阶段。输入数据输入管道中,并以事件的形式进行处理。然后以用户或终端系统所需的格式发送到输出目的地。

输入值

这是Logstash管道的第一阶段,用于获取Logstash中的数据以进行进一步处理。 Logstash提供了各种插件来从不同平台获取数据。一些最常用的插件是– File,Syslog,Redis和Beats。

过滤

这是Logstash的中间阶段,在这里进行事件的实际处理。开发人员可以使用Logstash使用预定义的Regex模式来创建序列,以区分事件中的字段和接受的输入事件的条件。

Logstash提供了各种插件来帮助开发人员解析事件并将其转换为所需的结构。一些最常用的过滤器插件是– Grok,Mutate,Drop,Clone和Geoip。

输出

这是Logstash管道的最后阶段,可以将输出事件格式化为目标系统所需的结构。最后,它使用插件将完成处理后的输出事件发送到目标。一些最常用的插件是– Elasticsearch,File,Graphite,Statsd等。

Logstash的优势

以下几点说明了Logstash的各种优点。

  • Logstash提供正则表达式模式序列,以识别和解析任何输入事件中的各个字段。

  • Logstash支持用于提取日志记录数据的各种Web服务器和数据源。

  • Logstash提供了多个插件来将日志记录数据解析并将其转换为任何用户所需的格式。

  • Logstash是集中式的,因此可以轻松地处理和收集来自不同服务器的数据。

  • Logstash支持许多数据库,网络协议和其他服务作为日志记录事件的目标源。

  • Logstash使用HTTP协议,该协议使用户可以升级Elasticsearch版本,而不必在锁定步骤中升级Logstash。

Logstash的缺点

以下几点解释了Logstash的各种缺点。

  • Logstash使用http,这会对记录数据的处理产生负面影响。

  • 使用Logstash有时可能会有些复杂,因为它需要对输入的日志记录数据有很好的理解和分析。

  • 过滤器插件不是通用的,因此,用户可能需要找到正确的模式序列,以避免解析错误。

在下一章中,我们将了解什么是ELK堆栈以及它如何帮助Logstash。