观测云 VS ELK:谁是日志监控的王者?

前言

作为 IT 信息系统运行状态感知和故障分析的重要手段,日志在行业兴起之初便为运维和开发环节所广泛应用。当应用和系统发生故障或出现问题时,日志数据成为了排查和诊断问题的重要依据。通过分析日志,开发人员和运维人员可以了解系统的运行状况、错误消息和异常情况。对于高负载的应用和系统,性能监控至关重要。通过分析日志数据,可以了解系统的吞吐量、响应时间、资源利用率等指标。这有助于识别瓶颈、优化性能,并提供更好的用户体验。同时,许多行业和法规对于数据的保留和审计有明确的要求。日志数据通常包含了关键的操作和事件信息,可以用于合规性审计和法律调查。

但随着信息技术的快速发展,现代应用和系统变得越来越复杂。企业和组织使用各种软件和硬件组件构建和运行复杂的应用程序和基础设施。这些系统产生大量的日志数据,包括应用日志、服务器日志、网络日志等。这些日志记录了系统中发生的事件、错误和警告等信息。这使得处理大规模的日志数据变得非常困难,传统的文本编辑器或命令行工具无法满足快速搜索、过滤和分析的需求。在这样的背景下,专用日志分析工具应运而生。

产品简介

ELK(Elasticsearch、Logstash和Kibana)套件始于 2010 年,是由 Elastic 公司开发的一组开源工具,用于处理、存储和可视化日志数据。与观测云类似,ELK 向用户提供了多端日志收集的能力,用于集中采集、分析、展示日志的相关内容。帮助用户监测管理并展示系统运行中各环节的运行状态。

其中,Elasticsearch 是一个分布式、实时的搜索和分析引擎,最初由 Shay Banon 于 2010 年创建。基于 Apache Lucene 搜索引擎库构建,通过使用倒排索引和分布式架构,提供了高性能的全文搜索和实时数据分析能力。Elasticsearch 的设计目标是处理大规模数据集,并具有水平扩展性和高可用性。

Logstash 是一个用于日志收集、转换和传输的开源工具,可以从各种来源(如日志文件、消息队列、数据库等)收集日志数据,并对其进行过滤、解析和转换,然后将其传输到多个目的地如 Elasticsearch、文件存储等)。Logstash 提供了丰富的插件生态系统,可以灵活地处理各种数据源和数据格式。

Kibana 创建于 2013 年。通过与 Elasticsearch 集成,提供了丰富的图表、仪表盘和报表功能,可以对日志数据进行实时查询、分析和可视化。Kibana 的用户友好的界面使得用户可以通过交互式的方式探索和理解数据,从而更好地发现数据中的模式和趋势。

观测云是一款面向开发、运维、测试及业务团队的实时数据监测平台,能够统一满足云、云原生、应用及业务上的监测需求,快速实现基础设施、中间件、应用层和业务层的可观测。基础设施监测、日志与指标管理、应用性能监测、用户访问监测、可用性监测、异常检测、系统级安全巡检、场景和仪表板等是观测云的可观测解决方案,通过统一的数据采集、全面的数据监控、无缝的关联分析、自定义的场景搭建、高度的可编程性,敏捷的成员协作,为用户提供了最快、最轻松、最全面、最自由的系统可观测平台。

组件对比

一个功能齐全的可观测平台,其技术架构中通常需具备收集、存储、处理、分析和可视化应这几个关键功能模块。下面以这几个主要功能为入口,在功能及性能方面对两款工具进行对比和分析。

数据采集

ELK 为日志采集提供了丰富的 Agent 矩阵,方便用户针对不同采集场景进行数据收集:

在日志采集方面,Elastic 提供了 Beats 系列作为日志采集器,其中包括 Filebeat、Winlogbeat、Packetbeat 等。Filebeat 用于收集和发送日志文件,Winlogbeat 用于收集 Windows 事件日志,Packetbeat 用于网络数据包分析。

对于基础设施的指标采集,Elastic 的 Metricbeat 主要用于收集和发送指标数据,当然除了 Metricbeat 外还有另一个专门的指标采集器,称为 Heartbeat。Heartbeat 可以监测和采集网络服务的可用性和性能指标,如 HTTP、TCP、ICMP 等。

近年来,随着可观测理论不断发展,日志采集的范围也从传统概念中的日志,逐步扩展至链路及用户访问记录等领域。为适应这种变化,Elastic 也陆续提供了 APM Agent 用于采集应用程序性能监控(APM)数据。Elastic APM 支持多种编程语言和框架,例如如 Java、Python、Go、Node.js 等。可以捕获应用程序的事务和跟踪数据,并将其发送到 Elasticsearch 进行存储和分析。同时,借助 APM Real User Monitoring (RUM) agent 实现对用户访问过程的数据记录。

ELK Agent 方案在提供丰富的数据接入体验的同时,缺点也比较明显,当同一套系统为不同采集目标配置多个 xBeats 采集器时,对系统资源的占用将变得难以控制。实际应用过程中经常出现 multi-agent 资源争用影响目标系统业务正常运行的情况,且对于运维管理人员而言,多 Agent 的部署方式也增加了很多配置维护负担。

基于上述原因,观测云在数据采集侧对这种模式进行了优化,通过 DataKit 采集套件,形成“One Agent + multi-inputs”的配置形态,降低资源占用,简化配置管理,大幅优化了数据采集器的部署及使用效率。

DataKit 是一款开源、一体式的数据集成 Agent ,它提供全平台操作系统(Linux/Windows/macOS)支持,拥有全面数据采集能力,涵盖主机、容器、中间件、Tracing、日志以及安全巡检等各种场景。用户只需要配置一个 Agent,并按需打开不同的数据接收端 (inputs),即可方便的实现指标、网络、日志、应用链路、RUM 等数据的收集。为适配更多用户的使用场合,观测云对内置的数据接收端 (inputs) 进行了预置,超过 400+ 配置模板方便用户快速构建对目标系统的数据采集,配合可视化端配套的仪表板模板,实现采集到展现的开箱即用效果。

当然,受应用场景及部署形态的限制,RUM 真实用户体验监测的数据仍是通过独立 SDK ,即观测云 rum.js 的方式单独发放到端进行数据收集,这和 ELK 采用的方案是相同的。

数据存储

ELK

整个 ELK 技术栈的核心是 Elasticsearch 数据库(简称 ES )。ES采用分布式架构,可以在多个节点上存储和处理数据。每个节点负责存储数据的一部分,并处理查询和分析请求。节点之间通过集群协作,实现数据的自动分片和负载均衡,提供高可用性和可伸缩性。

入库数据借助基于倒排索引(Inverted Index)的数据结构来支持快速的全文搜索。倒排索引将每个文档中的每个词项映射到出现该词项的文档列表,这样可以快速找到包含特定词项的文档。倒排索引还存储了词项的位置和频率信息,以支持更高级的查询操作。

同时为优化检索准确性,Elasticsearch 使用分析器(Analyzer)对文本进行分词和标准化处理。分词将文本切分成词项(Terms),并去除停用词、标点符号等。标准化会将词项转换成小写形式,并应用词干提取和词形还原等技术以提高搜索的准确性。

观测云

观测云采用自研的 GuanceDB 对数据进行管理,其底层基于 Apache Doris 构建。在设计上 GuanceDB 把 Schemaless 当成最重要的特征之一,可以支持任意字段的写入,也可以实时增删数据字段,无需手动维护数据模型。其数据存储采用分布式架构部署,一方面可以保证自身的高可用,另一方面也可以通过动态增删节点实现集群的横向扩展。

在数据存取性能方面,通过对数据排序和索引结构的简化,其查询性能相比 Elastic 有较大幅度的性能提升。配合分层存储策略等技术,有效减少用户整体的拥有成本。此外,全栈自研的 GuanceDB 数据库在国内某些应用场景中,相比于 ES 也有着更高的可靠性和安全性,可以适配更丰富的用户需求场景。

数据查询

ELK

数据的查询功能方面,Elasticsearch 支持丰富的查询语法和灵活的搜索功能。提供了诸如全文搜索、精确匹配、范围查询、布尔查询、模糊查询、聚合等多种查询类型。通过使用查询 DSL(Domain-Specific Language)和查询 API ,用户可以构建复杂的查询和过滤条件,并对结果进行排序、分页和聚合操作。

作为 ELK 套件可视化领域的前端工具,Kibana 同时提供了基于 DSL 的查询编辑器,称为 Kibana Query Language(KQL),这是一种简化的查询语言,专门用于在 Kibana 中查询和过滤日志数据和指标数据。

总体上讲,DSL 是 Elasticsearch 的通用查询语言,适用于广泛的领域和使用场景,而 KQL 是 Kibana 针对日志查询和分析而设计的简化查询语言。DSL 功能更为强大和灵活,适用于复杂的查询需求,而 KQL 更加简单易用,适用于日常的日志查询和过滤操作。

观测云

虽然 KQL 是对 DSL 的简单封装,其语法结构类似于 DSL 。但同一个平台中使用两种查询语言毕竟会导致学习成本的升高。为优化这个应用场景,观测云提供了 DQL 查询语言,为全平台提供统一的可观测查询语句。观测云中所有类型的数据,无论是指标、日志、链路,还是被观测的基础对象、用户访问行为等数据,都可以通过一套语法体系方便的查询及使用。

同时,为方便有其他产品使用习惯的用户查询指标数据,观测云的查询引擎兼容 PromQL 语法,用户可以使用 PromQL 对指标数据进行获取。无缝衔接旧的使用习惯,进一步降低用户使用观测云的技术门槛。

可视化

ELK

Kibana 提供了比较丰富的图表、图形和仪表盘,如柱状图、折线图、饼图、地图等,方便用户更直观地理解和分析数据。用户可以创建各种类型的可视化图表,并借助上面提到的 KQL 构建查询条件,来快速定位和筛选感兴趣的数据。仪表盘支持动态交互及报表生成,便于对外分享各类仪表板。另外 Kibana 还提供了丰富的探索和分析功能,以帮助您发现数据中的模式、异常和趋势。用户可以通过聚合查询、数据过滤、数据透视、时间序列分析等功能来深入挖掘数据。

观测云

相比于 Kibana 可视化组件,观测云提供了更加强大的可视化界面 GuanceStudio 。其中 GuanceStudio Scenes 场景模块除提供对标 Kibana 的完整可视化能力外,在图形组件类型及数据查询方面相比 Kibana 有着明显的优势。观测云 Studio 预置了 27 种仪表类型,满足不同场景的使用需求。所有数据的查询、过滤、筛选均基于DQL语言,避免了 Kibana 两套查询语言造成的查询能力限制。

基于多年的可观测场景积累,观测云在 Scenes 场景中为用户准备了多种监控仪表模板。用户点击对应的仪表板模板,即可完成仪表板创建。

除了 Scenes 场景外,GuanceStudio 还对一些基础场景仪表做了预置,例如 APM 应用分析控制台,RUM 用户体验分析控制台,基础设施监测控制台等。用户接入数据后只需要点击进入对应的控制台,即可开展对相关数据对象的分析和监控,如需基于这些控制台进行场景仪表板的构建,只需要将其克隆到对应的仪表板即可。无需自行从零开始搭建仪表板体系。

成本对比

对比两种可观测工具的获取方式,ELK 目前提供 Elastic Cloud ,通过将 ELK 堆栈部署在云平台上为用户提供 ELK 完整技术栈服务。目前已合作的云服务商在 ELK 官网可获取。如用户使用未列入名单的其他 IaaS 服务商,也可以通过下载 Elastic Stack 的方式,在自己环境中部署 ELK 套件。

部署费用方面,依底座规格的不同,ELK 套件的授权费用将有所差别。以云服务商托管为例,大致对应 1TB 热存、3TB 温存、7TB 冷存的基础配置版底座需要花费 $5.2/hour 的拥有成本(相当于 ¥27k/moth )。对于接入初期较少数据量的情况,这种计费方式会造成比较大的浪费。后期随着数据量的增长,费用又会出现比较大的上升。对于用户的总体拥有成本会造成比较大的压力。

相比于 ELK ,观测云的服务提供方式就灵活很多了,目前提供的三种接入方案中,首推用户使用 SaaS 服务接入观测数据,这样可以以较少的费用支出,实现系统全链路可观测体系的建立。后期随着数据规模的增长,如希望进一步优化海量数据的存储成本,可考虑采用私有化输出和云上专属托管的方式,建立用户私有的观测云技术栈。相比于 ELK Cloud 版本,观测云私有化输出版本的成本也有着比较大的优势,尤其是在超大数据规模下,通过观测云的冷热分离版本,综合性价比可以做到将近 10 倍。通过 SaaS + 私有化的交付方式,可以为用户可观测平台的选型提供更多灵活性。

总结

通过几个维度的简单对比不难发现,观测云相比传统的 ELK 套件有着比较明显的优势:

  • 在数据采集端,通过"One Agent"方式,简化了数据采集配置及安装,减少资源占用;
  • 在数据存储端,通过自研 GuanceDB 数据库,降低数据存储成本,提升数据查询性能;
  • 在数据应用端,GuanceStudio 除提供与 Kibana 相同的场景仪表板可视化能力外,还基于观测场景提供了更为丰富的可视化仪表板预置,减少用户自行编辑仪表板的工作量;
  • 通过观测云 DQL 统一查询语言,降低查询语法的学习难度;
  • 提供更加灵活的产品获取方式,优化用户的总体拥有成本。

总体来说,观测云是一款更加优秀的全链路观测工具,正在考虑 ELK 实施或产品替代的小伙伴一定不要错过观测云。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Golang 开发实战day12 - Pointer

🏆个人专栏 🤺 leetcode 🧗 Leetcode Prime 🏇 Golang20天教程 🚴‍♂️ Java问题收集园地 🌴 成长感悟 欢迎大家观看,不执着于追求顶峰,只享受探索过程 Golang 开发实战day12 - 指针…

二十、Java内存泄漏概念、造成原因及检测方式(全)

文章目录 一、Java内存泄漏概念、造成原因及检测方式(全)二、其他1.jmap命令2.java VisualVM查看.hprof文件 一、Java内存泄漏概念、造成原因及检测方式(全) Java内存泄漏概念、造成原因及检测方式(全) 二…

去哪儿前端一面

谈谈你对mvvm的理解 MVVM分为三个部分:分别是M(Model,模型层 ),V(View,视图层),VM(ViewModel,V与M连接的桥梁,也可以看作为控制器) 1、 M:模型层,主要负责业务数据相关; 2、 V:视图层,顾名思义,负视图相关,细分下来就是html+css层; 3、 VM:V与M沟通的…

Rust 解决循环引用

导航 循环引用一、现象二、解决 循环引用 循环引用出现的一个场景就是你指向我,我指向你,导致程序崩溃 解决方式可以通过弱指针,而Rust中的弱指针就是Weak 在Rc中,可以实现,对一个变量,持有多个不可变引…

极致视觉盛宴,尽在Extreme Picture Finder!

在信息爆炸的时代,网络图片如同繁星点点,为我们的生活增添无尽的色彩。然而,如何在浩渺的网海中快速、准确地找到心仪的图片,却成了许多人的难题。此刻,Extreme Picture Finder如同一位贴心的向导,引领我们…

[一本Java+一本Java]5月7日简历指导直播

一、直播预告 每周二、四、六16:30简历指导直播,前美团项目负责人、校招VIP CEO-大拿老师在线讲简历优化 二、简历内容 三、简历核心问题 【简历1】一本- Java 1 虽然项目名称有一定的包装,两个项目的内容都是一眼能看出来的烂大街的项目&#xff0c…

AIP美国物理联合会文献在家如何查看下载

AIP(美国物理联合会,American Institute of Physics)成立于1931年,其主要任务是物理知识和应用的推广普及,也是世界上居于领导地位的物理期刊出版社之一。主要的研究方向为物理学和天文物理学。 今天有位同学求助一篇…

呆滞物料规范管理了,问题就好办了

对于制造企业来说,库存是生存和发展的重要保障,过高的库存会占用企业大量的资金和管理成本,影响企业的正常生产,然而多数中小制造企业还在用人工干预管理,如何控制呆滞物料成为仓储管理的一大难题。 什么是呆滞料 呆滞…

#LLM入门 | langchain | RAG # 4.3_文档分割

上一章讨论了文档标准化加载,现在转向文档的细分,这虽简单却对后续工作有重大影响。 一、为什么要进行文档分割 模型大小和内存限制:大型GPT模型参数众多,需大量计算和内存,而硬件设备如GPU或TPU有内存限制&#xff…

Linux下GraspNet复现流程

Linux,Ubuntu中GraspNet复现流程 文章目录 Linux,Ubuntu中GraspNet复现流程1.安装cuda和cudnn2.安装pytorch3.编译graspnetAPIReference 🚀非常重要的环境配置🚀 ubuntu 20.04cuda 11.0.1cudnn v8.9.7python 3.8.19pytorch 1.7.0…

花园牛奶:从靠谱奶牛到新鲜牛奶的匠心之旅

在花园乳业有限公司,我们深知生产出优质牛奶的秘诀——从靠谱的奶牛开始。为此,我们特意引进了品质卓越的荷斯坦奶牛,它们以“黑白花”的优雅身姿,成为了我们牧场上的明星。荷斯坦奶牛以其出色的生产性能和高产奶量而著称&#xf…

CoPilot 产品体验:提升 OpenNJet 的控制管理和服务提供能力

文章目录 前言系统架构介绍CoPilot 配置CoPilot 插件规范 体验 CoPilot 实例CoPilot: Broker 实例CoPilot: Ctrl 实例 开发其他语言编写的 CoPilot目标主要思路具体实现执行 go 程序代码 功能扩展总结 前言 CoPilot 是 OpenNJet 的一个重要组成部分,它在 Master-Wo…

机器学习之基于Python多种混合模型的糖尿病预测

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 糖尿病是一种慢性代谢性疾病,其发病率在全球范围内逐年上升,已成为影响人类健…

xmind的13个快捷方式

1.新建导图 CtrlshiftN 2.编辑文字 空格键 3.插入图片 Ctrli 4. 插入主题 Enter键 5. 插入主题之前 ShiftEnter键 6. 插入子主题 Tab键 7. 放大导图 “Ctrl”“” 8. 缩小导图 “Ctrl”“-” 9. 复制 CtrlInsert 10. 粘贴 Shift Insert 11. 剪切 ShiftDelete 12. 截图 F7 13. 保…

【论文阅读笔记】MAS-SAM: Segment Any Marine Animal with Aggregated Features

1.论文介绍 MAS-SAM: Segment Any Marine Animal with Aggregated Features MAS-SAM:利用聚合特征分割任何海洋动物 Paper Code(空的) 2.摘要 最近,分割任何模型(SAM)在生成高质量的对象掩模和实现零拍摄图像分割方面表现出卓越…

9.4.k8s的控制器资源(job控制器,cronjob控制器)

目录 一、job控制器 二、cronjob控制器 一、job控制器 job控制器就是一次性任务的pod控制器,pod完成作业后不会重启,其重启策略是:Never; 简单案例 启动一个pod,执行完成一个事件,然后pod关闭;…

基于Flask的岗位就业可视化系统(一)

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 前言 本项目综合了基本数据分析的流程,包括数据采集(爬虫)、数据清洗、数据存储、数据前后端可视化等 推荐…

(40)4.30数据结构(队列)

1.队列的基本概念 2.队列的顺序 #define MaxSize 10 #define ElemType int typedef struct { ElemType data[MaxSize]; int front, rear; }SqQueue;//1.初始化操作 void InitQueue(SqQueue& Q) { //初始化 队头,队尾指针指向0 Q.rear Q.fron…

单细胞|GeneTrajectory·基因轨迹

跑完了,记录一下,顺便写写我在使用中遇到的问题,欢迎讨论~ 声明:我是用自己数据跑的,因为还未发表所以就还是借用官网的图啦~ 1.准备 library(GeneTrajectory) library(Seurat) library(dply…

有哪些软件可以使用云渲染?

随着技术的发展,云渲染已成为动画制作人员与设计师重要的渲染助手。它可结合云端强大的计算机能力,帮助渲染人员高速的完成渲染任务,大幅度节省时间和本地计算资源。它们以用户友好的界面、强大灵活的渲染能力,满足了各类专业渲染…