论logstash的玩法(ELK)

本篇文章采用的采用的是logstash-7.7.0版本,主要从如下几个方面介绍

1、logstash是什么,可以用来干啥

2、logstash的基本原理是什么

3、怎么去玩这个elk的组件logstash

一、logstash是什么,有哪些作用 1.1、概念

官方概念:Logstash是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。

1.2、功能

Logstash能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用Grok从非结构化数据中派生出结构,从IP地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程。

采集数据:

  能够采集各种样式、大小和来源的数据往往以各种各样的形式,比如log日志,收集redis、kafka等热门分布式技术的数据,并且还可以收集实现了java的JMS规范的消息中心的数据,或分散或集中地存在于很多系统中。Logstash支持各种输入选择,可以同时从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从日志、指标、Web应用、数据存储以及各种AWS服务采集数据

论logstash的玩法(ELK)

 

 

 

解析数据和转换:

  数据从源传输到存储库的过程中,Logstash过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便进行更强大的分析和实现商业价值。
Logstash能够动态地转换和解析数据,不受格式或复杂度的影响:

利用Grok从非结构化数据中解析出结构数据

从IP地址破译出地理坐标

将PII数据匿名化,完全排除敏感字段

简化整体处理,不受数据源、格式或架构的影响

  数据输入端从各种数据源收集到的数据可能会有很多不是我们想要的,这时我们可以给Logstash定义过滤器,过滤器可以定义多个,它们依次执行,最终把我们想要的数据过滤出来,然后把这些数据解析成目标数据库,如elasticsearch等能支持的数据格式存储数据。

论logstash的玩法(ELK)

 

数据转存:

  选择好存储库,导出数据到存储库进行存储,尽管Elasticsearch是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。Logstash提供众多输出选择,可以将数据发送到您要指定的地方,比如redis、kafka等

论logstash的玩法(ELK)

 

 

 

 

二、logstash的基本原理

  logstash分为三个步骤:inputs(必须的)→ filters(可选的)→ outputs(必须的),inputs生成时间,filters对其事件进行过滤和处理,outputs输出到输出端或者决定其存储在哪些组件里。inputs和outputs支持编码和解码。

论logstash的玩法(ELK)

 

执行模型:

Logstash是协调inputs、filters和outputs执行事件处理的管道。

  Logstash管道中的每个input阶段都在自己的线程中运行。将写事件输入到内存(默认)或磁盘上的中心队列。每个管道工作线程从该队列中取出一批事件,通过配置的filter处理该批事件,然后通过output输出到指定的组件存储。管道处理数据量的大小和管道工作线程的数量是可配置的

  默认情况下,Logstash使用管道阶段(input→filter和filter→output)之间的内存限制队列来缓冲事件。如果Logstash不安全地终止,存储在内存中的所有事件都将丢失。为了帮助防止数据丢失,可以启用Logstash将飞行中的事件持久化到磁盘。有关详细信息,请参阅持久队列https://www.elastic.co/guide/en/logstash/current/persistent-queues.html

如下是目前logstash7.7.0支持的inputs、outputs、filters

inputs:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgsxw.html