ELFK简介

👨‍🎓博主简介

  🏅CSDN博客专家
  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

  • 前言
  • 一、ELK 概述
    • 1. ELK 诞生的背景
      • 1.1 没有ELK分析日志前
      • 1.2 使用ELK分析日志后
    • 2. ELK 简介
    • 3. ELK的基础组件和扩展组件
      • 3.1 Elasticsearch
      • 3.2 Logstash
      • 3.3 Kibana
      • 3.4 Filebeat
      • 3.5 缓存/消息队列(redis、kafka、RabbitMQ等)
      • 3.6 Fluentd
    • 4. ELK的用处
    • 5. ELK 基础架构/工作原理
  • 二、参考文献
  • 三、相关文章

在这里插入图片描述

前言

  当运维在平时工作的时候如果服务出现问题,我们一般都会查看日志去解决问题,而且有的服务不止一个日志,就需要不停的查看不同的日志,比较繁琐,而且还容易混乱思路。所以,这时候我们就需要一个可以统一收集服务的日志信息的一个应用,来缓解运维解决问题的复杂性和排查速度性。

  接下来讲解的就是一个可以统一收集日志系统并可以可视化展示的服务 ELK

一、ELK 概述

1. ELK 诞生的背景

1.1 没有ELK分析日志前

没有日志分析工具之前,运维工作存在哪些痛点?
痛点1、生产出现故障后,运维需要不停的查看各种不同的日志进行分析?是不是毫无头绪?
痛点2、项目上线出现错误,如何快速定位问题?如果后端节点过多、日志分散怎么办?
痛点3、开发人员需要实时查看日志但又不想给服务器的登陆权限,怎么办?难道每天帮开发取日志?
痛点4、如何在海量的日志中快速的提取我们想要的数据?比如:PV、UV、TOP10的URL?如果分析的日志数据量大,那么势必会导致查询速度慢、难度增大,最终则会导致我们无法快速的获取到想要的指标。
痛点5、CDN公司需要不停的分析日志,那分析什么?主要分析命中率,为什么?因为我们给用户承诺的命中率是90%以上。如果没有达到90%,我们就要去分析数据为什么没有被命中、为什么没有被缓存下来。

1.2 使用ELK分析日志后

如上所有的痛点都可以使用日志分析系统ELK解决,通过ELK,将运维所有的服务器日志,业务系统日志都收集到一个平台下,然后提取想要的内容,比如错误信息,警告信息等,当过滤到这种信息,就马上告警,告警后,运维人员就能马上定位是哪台机器、哪个业务系统出现了问题,出现了什么问题。

2. ELK 简介

  ELK 是一套完整的日志集中处理的技术组合,它是将ElasticSearchLogstashKilbana三个开源的工具去配合构建的一个平台,可以完成更强大的用户对日志的查询、排序、统计需求。

  可以将我们的系统日志、网站日志、应用系统日志等各种日志进行收集、过滤、清洗,然后进行集中存放并可用于实时检索、分析;能够帮助我们更好地理解数据、监控系统性能并进行故障排除。

ELK官网:https://www.elastic.co/cn/

3. ELK的基础组件和扩展组件

基础组件:Elasticsearch、Logstash、Kibana

扩展组件:Filebeat、Fluentd

ELK 分别代表:

  • E: elasticsearch 数据存储、数据搜索;

    官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch/

  • L: logstash 数据采集、数据清洗、数据过滤;

    官网下载地址:https://www.elastic.co/cn/downloads/logstash

  • K: kibana 数据分析、数据展示;

    官网下载地址:https://www.elastic.co/cn/downloads/kibana/

  • F:filebeat 收集日志数据;

    官网下载地址:https://www.elastic.co/guide/en/beats/filebeat/index.html

3.1 Elasticsearch

Elasticsearch:基于 Lucene 搜索引擎库构建,具有分布式搜索、实时数据分析、高性能和高可伸缩性的特点,提供了非常强大的搜索和分析引擎。

Elasticsearch:是一个实时的、分布式的可扩展的搜索引擎;允许进行全文、结构化搜索,它通常用于索引和搜索大容量的日志数据,也可用于搜索许多不同类型的文档。

Elasticsearch:可以存储和索引大规模的数据(比如日志),并提供快速的全文搜索、条件过滤、聚合和分析功能

3.2 Logstash

Logstash:实现了数据的收集和处理。是一个可扩展的数据收集、转换和传输工具

它可以从各种来源(如日志文件、消息队列、数据库等)收集数据,并将数据进行过滤、分析、丰富、转换为统一格式,然后发送到 Elasticsearch 进行存储和分析。

Logstash :具有强大的插件功能,常用于日志处理。最常用的就是输入插件输出插件,可以与各种数据源和目标进行集成;也有很强大的过滤功能,可以对数据进行处理、过滤及转换,以满足不同业务的需求。

Logstash :是由 Ruby 语言编写,运行在 Java 虚拟机(JVM)上,是一款强大的数据处理工具, 可以实现数据传输、格式处理、格式化输出。

Logstash:是作为ELK流程中的第一个组件 - 主要用于收集数据、过滤重要数据。

  • Logstash 常用的命令:

-f:通过这个选项可以指定 Logstash 的配置文件,根据配置文件配置 Logstash 的输入、输出流-e:从命令行中获取,输入、输出后面跟着字符串,该字符串可以被当作 Logstash 的配置(如果是空,则默认使用 stdin 作为输入,stdout 作为输出)-t:测试配置文件是否正确,然后退出。
  • Logstash 的输入、输出流流程:

image-20240313163359234

  • **input:**设置数据来源。
  • **filter:**数据处理层,可以对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式。
  • **output:**设置输出目标,如Elasticsearch等;将过滤后的数据输出到Elasticsearch中。

3.3 Kibana

Kibana 提供了可视化和交互式分析的界面,可通过基于浏览器的界面轻松搜索需要的数据并进行分析。

Kibana 是一个针对Elasticsearch的开源数据分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。

使用Kibana,可以通过各种图表进行高级数据分析及展示,创建自定义仪表盘来展示关键指标和监控警报

Kiabana通常与ElasticSearch一起部署,Kibana 是 Elasticsearch 的一个功能强大的数据可视化Dashboard,Kibana 提供图形化的 web 界面来浏览 Elasticsearch 日志数据,可以用来汇总、分析和搜索重要数据。

  • 配置简单:

Kibana的配置和启用非常简单,用户体验非常友好。Kibana自带Web服务器,可以快速启动运行。

  • 整合数据:

Kibana能够更好地处理海量数据,并据此创建柱形图、折线图、散点图、直方图、饼图和地图。

  • 可视化多数据源:

Kibana可以非常方便地把来自Logstash、Filebeat、ES-Hadoop、Beats或第三方技术的数据整合到Elasticsearch,支持的第三方技术包括Apache flume、 Fluentd 等。

  • 简单数据导出:

Kibana可以方便地导出感兴趣的数据及重要的数据,与其它数据集合并融合后快速建模分析,发现新结果。

3.4 Filebeat

Filebeat是一款轻量级的开源日志数据收集器。

通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储。

性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。常应用于 EFLK 架构当中。

  • filebeat 结合 logstash 的优点:

①、通过 Logstash 具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻 Elasticsearch 持续写入数据的压力;

②、从其他数据源(例如数据库,S3对象存储或消息传递队列)中提取;

③、将数据发送到多个目的地,例如S3,HDFS(Hadoop分布式文件系统)或写入文件;

④、使用条件数据流逻辑组成更复杂的处理管道。

3.5 缓存/消息队列(redis、kafka、RabbitMQ等)

可以对高并发日志数据进行流量削峰和缓冲,这样的缓冲可以一定程度的保护数据不丢失,还可以对整个架构进行应用解耦。

3.6 Fluentd

Fluentd是一个流行的开源数据收集器。

由于 logstash 太重量级的缺点,Logstash 性能低、资源消耗比较多等问题,随后就有 Fluentd 的出现。

相比较 logstash,Fluentd 更易用、资源消耗更少、性能更高,在数据处理上更高效可靠,受到企业欢迎,成为 logstash 的一种替代方案,常应用于 EFK 架构当中。在 Kubernetes 集群中也常使用 EFK 作为日志数据收集的方案。
在 Kubernetes 集群中一般是通过 DaemonSet 来运行 Fluentd,以便它在每个 Kubernetes 工作节点上都可以运行一个 Pod。 它通过获取容器日志文件、过滤和转换日志数据,然后将数据传递到 Elasticsearch 集群,在该集群中对其进行索引和存储。

4. ELK的用处

(1)日志主要包括系统日志,应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误;
(2)往往单台机器的日志我们使用grep、awk等工具就能基本实现简单的分析,但是当日志被分散在不同的设备或位置上储存,那么就大大的降低了排查问题的效率了。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样感觉很繁琐和效率低下;
(3)当务之急我们使用集中化的日志管理,例如∶开源的syslog,将所有服务器上的日志收集汇总。集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心;
(4)一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率及解决的问题的效率。

5. ELK 基础架构/工作原理

在这里插入图片描述

①、在所有需要收集日志的服务器上部署Logstash,或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash;当然日志集中管理也是个大工程,看自己的意愿吧。

②、Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。

③、Elasticsearch 对格式化后的数据进行索引和存储。

④、Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

综上所述:

logstash作为日志搜集器,从数据源采集数据,并对数据进行过滤,格式化处理,然后交由Elasticsearch存储,kibana在对日志进行可视化处理。


在这里插入图片描述

以上截图是多台服务进行的数据采集、过滤然后给到Elasticsearch 进行集中数据存储,最后Kibana在进行数据读取并分析、展示。

二、参考文献

文章标题文章地址
EFK日志收集系统概述https://blog.csdn.net/qq_42267081/article/details/112938762
ELK日志分析系统的详细介绍与部署https://blog.csdn.net/m0_74170357/article/details/133873054

三、相关文章

文章名称文章链接
ELFK简介https://liucy.blog.csdn.net/article/details/139653744
ELFK 8.12.2 单机部署 – docker部署方式⚽https://liucy.blog.csdn.net/article/details/139761024

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/39238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作

章节内容 上一节我们完成了: MapReduce的介绍Hadoop序列化介绍Mapper编写规范Reducer编写规范Driver编写规范WordCount功能开发WordCount本地测试 背景介绍 这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学…

文件扫描pdf怎么弄?5个简易高效的文件扫描方法

在繁忙的工作中,我们常常需要将纸质文件快速转换为电子文档,以便于编辑、存储或分享。 无论是合同、报告还是笔记,将这些纸质文件转换为Word格式,不仅能提高工作效率,还能确保信息的安全备份。然而,面对市…

Redis 7.x 系列【16】持久化机制之 AOF

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 执行原理2.1 Redis 6.x2.1.1 直接写2.1.2 重写 2.2 Redis 7.x2.2.1 Redis 6…

Spring Ioc学习

第二章 Spring IOC 章节内容 Spring IOC技术实现Spring IOC设值注入Spring IOC构造注入 章节目标 掌握Spring IOC技术实现掌握Spring IOC设置注入掌握Spring IOC构造注入 第一节 Spring简介 1. Spring 简介 Spring 是目前主流的 Java 开发框架,是 Java 世界最…

基于Springboot+Vue+mysql仓库管理系统仓库进销存管理系统

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

【Python】Python中的数据类型

数据类型 导读一、数据类型的分类1.1 Number(数字)1.1.1 静态数据类型1.1.2 动态数据类型 1.2 String(字符串)1.3 bool(布尔类型) 二、数据类型的转换2.1 隐式类型转换2.2 显式类型转换2.2.1 int(x[,base])…

系统运维面试总结(shell编程)

SYNDDOS攻击,需要判断这个访问是正常访问还是信包攻击,当前这个信包发起的访问数量是多少,例如看到30个信包同时再访问时设置监控报警。 一般选用/dev/urandom生成,但其生成的随机数带有二进制乱码,所以需要tr命令…

CASS中按指定距离和方向移动图形

1、绘制一个图形 打开软件,随意绘制一个矩形,并量取左下角点的坐标值,具体如下: 2、按距离移动原理讲解 例1:将图形沿着y轴负方向移动100米,如何实现? 如上图所示,测绘中的坐标系…

多载波调制与OFDM原理讲解以及MATLAB实现GUI设计

前言 基于MATLAB设计并实现了一个OFDM调制的图形用户界面(GUI)系统。该系统旨在简化OFDM调制过程的仿真,提供友好的用户交互界面。设计目标是通过GUI实现参数化的OFDM仿真,包括子载波数、符号数、IFFT长度、循环前缀长度、循环后…

模拟退火算法2—优缺点

模拟退火算法优点 1、以一定的概率接受恶化解 模拟退火算法(SA)在搜索策略上与传统的随机搜索方法不同,它不仅引入了适当的随机因素,而且还引入了物理系统退火过程的自然机理。这种自然机理的引入使模拟退火算法在迭代过程中不仅接受使目标函数变“好”的试探点,而且还能以一…

【单片机毕业设计选题24034】-基于STM32的手机智能充电系统

系统功能: 系统可以设置充电时长,启动充电后按设置的充电时长充电,充电时间到后自动 停止充电,中途检测到温度过高也会结束充电并开启风扇和蜂鸣器报警。 系统上电后,OLED显示“欢迎使用智能充电系统请稍后”,两秒钟…

哨兵1SAR空间数据包协议数据单元文档(五)

《哨兵1SAR空间数据包协议数据单元》文档对数据包的结构进行了详细描述,并提供了用户数据的格式和解码算法。 原文链接: 哨兵1SAR空间数据包协议数据单元文档英文版 同系列中的其他文章篇链接: 哨兵1SAR空间数据包协议数据单元文档(一) 哨兵1…

保存在FinalShell服务器登录密码忘记了,如何快速获取到

一、从FinalShell获取服务器基本信息 如图操作会导出一个json文件,可以直接保存在桌面,或者其他位置 json格式如下: {"forwarding_auto_reconnect":false ,"custom_size":false ,"delete_time":0 ,"sec…

Python数据分析-旧金山犯罪预测分析(San Francisco Crime Classification)

一、研究背景 旧金山是一个人口稠密、旅游业发达的城市,同时也是美国犯罪率较高的城市之一。随着城市的不断发展,犯罪行为的类型和频率也在不断变化,这对城市的治安管理和社会稳定构成了巨大的挑战。近年来,数据科学技术的迅猛发…

C# 编程中互斥锁的使用

C# 中的互斥锁 互斥锁是 C# 中使用的同步原语,用于控制多个线程或进程对共享资源的访问。其目的是确保在任何给定时间只有一个线程或进程可以获取互斥锁,从而提供互斥。 C# 中互斥锁的优点 可以使用互斥锁 (Mutex) 并享受其带来的好处。 1. 共享资源…

德国威步的技术演进之路(下):从云端许可管理到硬件加密狗的创新

从单机用户许可证到WkNET网络浮点授权的推出,再到引入使用次数和丰富的时间许可证管理,德国威步产品不断满足市场对灵活性和可扩展性的需求。TCP/IP浮动网络许可证进一步展示了威步技术在网络时代的创新应用。借助于2009年推出的借用许可证以及2015年推出…

mac磁盘工具如何合并分区 macos 磁盘工具 无法抹除 磁盘管理软件哪个使用率最高

一、什么是NTFS格式分区 NTFS格式分区是微软公司开发的诸多文件系统中的一种。NTFS格式分区是一种文件系统,磁盘只有在安装了文件系统后才能被正常使用,文件系统的格式有非常多,常见的有FAT 32和NTFS。 作为常见文件系统,NTFS格式…

无人机集群协同搜索研究综述

源自:指挥控制与仿真 作者:刘圣洋, 宋婷, 冯浩龙, 孙玥, 韩飞 注:若出现无法显示完全的情况,可 V 搜索“人工智能技术与咨询”查看完整文章 摘要 无人机集群协同区域搜索能够有效地获取任务区域地面信息,降低环境不确定度。基…

买卖股票的最佳时期含冷冻期(leetcode)

个人主页:Lei宝啊 愿所有美好如期而遇 也就有这样的状态转移方程: 买入:dp[i][0] max(dp[i-1][1] - prices[i], dp[i-1][0]); 可买入:dp[i][1] max(dp[i-1][1], dp[i-1][2]); 冷冻期:dp[i][2] dp[i-1][0] prices…

使用ChatGPT自动生成测试用例思维导图

使用ChatGPT自动生成测试用例思维导图 引言ChatGPT在测试用例编写中的应用全面覆盖测试场景边界测试避免测试用例重复 借助ChatGPT生成测试用例思维导图准备工作步骤一:与ChatGPT对话步骤二:生成思维导图代码 结语 引言 在编写测试用例时,测…