带你读《Elastic Stack 实战手册》之75:——4.2.1.基于Elasticsearch实现预测系统(1)

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 带你读《Elastic Stack 实战手册》之75:——4.2.1.基于Elasticsearch实现预测系统(1)

4.2.可观测性应用场景

4.2.1.基于Elasticsearch实现预测系统

创作人:田雪松

审稿人李捷

 

业务背景介绍

 

当代商业组织面临的最基本挑战,是互联网已经不再是一个替代或可选渠道,它已经成为许多企业最主要的、甚至是惟一的销售平台。网上店面在现实中往往比实体店面还要重要,所以人们就必须要像监视实体店面一样,监控网上应用。

 

监控系统通常会以推送(Push)或拉取(Pull)的方式,从服务或应用中获取监控指标

(Metrics),并在监控指标出现异常时,发送警报或恢复服务,以实现网上店面实时可用的目标。

 

监控系统在提升了应用可用性同时,还在日积月累中形成海量监控数据,而从这些监控数据中可以挖掘出巨大的商业价值。监控指标会包含一些特定业务场景下的业务数据,借助大数据分析工具对它们进行处理和建模后,就可以辅助人们作出正确的市场决策。

 

本章要介绍的案例就是基于 Elasticsearch 对监控数据进行商业挖掘的一次尝试,我们内部称这套系统为 Prophet(大预言家)。Prophet 通过机器学习对历史监控数据进行处理,并创建预测模型,最终可以实现对单次用户请求处理的全面预测,包括处理结果是否成功、处理执行时长等等。

 

Prophet预测系统架构

 

Prophet 虽然只是监控数据最终的分析处理服务,但支撑 Prophet 实现智能预测的整个系统

 

却涵盖了四个主要部分:

 

l 第一部分是产生海量监控数据的监控系统,它从被监控的业务系统中拉取监控数据,并提供实时告警服务。

l 第二部分则是将监控数据,从监控系统中导入到 Elasticsearch 集群的数据系统,它还负责对监控数据进行清洗、转换

l 第三部分是用于存储历史监控数据的 Elasticsearch 集群,我们借助 Elasticsearch 冷热模型,延长了监控数据的保存时间

l 而最后一个才是最终处理这些数据的 Prophet 服务,它通过 Spark 运算集群,实现智能预测功能,未来还会添加更多数据分析功能。

 

四个系统之间的数据流动关系如图 1-1 所示:

image.png

图1-1 Prophet周边生态


除了 Elasticsearch 以外,HDFS 也是存储历史监控数据的一种不错选项,并且 HDFS 更容易与 Hadoop 的大数据生态系统集成。

 

我们之所以采用 Elasticsearch 主要还是被 Elasticsearch 强大的检索能力所吸引。同时,

Elastic Stack 家族中的 Kibana 还提供了强大的数据可视化能力,至于数据分析则可以利用 elasticsearch-hadoop 插件整合 Hadoop 生态。


使用 Elasticsearch 存储监控数据



在 Prophet 诞生之前,我们的业务系统已经使用 Prometheus 做到了实时监控,同时还通过 Grafana 对监控数据做了可视化处理。

 

但 Prometheus 监控数据存储,在其内置 TSDB(Time Serie Database)中,Prometheus

TSDB 中并没有分片和副本等概念,而只是简单地将数据保存在本地硬盘上。这意味着 Prometheus 无法支持数据高可用,同时也意味着 Prometheus TSDB 中的数据不能保存太久,否则本地硬盘迟早会被积累的数据撑爆。所以 Prometheus 默认只保存监控数据 15 天,超过这个时间后监控数据就会被直接删除。

 

对于一个监控系统来说这并不算什么大的问题,因为监控系统通常对实时数据更感兴趣,它只要能够实时快速地反映,被监控系统的异常就足够了。而历史数据分析和处理,并不能算是监控系统的职责范畴,应该交由 Elasticsearch 这样更专业的数据检索与分析工具来实现。

 

从另一个角度来说,由于预测系统,必须要基于历史数据创建预测模型,而如果直接在 Prometheus TSDB 上进行高频度的模型运算,则有可能会对监控系统本身造成性能上的影响。从系统监控与数据分析的职责角度来看,监控系统的稳定性无疑比数据分析更为重要。所以预测系统使用的历史数据,应该与 Prometheus 隔离开来,这就要求监控数据得从 Prometheus 中同步到 Elasticsearch 。一旦数据从 Prometheus 进入到 Elasticsearch ,我们就可以利用

Elasticsearch 冷热架构对数据进行优化以保存更长时间。

 

《Elastic Stack 实战手册》——四、应用实践——4.2 可观测性应用场景 ——4.2.1.基于Elasticsearch实现预测系统(2) https://developer.aliyun.com/article/1226133

 

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
运维 监控 Java
探索Elasticsearch在Java环境下的全文检索应用实践
【6月更文挑战第30天】在大数据背景下,Elasticsearch作为分布式搜索分析引擎,因其扩展性和易用性备受青睐。本文指导在Java环境中集成Elasticsearch,涉及安装配置、使用RestHighLevelClient连接、索引与文档操作,如创建索引、插入文档及全文检索查询。此外,还讨论了高级查询、性能优化和故障排查,帮助开发者高效处理非结构化数据全文检索。
316 0
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
|
5月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
2085 0
|
12月前
|
机器学习/深度学习 存储 运维
探索未来:结合机器学习功能拓展Elasticsearch应用场景
【10月更文挑战第8天】随着数据量的爆炸性增长,高效的数据存储、检索和分析变得越来越重要。Elasticsearch 作为一个分布式的搜索和分析引擎,以其强大的全文搜索能力、实时分析能力和可扩展性而闻名。近年来,随着机器学习技术的发展,将机器学习集成到 Elasticsearch 中成为了一种新的趋势,这不仅增强了 Elasticsearch 的数据分析能力,还开拓了一系列新的应用场景。
261 7
|
运维 监控 数据可视化
Elasticsearch全观测技术解析问题之面对客户不同的场景化如何解决
Elasticsearch全观测技术解析问题之面对客户不同的场景化如何解决
|
消息中间件 监控 Kafka
Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
【8月更文挑战第13天】Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
953 3
|
机器学习/深度学习 存储 运维
Elasticsearch 中的异常检测机制与应用场景
【8月更文第28天】随着数据量的增长和业务复杂性的提升,实时监测和分析大量数据成为一项挑战。Elasticsearch 不仅是一个高性能的全文搜索引擎,也是一个灵活的数据存储和分析平台。通过集成机器学习(ML)功能,Elasticsearch 能够实现更高级的数据分析任务,如异常检测。
375 0
|
运维 架构师 搜索推荐
7 年+积累、 Elastic 创始人Shay Banon 等 15 位专家推荐的 Elasticsearch 8.X新书已上线...
7 年+积累、 Elastic 创始人Shay Banon 等 15 位专家推荐的 Elasticsearch 8.X新书已上线...
|
搜索推荐 Java 数据库
springboot集成ElasticSearch的具体操作(系统全文检索)
springboot集成ElasticSearch的具体操作(系统全文检索)
|
运维 监控 Java
探索Elasticsearch在Java环境下的全文检索应用实践
【4月更文挑战第17天】本文介绍了在Java环境下使用Elasticsearch实现全文检索的步骤。首先,简述了Elasticsearch的功能和安装配置。接着,通过Maven添加`elasticsearch-rest-high-level-client`依赖,创建`RestHighLevelClient`实例连接Elasticsearch。内容包括:创建/删除索引,插入/查询文档。还探讨了高级全文检索功能、性能优化和故障排查技巧。通过Elasticsearch,开发者能高效处理非结构化数据,提升应用程序价值。
229 6

相关产品

  • 检索分析服务 Elasticsearch版