ELK+Kafka+Beats实现海量日志收集平台(一)

2024-04-03 14:38

本文主要是介绍ELK+Kafka+Beats实现海量日志收集平台(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

            ELK+Kafka+Beats实现海量日志收集平台(一)

目录

一、应用场景

二、实现原理


一、应用场景

  利用ELK+Kafka+Beats来实现一个统一日志平台,它是一款针对大规模分布式系统日志的统一采集、存储、分析的APM 工具。在分布式系统中,有大量的服务部署在不通的服务器上,客服端的一个请求查询,就可能会调用后端多个服务,每个服务之间可能会相互调用或一个服务又会调用其它服务,最终才将请求的结果返回,汇总展现到前端页面上。假若这其中的某个环节发生异常,开发运维人员很难准确定位这个问题到底是由哪个服务调用造成的, 统一日志平台的作用就是追踪每个请求的完整调用链路,收集调用链路上每个服务的性能、日志数据,方便开发运维人员能够快速发现问题,定位问题。

  统一日志平台通过采集模块、传输模块、存储模块、分析模块实现日志数据的统一采集、存储和分析,结构图如下:

          

二、实现原理

  “ ELK”是三个开源项目的缩写:Elasticsearch,Logstash和Kibana。也称ELK Stack,能够可靠,安全地从任何来源以任何格式获取数据,然后进行实时搜索,分析和可视化。Elasticsearch是搜索和分析引擎,开源的,分布式,RESTful,基于JSON的搜索引擎。它易于使用,可扩展且灵活。Logstash是服务器端的数据处理管道,它同时从多个源中提取数据,进行转换,然后将其发送到类似Elasticsearch的“存储”中。Kibana允许用户在Elasticsearch中使用图表将数据可视化。

        

  Beats 是一个免费且开放的平台,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向 Logstash 或 Elasticsearch 发送数据。Beats可以将数据直接发送到Elasticsearch或通过 Logstash 发送,然后在Logstash中可以进一步处理和过滤数据,然后再在Kibana中进行可视化 。

Beats架构图如下:

              

  要实现海量日志数据收集分析,首先要解决的问题就是如何处理海量的数据信息,本案例中利用Kafka结合Beats、Logstash来实现分布式消息队列平台,其中采用Beats来采集日志数据,也就相当于是Kafka消息队列中的Producer来生产消息,然后将消息发送到Kafka(相当于消息队列的Broker),然后将日志数据发送到Logstash(扮演消费者-Consumer)进行分析过滤等处理。再把从Logstash中处理之后的数据存储到Elasticsearch中,最终通过Kibana来可视化日志数据。

该过程架构图如下:

    

         其中Beats主要有以下几种:

               Filebeat      : 用于收集日志文件

               Winlogbeat : 用于收集Windows事件日志

               Metricbeat  : 用于指标

               Packetbeat : 用于收集网络流量数据

  由于我们要采集日志来进行分析管理,所以我们使用Beats中的filebeat来进行日志采集

  通过上面的架构思路,大致清楚了日志收集分析显示到底要干什么事儿?接下来再通过下图进一步将

该流程具体梳理下

       

  本案例通过编写一个简单的SpringBoot工程来生产日志数据,也就是图中的Log4j2 Appender来作为filebeats的数据源(filebeats要从哪儿获取日志文件),使用Log4j2来进行日志记录而不是Spring自带的Slf4j记录是因为Log4j2的性能要优于Slf4j。图中把生成的日志分为了all.log、error.log 两类日志,all.log用于记录应用服务产生的所有日志记录,error.log主要用于记录warn、error两类的错误日志。error.log日志只有当应用服务报错的时候才进行记录,这样以便日后进行分析告警。

  ELK官方参考文档

  ElasticSearch官网文档 Elasticsearch:官方分布式搜索和分析引擎 | Elastic

  Logstash官网文档 Logstash:收集、解析和转换日志 | Elastic

  Kibana 官网文档  Kibana:数据的探索、可视化和分析 | Elastic

  Beats 官网文档 Beats:Elasticsearch 的数据采集器 | Elastic

       下一章: ELK+Kafka+Beats实现海量日志收集平台(二)

这篇关于ELK+Kafka+Beats实现海量日志收集平台(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/873187

相关文章

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短