Logstash是一种基于过滤器/管道模式的工具,用于收集,处理和生成日志或事件.它有助于集中并实时分析来自不同来源的日志和事件.
Logstash是在JVM上运行的JRuby编程语言上编写的,因此您可以在不同平台上运行Logstash.它从几乎所有类型的源中收集不同类型的数据,如日志,数据包,事件,事务,时间戳数据等.数据源可以是社交数据,电子商务,新闻文章,CRM,游戏数据,网络趋势,财务数据,物联网,移动设备等.
Logstash一般功能
Logstash的一般功能如下 :
Logstash可以收集数据来自不同的来源并发送到多个目的地.
Logstash可以处理所有类型的日志数据,如Apache日志,Windows事件日志,网络协议数据,数据来自标准输入等等.
Logstash还可以处理http请求和响应数据.
Logstash提供了各种过滤器,通过解析和转换,帮助用户在数据中找到更多含义.
Logstash也可用于处理物联网中的传感器数据.
Logstash是开源的,可在Apache许可证2.0版下获得.
Logstash关键概念
Logstash的关键概念如下 :
事件对象
它是Logstash中的主要对象,它将数据流封装在Logstash管道中. Logstash使用此对象存储输入数据并添加在过滤阶段创建的额外字段.
Logstash为开发人员提供了一个事件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是集中式的,可以轻松处理和收集来自不同服务器的数据./p>
Logstash支持许多数据库,网络协议和其他服务作为记录事件的目标源.
Logstash使用HTTP协议,该协议使用户无需在锁定步骤中升级Logstash即可升级Elasticsearch版本./p>
Logstash缺点
以下几点解释了Logstash的各种缺点.
Logstash使用http,这会对记录数据的处理产生负面影响.
使用Logstash有时可能有点复杂,因为它需要对输入日志记录数据有一个很好的理解和分析.
过滤插件不是通用的因此,用户可能需要找到正确的模式序列以避免解析错误.
在下一章中,我们将了解ELK Stack是什么以及它如何帮助Logstash.