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】技术走向管理一些深度思考
Logstash收集多数据源数据神器相关推荐
- logStash收集日志并存储到Elasticsearch
为什么80%的码农都做不了架构师?>>> 上一节说道如何用logStash收集日志,结合Elasticsearch 进行日志收集和存储 logStash配置如下 input { ...
- logstash收集syslog日志
logstash收集syslog日志 注意:生产用syslog收集日志!!! 编写logstash配置文件 #首先我用rubydebug测试数据 [root@elk-node1 conf.d]# ca ...
- logstash收集nginx日志
1.配置nginx日志 编辑nginx.conf文件 vim /etc/nginx/nginx.conf 在http节点下配置如下 log_format json '{"@timestamp ...
- ELK下logstash收集java日志,多行合并成一行
介绍 使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input ...
- filebeat+logstash收集错误日志发送邮件提醒
filebeat+logstash收集错误日志发送邮件提醒 典型ELK应用架构 因为只收集错误日志并且数据量并不是非常大所以简化流程 使用filebeat+logstash发送异常日志 软件 版本 说 ...
- logstash收集windows eventlog
==============================logstash收集windows eventlog=================================== windows下 ...
- logstash收集java日志,多行合并成一行
使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input {s ...
- logstash 收集windows日志--解决日志不能重命名问题
logstash 在windows中收集日志的时候,会导致写日志的程序不能进行日志的切割(windows提示,文件被占用) 从github上下载useJavatoOpenFile https:/ ...
- ELK 使用filebeat替代Logstash收集日志
使用beats采集日志 之前也介绍过beats是ELK体系中新增的一个工具,它属于一个轻量的日志采集器,以上我们使用的日志采集工具是logstash,但是logstash占用的资源比较大,没有beat ...
最新文章
- sqoop配置与使用
- 大家注意:升级 win8.1 火狐浏览器 谷歌浏览器 搜狗五笔输入法 都不能用啦
- Java PipedOutputStream flush()方法与示例
- ProviderManager
- Dijkstra算法|单源最短路径|贪心算法
- 使用POI导出数据以及性能比较
- win10背景色改成豆沙绿,解决锁屏后失效方法
- 华为[ENSP]OSPF的配置实例(单区域+多区域)
- linux未找到命令rpm,RPM命令执行失败:bash: rpm: 未找到命令...
- PDF编辑器里的测量工具如何使用?
- 微信小程序开源框架wxSortPickerView:微信小程序首字母排序选择表
- vue3中进行vuex的分包管理(typescript)
- ERROR: node with name rabbit already running on xxx
- 可以检测手机帧率和温度的软件_拯救者电竞手机Pro评测:不只是一台手机,更是游戏主机...
- 数据结构与算法实验: 附加实验 二叉树的建立和输出
- Jmeter系列(68)- BeanShell 内置变量 prev
- Win10下载Ubuntu Linux虚拟机设置管理员名称时无法通过NAME_REGEX的检查,--force-badname也无法通过
- 第9节 蒙卡模拟计算美式期权价格(b)
- python 获取qq群成员信息_Python-获取QQ群成员信息并存入excel及redis并发送邮件
- 32位计算机百度盘,【安装包】正版office_2010(win7专用【32位】)