Elasticsearch 全观测技术解析与应用(三):能力呈现与应用价值

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文梳理了全观测流程,介绍了Elastic的整套工具及其在全观测中的能力,并且用两个实例展示了如何用这些工具进行全观测。

点击免费下载
《Elasticsearch 全观测技术解析与应用》>>>

分享嘉宾:朱杰

这节课承接《全观测技术原理与技术生态》,介绍Elastic整套工具带来的能力,以及用demo展示怎么用这些能力构建全方位的观测性。

实现全观测主要有以下步骤

第一步是数据采集,这些数据可能来自日志、指标或APM,每一种数据都有对应的采集工具;数据采集完成后,会进到Kafka这样的数据汇聚层,以经济高效的方式保证海量数据的涌入;随后在数据处理层,有Logstash等工具对数据进行加工、转换、清洗,变成结构化数据,然后交由Elasticsearch进行存储和提供搜索能力;最后,可以通过Kibana进行数据的可视化,以及用机器学习进行告警。

目前,除数据汇聚层的Kafka外,Elasticsearch提供的工具已经贯穿了全观测的全链路,能在各环节提供相应的工具。

image.png

Elastic Stack提供的数据采集全套工具

即用;Metricbeat采集指标和底层的性能数据,有40多个插件;Packetbeat从网络包层面采集数据;Functionbeat主要对接在云端吐出来的指标日子;Winlogbeat主要适配Windows上的日志系统;Heartbeat主要检测服务的可用性,比如检测API是否在线等;最后,Auditbeat可以连到Linux的audit framework来采集Linux各种各样的事件,汇总到Elasticsearch。除此之外,我们的社区也制造了很多beat,大家可以去看看。

image.png

数据处理工具

数据处理工具提供的是Logstash,它分为输入、过滤和输出三个部分。它并不是独属于Elasticsearch数据输入和输出的工具,它有很多数据接入源,比如syslog、redis等,输出也可以到Kafka、Elasticsearch和其他数据库,而它的过滤部分主要体现在数据的加工和处理,比如用grok进行正则抽取。Logstash能很容易地把像日志一样的流式文本抽取成Json的结构化数据,进而给后面的Elasticsearch进行存储和索引。

image.png

数据存储搜索工具

这部分主要由Elasticsearch提供核心的功能。Elasticsearch经过了一系列演变,从倒排序仅支持全文搜索,到列存储支持结构化数据,加速排序聚合,再到BKD树支持的数值型运算,提升数值类型的范围搜索效率,以及数据上卷节省存储空间。

经过演变,Elasticsearch能支持结构化的数据搜索和聚合,还有全文搜索、地理搜索等能力。这种丰富的处理能力可以应用到全观测的应用场景,产生很多有价值的图表分析。同时,它还有自动化的监测监控,并且执行告警。

image.png

告警系统

全观测需要持续部署大量的监控规则,来自动化地进行监控和告警。我们在Kibana里植入了新的告警系统,它能跟上层的各种APP和解决方案进行无缝整合,大幅简化使用门槛

image.png

除了基于规则的告警,Elastic Stack还提供了机器学习的异常检测。

Elasticsearch中存在大量的指标数据,它们随时间序列的波动是非常常见的,但当指标数量越来越多,就很难用传统的方式一个一个地设置规则。所以我们利用机器学习,通过对历史数据的建模去学习正常的波动范围,不再需要人工来标注数据。同时,模型也会根据数据的持续写入来不停地更新,以反映最新的指标状态。

image.png

数据分析和展示工具

Kibana经过演化现在已经拥有了丰富的可视化展示能力,并且我们引入了Kibana Lens这样更加便捷的制图工具,同时也不断添加各种图表类型,帮助展示Elasticsearch里的各种数据。

image.png

把工具组合起来使用——两个全观测实例

下面这张仪表板的图,融合了日志、指标和APM数据,能进行统一的过滤、搜索和展示等。我们能从多个维度进行统计和观测,同时,日志、指标和APM数据也能对齐时间,对照着进行分析。

另外因为所有的数据都汇聚到这儿,所以我们可以建立统一的基于规则的监控和告,并通过参考三份数据源,来判断是否要触发某一个告警,减少误判。此外,我们还能建立统一的基于机器学习的智能监控和告警。

image.png

再看另外一个较复杂的实例。

下图呈现了当前常见的微服务架构,它所有的服务都部署在K8s容器化的环境中。在前端,它全部基于Nodejs提供Web服务,而核心业务是基于Spring框架的Java服务,并连接到后端MySQL数据库,同时它还有基于Python Flash提供地址查询的Rest API服务,通过连接Elasticsearch服务器实现全文搜索的功能。

那么我们如何用上面的工具对这一架构进行监测呢?

首先我们采用Filebeat去采集每一个Pod的日志,把它们汇总到Elasticsearch里,然后通过Metricbeat采集系统的性能数据,以及把Packetbeat安装在某些Pod中采集网络包数据,最后是用APM探针植入到Nodejs、Java代码和Python中监控代码层面的各种性能、响应、延迟等数据。

通过这些,我们就能把日志、指标、APM数据汇总到一起,统一地进行观测。同时,由于数据量很大,所以也将使用机器学习来对里面的性能指标进行自动化的监控和告警。

image.png

从故障告警到故障定位的流程

全观测定位故障主要有以下几步。首先我们会收到来自机器学习的警告,告知我们可能遇到了问题,随后我们可以点击链接跳转到Kibana的分析平台。在机器学习的告警页面,会把告警全部对齐,方便我们去分析各个服务之间的状态和依赖关系等。

在看到告警之后我们可以进行排查,通过跳转到其他的Kibana应用来帮助我们进行侦测和定位各种故障。比如跳到APM应用程序中,从APM的角度观测发生故障时代码层面的一些异常,或者在综合仪表板中统一地观测各种数据,或者在指标的应用中看到发生故障时K8s基础架构的情况。

image.png

下面我们更具体地来看定位故障的每一步流程。

机器学习告警

我们能在机器学习告警页面看到很多机器学习的任务,他们能够进行告警对齐。另外,机器学习根据API响应时间的历史情况自动建模,当监控值超过动态阈值就触发告警,并且可以指出是哪个API性能下降。这旁边还有action,能引导我们到其他应用中做分析,比如跳转到APM、仪表板、指标、Uptime等来诊断这个故障。


image.png

APM性能分析

在APM层面,我们不仅能看到总体性能统计概览,还能根据各个API性能影响的情况进行倒排。

image.png

当我们点进API后,还能看到它在分布式环境下如何调用堆栈。比如下图中蓝色就代表Nodejs,绿色代表Java代码的调用。可以看到,每一个服务不仅存在多个实例,而且是分布在不同的服务器上,因此这个工具可以把服务流经的所有处理环节串联到一起,实现分布式追踪。

image.png

仪表板综合分析

在仪表板中也是一样,会把故障的时间点定位到最当中,然后可以参照前后性能状况来综合判断故障的状况。这个仪表板是完全可定制化的,所以可以把各种分析图都放在里面,包括日志、指标、APM等。

image.png

指标关联日志APM

里面也体现了联动的精髓,比如当我们点击某一个pod,就可以单独看到这个pod串联的日志、指标、APM、Uptime数据,这样就方便我们灵活地进行跳转,更快地定位问题。

image.png


另外,当我们点进Pod的日志的时候,会进入流式日志分析器,这集合了所有服务器所有应用的庞大的日志流,按照时间戳进行排序。这里面有一个很强大功能就是搜索框,任何符合ES搜索语句的都可以写在这个地方,并且能用and这个条件继续进行过滤和定位。

image.png


image.png

阿里云Elastic Stack】100%兼容开源ES,独有9大能力,提供免费 X-pack服务(单节点价值$6000)

相关活动


更多折扣活动,请访问阿里云 Elasticsearch 官网

阿里云 Elasticsearch 商业通用版,1核2G ,SSD 20G首月免费
阿里云 Logstash 2核4G首月免费
下载白皮书:Elasticsearch 八大经典场景应用


image.png

image.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2天前
|
机器学习/深度学习 人工智能 算法
DeepSeek技术报告解析:为什么DeepSeek-R1 可以用低成本训练出高效的模型
DeepSeek-R1 通过创新的训练策略实现了显著的成本降低,同时保持了卓越的模型性能。本文将详细分析其核心训练方法。
110 10
DeepSeek技术报告解析:为什么DeepSeek-R1 可以用低成本训练出高效的模型
|
2天前
|
搜索推荐 数据挖掘 API
Lazada 淘宝详情 API 的价值与应用解析
在全球化电商浪潮下,Lazada 和淘宝作为东南亚和中国电商市场的关键力量,拥有海量商品数据和庞大用户群体。详情 API 接口为电商开发者、商家和分析师提供了获取商品详细信息(如描述、价格、库存、评价等)的工具,助力业务决策与创新。本文深入解析 Lazada 和淘宝详情 API 的应用场景及价值,并提供 Python 调用示例,帮助读者更好地理解和运用这两个强大的工具。
31 18
|
21天前
|
缓存 算法 Oracle
深度干货 如何兼顾性能与可靠性?一文解析YashanDB主备高可用技术
数据库高可用(High Availability,HA)是指在系统遇到故障或异常情况时,能够自动快速地恢复并保持服务可用性的能力。如果数据库只有一个实例,该实例所在的服务器一旦发生故障,那就很难在短时间内恢复服务。长时间的服务中断会造成很大的损失,因此数据库高可用一般通过多实例副本冗余实现,如果一个实例发生故障,则可以将业务转移到另一个实例,快速恢复服务。
深度干货  如何兼顾性能与可靠性?一文解析YashanDB主备高可用技术
|
1天前
|
数据采集 搜索推荐 API
小红书笔记详情 API 接口:获取、应用与收益全解析
小红书(RED)是国内领先的生活方式分享平台,汇聚大量用户生成内容(UGC),尤以“种草”笔记闻名。小红书笔记详情API接口为开发者提供了获取笔记详细信息的强大工具,包括标题、内容、图片、点赞数等。通过注册开放平台账号、申请API权限并调用接口,开发者可构建内容分析工具、笔记推荐系统、数据爬虫等应用,提升用户体验和运营效率,创造新的商业模式。本文将详细介绍该API的获取、应用及潜在收益,并附上代码示例。
44 13
|
12天前
|
搜索推荐 测试技术 API
探秘电商API:从测试到应用的深度解析与实战指南
电商API是电子商务背后的隐形引擎,支撑着从商品搜索、购物车更新到支付处理等各个环节的顺畅运行。它通过定义良好的接口,实现不同系统间的数据交互与功能集成,确保订单、库存和物流等信息的实时同步。RESTful、GraphQL和WebSocket等类型的API各自适用于不同的应用场景,满足多样化的需求。在测试方面,使用Postman、SoapUI和jMeter等工具进行全面的功能、性能和安全测试,确保API的稳定性和可靠性。未来,随着人工智能、大数据和物联网技术的发展,电商API将进一步智能化和标准化,为用户提供更个性化的购物体验,并推动电商行业的持续创新与进步。
36 4
|
19天前
|
JSON 小程序 UED
微信小程序 app.json 配置文件解析与应用
本文介绍了微信小程序中 `app.json` 配置文件的详细
95 12
|
12天前
|
搜索推荐 API 开发者
深度解析:利用商品详情 API 接口实现数据获取与应用
在电商蓬勃发展的今天,数据成为驱动业务增长的核心。商品详情API接口作为连接海量商品数据的桥梁,帮助运营者、商家和开发者获取精准的商品信息(如价格、描述、图片、评价等),优化策略、提升用户体验。通过理解API概念、工作原理及不同平台特点,掌握获取权限、构建请求、处理响应和错误的方法,可以将数据应用于商品展示、数据分析、竞品分析和个性化推荐等场景,助力电商创新与发展。未来,随着技术进步,API接口将与人工智能、大数据深度融合,带来更多变革。
42 3
|
3月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
124 2
|
2月前
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是"将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为5种:单例模式、工厂方法模式抽象工厂式、原型模式、建造者模式。
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
|
2月前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析

热门文章

最新文章

相关产品

  • 检索分析服务 Elasticsearch版
  • 推荐镜像

    更多