Logstash收集多数据源数据神器


问题导读

1.Logstash是什么?
2.Logstash工作包含哪些流程?
3.logstash 是以什么方式流转数据的?
4.logstash架构包含哪些内容?

前言
Logstash很多老铁,vip会员等在用,这里对于已经会用的老铁可以复习下,不会用老铁,可以通过这篇文章来学习。本文从它的价值,也就是为何会产生Logstash,它能干什么,到它是如何设计的,也就是它的架构原理方面学习,到最后该如何实现Logstash的细节,也就是我们该如何让Logstash来工作,通过各种配置,来定制和控制我们的Logstash。

第一部分为何产生
1.Logstash是什么?

Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地进行存储。


我们可以看到可以搜集多种类型的数据,而且能够把他们标准化,然后发往目的地。对于这些数据,可以用来分析、归档、监控、报警灯。

第二部分设计实现
2.工作流程
分为三个阶段



处理流



pipeline本质
pipeline 是input-filter-output的三个阶段的处理流程,包含队列管理、插件生命周期管理。


logstash 数据以event的方式流转
原始数据进入logstash后在内部流转并不是以原始数据的形式流转,在input处被转换为event,在output event处被转换为目标格式的数据。可在配置文件中对其进行增删改查操作。



logstash数据流转示例

(1)通过配置文件控制流转


其数据转换过程如下:



命令运行

[Bash shell] 纯文本查看 复制代码

?

1
echo -e "foo\nbar" | ./bin/logstash -f codec.conf



3.Logstash工作流总结
Logstash是一个开源的服务器端数据处理管道,可以同时从多个数据源获取数据,并对其进行转换,然后将其发送到你最喜欢的“存储”。(当然,我们最喜欢的是Elasticsearch)

输入:多数据源
数据往往以各种各样的形式,或分散或集中地存在于很多系统中。Logstash 支持各种输入选择 ,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。

过滤器:在线实时转换处理
数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。

Logstash 能够动态地转换和解析数据,不受格式或复杂度的影响:

  • 利用 Grok 从非结构化数据中派生出结构

  • 从 IP 地址破译出地理坐标

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

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







输出:选择你的存储,导出你的数据

尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。

Logstash 提供众多输出选择,可以将数据发送到指定的地方,并且能够灵活地解锁众多下游用例。





4.logstash架构



logstash6.x架构



箭头代表数据流向。可以有多个input。中间的queue负责将数据分发到不同的pipline中,每个pipline由batcher,filter和output构成。batcher的作用是批量从queue中取数据(可配置)。


logstash数据流历程
首先有一个输入数据,例如是一个web.log文件,其中每一行都是一条数据。file imput会从文件中取出数据,然后通过json codec将数据转换成logstash event。

这条event会通过queue流入某一条pipline处理线程中,首先会存放在batcher中。当batcher达到处理数据的条件(如一定时间或event一定规模)后,batcher会把数据发送到filter中,filter对event数据进行处理后转到output,output就把数据输出到指定的输出位置。

输出后还会返回ACK给queue,包含已经处理的event,queue会将已处理的event进行标记。

队列详解

1.queue分类
In Memory
在内存中,固定大小,无法处理进程crash、机器宕机等情况,会导致数据丢失。

Persistent Queue In Disk
可处理进程crash情况,保证数据不丢失。保证数据至少消费一次;充当缓冲区,可代替kafka等消息队列作用。

Persistent Queue(PQ)处理流程
1、一条数据经由input进入PQ,PQ将数据备份在disk,然后PQ响应input表示已收到数据;
2、数据从PQ到达filter/output,其处理到事件后返回ACK到PQ;
3、PQ收到ACK后删除磁盘的备份数据;


第三部分具体实现

logstash设置相关配置文件
logstash设置相关配置文件主要位于conf配置文件下,在logstash启动时使用。

logstash.yml
logstash相关配置,如node.name,path.data等。其中这些配置的参数可以被命令行参数覆盖。

jvm.options
jvm相关参数,比如heap、size等。

pipeline配置文件
定义数据处理流程的文件,一般是用户自定义,以.conf结尾。


logstash.yml常见配置项





logstash命令行配置




pipeline配置

pipeline用于配置input、filter、output插件,框架如下:



配置语法
数值类型




注释


引用logstash event的属性(字段)

在配置中可以引用logstash event的属性(字段),方式如下:
1、直接引用字段
2、在字符串中以sprintf方式引用




条件判断
支持条件判断语法,从而扩展了配置的多样性


其中表达式操作符如下:


配置示例:



相关链接
https://blog.csdn.net/sinat_35930259/article/details/81044846
https://www.cnblogs.com/cjsblog/p/9459781.html

如果你也是大数据爱好者,欢迎加微信领取100本经典大数据等电子书。

----------------------------END--------------------------

领取100本书+1T资源

https://www.aboutyun.com/thread-26480-1-1.html

名企资源、名企面试题、最新BAT面试题、专题面试题等资源汇总

https://www.aboutyun.com/forum.php?mod=viewthread&tid=27732

About云 VIP会员套餐介绍
https://www.aboutyun.com/forum.php?mod=viewthread&tid=27305

 本公众号精彩文章推荐:

【1】程序员必备的分析解决问题能力:案例分享

【2】Hbase故障处理汇总及评注

【3】技术太多学不过来?教你如何越学越带劲

【4】IT大咖工作十年总结的面试真经

【5】小白与大神存在哪些差距

【6】腾讯大数据面试及参考答案

【7】kafka学习线路指导入门:包括理论、部署、实战知识汇总整理

【8】技术走向管理一些深度思考

发布了42 篇原创文章 · 获赞 48 · 访问量 10万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览