前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Logstash收集多数据源数据神器

Logstash收集多数据源数据神器

作者头像
用户1410343
发布2019-12-26 19:07:17
1.8K0
发布2019-12-26 19:07:17
举报
文章被收录于专栏:about云about云

问题导读 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] 纯文本查看 复制代码

?

代码语言:javascript
复制
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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 About云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档