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

简介: 本文梳理了全观测流程,介绍了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可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
9天前
|
Web App开发 数据采集 开发者
某查”平台请求头反爬技术解析与应对
某查”平台请求头反爬技术解析与应对
|
3天前
|
机器学习/深度学习 缓存 自然语言处理
深入解析Tiktokenizer:大语言模型中核心分词技术的原理与架构
Tiktokenizer 是一款现代分词工具,旨在高效、智能地将文本转换为机器可处理的离散单元(token)。它不仅超越了传统的空格分割和正则表达式匹配方法,还结合了上下文感知能力,适应复杂语言结构。Tiktokenizer 的核心特性包括自适应 token 分割、高效编码能力和出色的可扩展性,使其适用于从聊天机器人到大规模文本分析等多种应用场景。通过模块化设计,Tiktokenizer 确保了代码的可重用性和维护性,并在分词精度、处理效率和灵活性方面表现出色。此外,它支持多语言处理、表情符号识别和领域特定文本处理,能够应对各种复杂的文本输入需求。
29 6
深入解析Tiktokenizer:大语言模型中核心分词技术的原理与架构
|
1天前
|
缓存 边缘计算 安全
阿里云CDN:全球加速网络的实践创新与价值解析
在数字化浪潮下,用户体验成为企业竞争力的核心。阿里云CDN凭借技术创新与全球化布局,提供高效稳定的加速解决方案。其三层优化体系(智能调度、缓存策略、安全防护)确保低延迟和高命中率,覆盖2800+全球节点,支持电商、教育、游戏等行业,帮助企业节省带宽成本,提升加载速度和安全性。未来,阿里云CDN将继续引领内容分发的行业标准。
31 7
|
2天前
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
5天前
|
机器学习/深度学习 人工智能 监控
鸿蒙赋能智慧物流:AI类目标签技术深度解析与实践
在数字化浪潮下,物流行业面临变革,传统模式的局限性凸显。AI技术为物流转型升级注入动力。本文聚焦HarmonyOS NEXT API 12及以上版本,探讨如何利用AI类目标签技术提升智慧物流效率、准确性和成本控制。通过高效数据处理、实时监控和动态调整,AI技术显著优于传统方式。鸿蒙系统的分布式软总线技术和隐私保护机制为智慧物流提供了坚实基础。从仓储管理到运输监控再到配送优化,AI类目标签技术助力物流全流程智能化,提高客户满意度并降低成本。开发者可借助深度学习框架和鸿蒙系统特性,开发创新应用,推动物流行业智能化升级。
|
13天前
|
人工智能 文字识别 自然语言处理
保单AI识别技术及代码示例解析
车险保单包含基础信息、车辆信息、人员信息、保险条款及特别约定等关键内容。AI识别技术通过OCR、文档结构化解析和数据校验,实现对保单信息的精准提取。然而,版式多样性、信息复杂性、图像质量和法律术语解析是主要挑战。Python代码示例展示了如何使用PaddleOCR进行保单信息抽取,并提出了定制化训练、版式分析等优化方向。典型应用场景包括智能录入、快速核保、理赔自动化等。未来将向多模态融合、自适应学习和跨区域兼容性发展。
|
2天前
|
存储 自然语言处理 监控
深度解析淘宝商品评论API接口:技术实现与应用实践
淘宝商品评论API接口是电商数据驱动的核心工具,帮助开发者高效获取用户评价、画像及市场趋势。其核心功能包括多维度信息采集、筛选排序、动态更新、OAuth 2.0认证和兼容多种请求方式。通过该接口,开发者可进行商品优化、竞品分析、舆情监控等。本文详细解析其技术原理、实战应用及挑战应对策略,助力开启数据驱动的电商运营新篇章。
|
5天前
|
人工智能 编解码 算法
视频云技术解析:春晚“子弹时间”背后的黑科技
视频云技术解析:春晚“子弹时间”背后的黑科技
|
4月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
141 2
|
8天前
|
机器学习/深度学习 自然语言处理 算法
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇

热门文章

最新文章

相关产品

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

    更多