问题导读

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】技术走向管理一些深度思考

Logstash收集多数据源数据神器相关推荐

  1. logStash收集日志并存储到Elasticsearch

    为什么80%的码农都做不了架构师?>>>    上一节说道如何用logStash收集日志,结合Elasticsearch 进行日志收集和存储 logStash配置如下 input { ...

  2. logstash收集syslog日志

    logstash收集syslog日志 注意:生产用syslog收集日志!!! 编写logstash配置文件 #首先我用rubydebug测试数据 [root@elk-node1 conf.d]# ca ...

  3. logstash收集nginx日志

    1.配置nginx日志 编辑nginx.conf文件 vim /etc/nginx/nginx.conf 在http节点下配置如下 log_format json '{"@timestamp ...

  4. ELK下logstash收集java日志,多行合并成一行

    介绍 使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input ...

  5. filebeat+logstash收集错误日志发送邮件提醒

    filebeat+logstash收集错误日志发送邮件提醒 典型ELK应用架构 因为只收集错误日志并且数据量并不是非常大所以简化流程 使用filebeat+logstash发送异常日志 软件 版本 说 ...

  6. logstash收集windows eventlog

    ==============================logstash收集windows eventlog=================================== windows下 ...

  7. logstash收集java日志,多行合并成一行

    使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input {s ...

  8. logstash 收集windows日志--解决日志不能重命名问题

    logstash 在windows中收集日志的时候,会导致写日志的程序不能进行日志的切割(windows提示,文件被占用) 从github上下载useJavatoOpenFile    https:/ ...

  9. ELK 使用filebeat替代Logstash收集日志

    使用beats采集日志 之前也介绍过beats是ELK体系中新增的一个工具,它属于一个轻量的日志采集器,以上我们使用的日志采集工具是logstash,但是logstash占用的资源比较大,没有beat ...

最新文章

  1. sqoop配置与使用
  2. 大家注意:升级 win8.1 火狐浏览器 谷歌浏览器 搜狗五笔输入法 都不能用啦
  3. Java PipedOutputStream flush()方法与示例
  4. ProviderManager
  5. Dijkstra算法|单源最短路径|贪心算法
  6. 使用POI导出数据以及性能比较
  7. win10背景色改成豆沙绿,解决锁屏后失效方法
  8. 华为[ENSP]OSPF的配置实例(单区域+多区域)
  9. linux未找到命令rpm,RPM命令执行失败:bash: rpm: 未找到命令...
  10. PDF编辑器里的测量工具如何使用?
  11. 微信小程序开源框架wxSortPickerView:微信小程序首字母排序选择表
  12. vue3中进行vuex的分包管理(typescript)
  13. ERROR: node with name rabbit already running on xxx
  14. 可以检测手机帧率和温度的软件_拯救者电竞手机Pro评测:不只是一台手机,更是游戏主机...
  15. 数据结构与算法实验: 附加实验 二叉树的建立和输出
  16. Jmeter系列(68)- BeanShell 内置变量 prev
  17. Win10下载Ubuntu Linux虚拟机设置管理员名称时无法通过NAME_REGEX的检查,--force-badname也无法通过
  18. 第9节 蒙卡模拟计算美式期权价格(b)
  19. python 获取qq群成员信息_Python-获取QQ群成员信息并存入excel及redis并发送邮件
  20. 32位计算机百度盘,【安装包】正版office_2010(win7专用【32位】)

热门文章

  1. matlab播放视频的函数,matlab读取/播放视频的函数(1)
  2. 【前端】JavaScript构造函数
  3. Mac 指定node版本安装
  4. 人工智能在生活中有哪些应用
  5. 软件实施—基础入门总结
  6. 拼多多商品如何添加水印 智能店长一键打标
  7. MODBUS 通讯协议初探
  8. android UI进阶之style和theme的使用
  9. 2021 - 45周(App合规自查)
  10. 量子计算机 进程,超高速量子计算机进程有望加快