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天前
|
存储 SQL 监控
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
思通数科AI平台在尽职调查中的技术解析与应用
思通数科AI多模态能力平台结合OCR、NLP和深度学习技术,为IPO尽职调查、融资等重要交易环节提供智能化解决方案。平台自动识别、提取并分类海量文档,实现高效数据核验与合规性检查,显著提升审查速度和精准度,同时保障敏感信息管理和数据安全。
37 11
|
2天前
|
自然语言处理 监控 数据可视化
|
3天前
|
安全 编译器 PHP
PHP 8新特性解析与实践应用####
————探索PHP 8的创新功能及其在现代Web开发中的实际应用
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
医疗行业的语音识别技术解析:AI多模态能力平台的应用与架构
AI多模态能力平台通过语音识别技术,实现实时转录医患对话,自动生成结构化数据,提高医疗效率。平台具备强大的环境降噪、语音分离及自然语言处理能力,支持与医院系统无缝集成,广泛应用于门诊记录、多学科会诊和急诊场景,显著提升工作效率和数据准确性。
|
6天前
|
机器学习/深度学习 人工智能 安全
TPAMI:安全强化学习方法、理论与应用综述,慕工大、同济、伯克利等深度解析
【10月更文挑战第27天】强化学习(RL)在实际应用中展现出巨大潜力,但其安全性问题日益凸显。为此,安全强化学习(SRL)应运而生。近日,来自慕尼黑工业大学、同济大学和加州大学伯克利分校的研究人员在《IEEE模式分析与机器智能汇刊》上发表了一篇综述论文,系统介绍了SRL的方法、理论和应用。SRL主要面临安全性定义模糊、探索与利用平衡以及鲁棒性与可靠性等挑战。研究人员提出了基于约束、基于风险和基于监督学习等多种方法来应对这些挑战。
15 2
|
5天前
|
前端开发 JavaScript
JavaScript新纪元:ES6+特性深度解析与实战应用
【10月更文挑战第29天】本文深入解析ES6+的核心特性,包括箭头函数、模板字符串、解构赋值、Promise、模块化和类等,结合实战应用,展示如何利用这些新特性编写更加高效和优雅的代码。
14 0
|
27天前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
92 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
3月前
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】

相关产品

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

    更多