【实时日志分析系列之】-------- 技术选型篇_日志系统分析的项目背景及技术选型-程序员宅基地

技术标签: elasitcsearch  logstash  storm  实时日志分析  |----大数据  kibana  

前言

大概是节前到节后的小2个月时间,已经把实时日志分析这一套小架子搭了起来,并且已经可以看到成果,现在继续利用业余时间把这个系列总结记录一下。

逻辑架构图

逻辑架构图如下:

这里写图片描述

一图胜过千言万语,来看下实时日志分析的技术选型以及整个流程。

其实这一套大部分都是组件,而整套组件中用到的都是Elastic Stack中的组件。

首先采用了filebeat ( elastic stack的组件) 对采集日志服务器进行日志采集,通过主动发的形式送入logstash (elastic stack的组件)中,在logstash中对日志的每行信息进行正则匹配,并且对应格式化成json串的形式。而logstash自带的output插件中是支持kafka的,在用其发向kafka集群。storm这里是需要写代码的,我们需要手动写一个拓扑(topology),而这个拓扑中的spout节点便是从kafka上读取数据,同时用java的普通类对数据进行处理,在用bolt写上连接elasticsearch客户端的逻辑代码,发向elasticsearch,最终通过kibana连接到elasticsearch上,对数据进行相应的数据分析以及界面展示。

技术选型介绍

Filebeat

Filebeat: 是一个日志文件托运工具,在服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读)。而相对于logstash,filebeat的优点是非常轻量级….并且不吃内存。

这里写图片描述

Logstash

是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。

这里写图片描述

Apache Kafka

是一个快速、可扩展的、高吞吐、可容错的分布式发布订阅消息系统。Kafka具有高吞吐量、内置分区、支持数据副本和容错的特性,在离线和实时的消息处理业务系统中,Kafka都有广泛的应用。Kafka将消息持久化到磁盘中,并对消息创建了备份保证了数据的安全。Kafka在保证了较高的处理速度的同时,又能保证数据处理的低延迟和数据的零丢失。

这里写图片描述

Storm

是一个分布式的,可靠的,容错的数据流处理系统。Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt, bolt要么把数据保存到某种存储器,要么把数据传递给其它的bolt。一个Storm集群就是在一连串的bolt之间转换spout传过来的数据。

这里写图片描述

Elasticsearch

是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一,Wikipedia、Stack Overflow、GitHub 等都基于 Elasticsearch 来构建他们的搜索引擎。
下图是es的node插件的图:

这里写图片描述

Kibana

是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。

这里写图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/s740556472/article/details/79617194

智能推荐

React Native中ref的用法(通过组件的ref属性,来获取真实的组件)-程序员宅基地

文章浏览阅读1.3k次。ref是什么?ref是组件的特殊属性,组件被渲染后,指向组件的一个引用。可以通过组件的ref属性,来获取真实的组件。因为,组件并不是真正的DOM节点,而是存在于内存中的一种数据结构,称为虚拟的DOM,只有当它真正的插入文档之后,才变为真正的DOM节点。根据React的设计,所以的DOM变动都发生在虚拟DOM上,然后再将实际的部分反映到真实的DOM上--这就是 DOM DIff,它可以..._react native ref

数据挖掘实战之航空公司客户价值分析_数据挖掘航空公司客户价值分析-程序员宅基地

文章浏览阅读1.1w次,点赞13次,收藏69次。背景与挖掘目标1. 背景航空公司业务竞争激烈,从产品中心转化为客户中心针对不同类型客户,进行精准营销,实现利润最大化建立客户价值评估模型,进行客户分类,是解决问题的办法2. 挖掘目标借助航空公司客户数据,对客户进行分类对不同的客户类别进行特征分析,比较不同类客户的客户价值对不同价值的客户类别提供个性化服务,制定相应的营销策略详情数据见数据集内容中的air_data.csv和客户信息属性说明。分析方..._数据挖掘航空公司客户价值分析

Qt 蓝牙实现连接_qt蓝牙通信-程序员宅基地

文章浏览阅读3.2k次。8、什么是透传模式,蓝牙分为两种模式,分别是透传模式和AT模式,透传模式就是蓝牙与蓝牙之间需要进行通信时设置的。发送数据完毕后,退出透传模式到AT模式,然后通过AT指令进行其它需要的操作。3、蓝牙与蓝牙之间的通信方式这个我们不用管,我们只需要分别配置两块板,让主机能够扫描到从机。1、蓝牙模块在嵌入式设备上是通过串口连接,这样我们跟蓝牙进行交互是通过串口进行交互的。2、蓝牙一般是两板,一般是主机和从机,每块板跟嵌入式核心板都是通过串口进行通信的。4、蓝牙板跟嵌入式核心板它们之间的通信协议是AT指令集。_qt蓝牙通信

鼓励参与计算机考试宣传标语,考试宣传标语34句-程序员宅基地

文章浏览阅读346次。考试宣传标语34句1、坚持公开、公平、公正原则,确保考试成绩的真实性。2、苦斗五载历届师生,卧薪尝胆学校创辉煌。3、公开、平等、竞争、择优!4、刻苦学习、正直做人。5、为人,为学,为事,中流击水,争世上先。6、冷静分析,沉着应考,考出真实水平。7、杜绝考试违纪行为,确保考试结果公正。8、拼搏创造价值,努力成就未来。9、会考号角声声急,是谁又催千里马;夺魁战鼓阵阵高,看我更上一层楼。10、不放过每一..._计算机等级宣传标题

基于SpringBoot+Vue的地方特色美食分享管理系统的详细设计和实现(源码+lw+部署文档+讲解等)-程序员宅基地

文章浏览阅读877次,点赞19次,收藏23次。博主介绍:全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战精彩专栏 推荐订阅2023-2024年最值得选的微信小程序毕业设计选题大全:100个热门选题推荐2023-2024年最值得选的Java毕业设计选题大全:500个热门选题推荐Java精品实战案例《500套》微信小程序项目精品案例《500套》文末获取源码+数据库。

图解unicode、utf8和utf8mb4_utf-8 unicode (utf8mb4)-程序员宅基地

文章浏览阅读10w+次,点赞6次,收藏6次。字符集和字符编码字符集(CCS: Coded Character Set):就是一个表格,表示每个字符对应数字(通常用16进制表示),比如unicode字符集中,数字1对应的就是U+00031,字母a对应的就是U+00061。字符编码(CEF:Character Encoding Form):因为计算机只认识0和1,所以计算机在存储字母a(U+00031)的时候,不能直接存储。所以就需要编码将字母a转换成01表示形式。对于unicode字符,utf8就是它的编码方案(如何utf8转换成01表示下._utf-8 unicode (utf8mb4)

随便推点

TensorRT的命令行程序_--layerprecisions-程序员宅基地

文章浏览阅读400次。点击此处加入NVIDIA开发者计划示例目录中包含一个名为的命令行包装工具。 是一种无需开发自己的应用程序即可快速使用 TensorRT 的工具。工具有三个主要用途:如果您将模型保存为 文件、 文件,或者如果您有 格式的网络描述,则可以使用工具测试使用 TensorRT 在网络上运行推理的性能。 工具有许多选项用于指定输入和输出、性能计时的迭代、允许的精度和其他选项。为了最大限度地提高 GPU 利用率, 会提前将一个batch放入队列。换句话说,它执行以下操作:如果使用多流( 标志),则在每个流上分别遵_--layerprecisions

model.compile():配置模型(优化器, 损失函数, 准确率)_python compile optimizer函数-程序员宅基地

文章浏览阅读7.2k次,点赞4次,收藏45次。model.compile() 作用:设置优化器、损失函数和准确率评测标准。model.compile() 语法:形式1 model.compile(optimizer = tf.keras.optimizers.优化器(参数), loss = tf.keras.losses.损失函数(参数), metrics = ["sparse_accuracy"]) 形式2 model.compile(optimizer = "sgd",_python compile optimizer函数

平面点集哇_平面点集是否为区域-程序员宅基地

文章浏览阅读309次。开局设一平面点集。_平面点集是否为区域

【电赛】MSP432P401R——ADC+DMA+串口打印-程序员宅基地

文章浏览阅读3.4k次,点赞19次,收藏91次。本文深入探讨了如何通过MSP432上的ADC和DMA技术,实现高效的数据处理和转换。我们将揭示如何巧妙地配置和使用ADC模块,以及如何利用DMA的自动模式,在保证数据处理连续性和实时性的同时,极大地提升处理效率。文章内容充满实用价值,无论你是嵌入式系统的开发者,还是对微控制器编程感兴趣的学习者,都绝对不能错过!_msp432p401r

iOS在WKWebView中加载页面时自动弹出软键盘_webview.keyboarddisplayrequiresuseraction-程序员宅基地

文章浏览阅读2.5k次。实现方式(UIWebView)首先需要web端设置input为focus聚焦状态,然后设置UIWebView的keyboardDisplayRequiresUserAction属性,默认为YES。如果设置为YES,用户必须明确的点击页面上的元素来显示键盘;如果设置为NO,则进入web页面会自动弹出键盘。实现方式(WKWebView)目前我们基本都用WKWebView来代替UIWebView,因为WKWebView与UIWebView相比较,拥有更快的加载速度和性能,更低的内存占用,更加细致的委托协议配_webview.keyboarddisplayrequiresuseraction

sublime text 格式化json_sublimejson格式化-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏3次。在开发的过程中,json数据是经常使用的。查日志。。但是查到的日志,都是一长串。。之前最长使用的是sojson网站,打开之后,然后格式化json 在模拟数据。但是发现,查的多了,每次都打开浏览器 格式化,觉得挺繁琐的。然后听说sublime text 可以对json数据进行处理。然而我也经常使用,随意就研究了一下。 首先,sublimetext 需要安装插件。 安装 1、打开vi_sublimejson格式化