关于ELK Stack日志分析系统技术方案探讨

2024-06-08 18:58

本文主要是介绍关于ELK Stack日志分析系统技术方案探讨,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 前言
      • 为什么使用ELK
      • ELK Stack 简介
      • ELK 常用架构及使用场景介绍
        • 选型对比
        • 当前选型
        • 版本选择
      • 参考文档

前言

收集日志的方式很多,本片主要讲述ELK方案,其他方案如
采用Apache的成熟组件Flume和Kafka来实现这一套日志采集系统,并使用HDFS来做数据存储。
参考链接:https://blog.csdn.net/dada_1036/article/details/50814889

为什么使用ELK

传统意义上,ELK是作为替代Splunk的一个开源解决方案。Splunk 是日志分析领域的领导者。日志分析并不仅仅包括系统产生的错误日志,异常,也包括业务逻辑,或者任何文本类的分析。而基于日志的分析,能够在其上产生非常多的解决方案,譬如:

  • 问题排查。我们常说,运维和开发这一辈子无非就是和问题在战斗,所以这个说起来很朴实的四个字,其实是沉甸甸的。很多公司其实不缺钱,就要稳定,而要稳定,就要运维和开发能够快速的定位问题,甚至防微杜渐,把问题杀死在摇篮里。日志分析技术显然问题排查的基石。基于日志做问题排查,还有一个很帅的技术,叫全链路追踪,比如阿里的eagleeye 或者Google的dapper,也算是日志分析技术里的一种。
  • 监控和预警。 日志,监控,预警是相辅相成的。基于日志的监控,预警使得运维有自己的机械战队,大大节省人力以及延长运维的寿命。
  • 关联事件。多个数据源产生的日志进行联动分析,通过某种分析算法,就能够解决生活中各个问题。比如金融里的风险欺诈等。这个可以可以应用到无数领域了,取决于你的想象力。
  • 数据分析。 这个对于数据分析师,还有算法工程师都是有所裨益的。

基于市场流行度、海量数据的处理功能丰富度、开源等特性,我们选择了使用elk Stack这套技术栈

ELK Stack 简介

ELK 不是一款软件,而是 Elasticsearch、Logstash 和 Kibana 三种软件产品的首字母缩写。这三者都是开源软件,通常配合使用,而且又先后归于 Elastic.co 公司名下,所以被简称为 ELK Stack。根据 Google Trend 的信息显示,ELK Stack 已经成为目前最流行的集中式日志解决方案。

Elasticsearch:分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作。通常被用作某些应用的基础搜索引擎,使其具有复杂的搜索功能;
Logstash:数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置;
Kibana:数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示;
Filebeat:ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder源代码开发,是对它的替代。在需要采集日志数据的server上安装 Filebeat,并指定日志目录或日志文件后,Filebeat就能读取数据,迅速发送到 Logstash 进行解析,亦或直接发送到 Elasticsearch 进行集中式存储和分析。
更多ELK Stack介绍看集中式日志系统 ELK 协议栈详解


ELK 常用架构及使用场景介绍

1、 logstash -> elasticsearch -> kibana
2、 filebeats -> elasticsearch -> kibana
3、 logstash -> 消息队列(kafka/redis) -> logstash -> elasticsearch -> kibana
4、 filebeats -> logstash -> elasticsearch -> kibana
5、 filebeats -> 消息队列(kafka/redis) -> logstash -> elasticsearch -> kibana

选型对比
属性\类型12345
过滤方式logstashelasticsearch Ingestlogstashlogstashlogstash
过滤能力一般
采集速度一般一般
采集后传输速度一般很快一般很快
日志规模较小海量海量
框架重量级filebeat轻量级logstash较重logstash较重filebeat轻量级filebeat轻量级
采集源机器cpu、内存消耗
处理机器cpu、内存消耗
安装复杂度44656
拓展性es集群es集群消息队列、es、logstash集群es、logstash集群消息队列、es、logstash集群
安全性88676
稳定性877.587
应急能力88888
流行度156.56.58

选型一
这种架构非常简单,使用场景也有限。适合单台测试机器查看和分析日志使用。
在这里插入图片描述

这种架构的扩展,把一个 Logstash 数据搜集节点扩展到多个,分布于多台机器,将解析好的数据发送到 Elasticsearch server 进行存储,最后在 Kibana 查询、生成日志报表等。

这种结构因为需要在各个服务器上部署 Logstash,而它比较消耗 CPU 和内存资源,所以比较适合计算资源丰富的服务器,否则容易造成服务器性能下降,甚至可能导致无法正常工作。


选型二
这种架构引入 Beats 作为日志搜集器。
Beats 将搜集到的数据发送到 Logstash,经 Logstash 解析、过滤后,将其发送到 Elasticsearch 存储,并由 Kibana 呈现给用户。
在这里插入图片描述

这种架构解决了 Logstash 在各服务器节点上占用系统资源高的问题。相比 Logstash,Beats 所占系统的 CPU 和内存几乎可以忽略不计。另外,Beats 和 Logstash 之间支持 SSL/TLS 加密传输,客户端和服务器双向认证,保证了通信安全。

因此这种架构适合对数据安全性要求较高,同时各服务器性能比较敏感的场景。


选型三
这种架构适合于日志规模比较庞大的情况。但由于 Logstash 日志解析节点和 Elasticsearch 的负荷比较重,可将他们配置为集群模式,以分担负荷。引入消息队列,均衡了网络传输,从而降低了网络闭塞,尤其是丢失数据的可能性,但依然存在 Logstash 占用系统资源过多的问题。
在这里插入图片描述


选型四
基于 Filebeat 的 ELK 集群架构
在这里插入图片描述

选型四解决了logstash资源占用过多的问题,日志庞大的情况下主要压力在于logstash,较多的日志文件网络传输也可能导致日志服务器的文件系统填满,可以引入消息队列。见选型五。


选型五
因为免费的 ELK 没有任何安全机制,所以这里使用了 Nginx 作反向代理,避免用户直接访问 Kibana 服务器。加上配置 Nginx 实现简单的用户认证,一定程度上提高安全性。另外,Nginx 本身具有负载均衡的作用,能够提高系统访问性能。

在这里插入图片描述


当前选型

以上五种选型中其实主要区别在于:logstash和filebeat的选用,是否引入消息队列,以及是否引入es和logstash集群
综合主要考虑有以下:

  • 相比 logstash,fileBeat做采集功能更加轻量化,相比 Logstash,Beats 所占系统的 CPU 和内存几乎可以忽略不计。根据相关测试数据,8线程8GB内存下,logstash常驻内存660M(JAVA),filebeat常驻内存不到30M(GO)。

  • 官方推荐使用filebeat替代logstash做采集功能。

  • filebeat 也会和 logstash 一样记住上次读取的偏移。

  • 5.x 开始,Elasticsearch 具有解析的能力(像 Logstash 过滤器)— Ingest。这也就意味着可以将数据直接用 Filebeat 推送到 Elasticsearch。

  • filebeat的日志解析功能仍然不够强大,还需要logstash做采集后的日志处理

  • 随着日志量的增大,文件存储和传输对于服务器内存和带宽影响大,则需要把数据先推到消息队列,减少采集端服务器文件存储和内存压力,同时引入集群部署,

  • 行业流行度看,filebeat支持消息队列之后,更多的公司使用filebeat结合消息队列的集群方式实现。

  • 对于安全性和角色的控制,需要使用nginx反向代理实现角色和权限控制

综合以上比对和分析

  • 测试系统采用了选型一和选型二:因为单台机器日志收集和应用部署都在同一台机,对于测试系统本机使用了logstash,对于推送到网络组elk集群的日志,使用了filebeat。
  • 网络组elk集群,将使用方案四或五:应用服务器部署filebeat,推送至集群的logstash机器,目前数据量小,是否引入消息队列取决于网络组的考虑,对于集群中使用logstash,因为elasticsearch的日志过滤功能较单一,且同样存在性能开销,所以仍需要logstash做数据处理才能满足日志过滤。
  • 对于生产系统,则建议采用方案五

版本选择

各个版本及更新时间:
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
es 5到7的版本变动,最大是type的变动

  • 5.x 支持多种type
  • 6.x 只能有一种type
  • 7.x 将去除type 没有类型的概念了

考虑使用比较稳定的5./6.,或者7.*
目前测试系统使用了5.6.12和最新版7.4.2,运行中使用7.
网络组es集群当前使用7.

elasticsearch和jdk版本
版本向下兼容,但是对不上的话会有很多异常警告,有些功能运用过程中会失败,需要配置文件中配置好对应的版本
此处输入图片的描述

参考文档

https://www.cnblogs.com/huangweimin/articles/8054442.html
https://www.ibm.com/developerworks/cn/opensource/os-cn-elk-filebeat/
https://blog.upx8.com/2320
http://www.51niux.com/?id=203
https://www.elastic.co/cn/blog/elasticsearch-7-4-0-released
https://www.csdn.net/gather_24/MtTaYgxsOTYyNy1ibG9n.html
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
https://www.csdn.net/gather_24/MtTaYgxsOTYyNy1ibG9n.html
https://blog.csdn.net/u010871982/article/details/79035317/
https://blog.csdn.net/cgs666/article/details/84206025
https://www.cnblogs.com/jingmoxukong/p/8185321.htm

这篇关于关于ELK Stack日志分析系统技术方案探讨的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

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

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

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影