从ELK到EFK 结合Flink 和 Elasticsearch新特性重构全观测方案

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 朱杰 Elastic资深解决方案架构师

image.png

上图展示了日志应用的几个阶段。目前有很大一部分企业都处于 level 3 level 4 两个阶段中,其中level 3 占据更大部分。检索级意味着日志很少做结构化抽取,通过一个平台实现所有运维数据的全局搜索,无法做关联分析。分析级个前置条件,需要对原始文本日志进行较好的处理,能够非结构化信息里提取出有用的结构化信息,日志海量涌现时更加难以支撑

如果企业能够实现非常好的结构化日志,能够产生大量有意义的列,可以为分析提供很好的支撑。但是当结构化不足时,则只能做简单搜索。

image.png

很多企业日志量巨大日志质量不高,应用中存在大量没有意义日志或有意义的日志但没有被完整记录,没有暴露出可观测性。另外,日志输出非常随意,完全没有结构化,甚至直接输出文本,对重要信息进行提取时,只能通过正则表达式方式提取最后运维和开发分离,运维不理解开发输出的日志

很多运维人的目标是先将日志收进,收进日志只包含非常有限结构化字段,只对采集器自带的结构化字段做索引,无法提取出关键信息。而当日志需求变得如此简单,对日志做索引也变得不再必要只要求提供全文索引即可

事后诊断,比如根据 error code 时间段搜索即使使用暴力计算也可以快速得出结果。

image.png

因此,业内产生了日志“新”势力,核心为降低成本。比如不建索引,直接暴力计算;使用云上最便宜的存储对象,不用 SSD 磁盘等,提高压缩率,但这必定会牺牲一定的性能,因为查询需要解压缩。

但以上思路存在明显缺点,海量日志不做索引纯粹扫描需要一定的时间。需要对时间做索引,对原始文本打 tag 做索引。

image.png

 针对以上需求,Elasticsearch官方推出了异步搜索。搜索下发后,可以在后台慢慢运行搜索,分批地将结果取回。搜索错误日志时,可以先将前面 100 条结果返回,一定时间后再将后续 100 返回

image.png

Elasticsearch的另一新功能为运行时字段Runtime Field不建索引但依然可以支持各种搜索。

定义一个 script暴力计算,从 string 取出想要的信息相当于一个虚拟字段。有了虚拟字段,所有 ES 查询语句都可以像正常字段一样进行查询其本质依然是暴力计算。如果将时间段缩小运行速度也能够基本满足用户需求

image.png

此前社区做法是将很远期日志做 Snapshot存到对象里,但仅作做备份无法进行查询。如果要查询,则需要将对象恢复到集群,需要很多人为工作而我们期望的理想状况是在对象里直接进行查询。因此Elasticsearch开发了官方功能Searchable Snapshot ,将日志存放在对象里日志随着生命周期变得越越冷,可以直接查询。无法快速返回结果一般通过异步搜索进行查询此功能非常适用于大型企业超长时间段日志搜索。

阿里云也提供了类似的功能OpenStore ,由阿里云自研,可以基于阿里云基础设施做更强大优化。多级缓存实现机制与官方原版不太一样,利用 SSD 或旋转磁盘做多级缓存,因此搜索速度会比官方原版更好。

image.png

image.png

Flink 能在tag索引时起到很好作用ES 官方是 Logstash但现在 EFK可以使用 Flink 代替 Logstash Logstash  不是集群,而是一个多实例 load balance 。但是 Flink 集群性能精确一次投递等特性都优于Logstash

因此 Flink 在很多场景的应用都更有优势,比如多行日志合并,可以通过 Flink 窗口将多行日志合并一行中;比如维度添加,Flink可以帮助查询很多结构化数据,补全到日志流中,最后产生结构化的信息。只有标签和维度更全面,才能将暴力计算 scan 缩小到最小,使得既不牺牲太多性能,又能够大幅降低成本。

image.png

Flink 对于存指标降采样都是很好的选择。

image.png

EFKElasticsearch+Flink+LibanaFlink 替代了原先的Logstash,且整条链路全托管,可以快速搭建日志全观测解决方案。

image.png

海量日志写入时,处理问题比如标签提取等,Flink的处理能力强于其他同类产品。大量并发写入时,承载能力是很大问题,ES为其提供了解决方案。另外,OpenStore能够帮助解决日志存储成本高的问题同时,此套开源生态可扩展性很强,上下游接入能力非常强。

image.png

如今的IoT 场景会产生大量日志会进,写入存储都会面临巨大压力

而阿里云为其提供了解决方案,迁移成低,基于 ES Flink 可以轻松兼顾云下和云上,将两端打通。阿里云 ES OpenStore 可以将远日志存到 OSS 切实降低了成本。高并发写入下 Flink 处理能力也为其提供了很好的支撑

image.png

大促时,写入流量一定会存在峰值和波谷,而在云上可以轻松实现削峰填谷。

image.png

阿里云 ES Indexing Service 提供了海量 ES 流量可以打内,支撑海量写入ES Indexing Service 构建好索引并转移到 ES 集群ES 集群只需提供搜索能力即可通过ES Indexing Service 可以更好地匹配峰值,无需预留过多ES计算实例。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
22天前
|
SQL 大数据 API
大数据-118 - Flink DataSet 基本介绍 核心特性 创建、转换、输出等
大数据-118 - Flink DataSet 基本介绍 核心特性 创建、转换、输出等
40 0
|
5月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用问题之CTAS特性只支持新增表,不支持删除表吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
Oracle 关系型数据库 API
实时计算 Flink版产品使用合集之当sink到elasticsearch时,可以指定es的指定字段吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
实时计算 Flink版产品使用合集之当sink到elasticsearch时,可以指定es的指定字段吗
|
22天前
|
SQL 分布式计算 大数据
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(一)
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(一)
35 0
|
22天前
|
大数据 流计算
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(二)
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(二)
35 0
|
6月前
|
关系型数据库 MySQL Java
实时计算 Flink版操作报错之遇到java.lang.IllegalStateException: The elasticsearch emitter must be serializable.的错误,如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
4月前
|
SQL 关系型数据库 MySQL
如何在Dataphin中构建Flink+Paimon流式湖仓方案
当前大数据处理工业界非常重要的一个大趋势是一体化,尤其是湖仓一体架构。与过去分散的数据仓库和数据湖不同,湖仓一体架构通过将数据存储和处理融为一体,不仅提升了数据访问速度和处理效率,还简化了数据管理流程,降低了资源成本。企业可以更轻松地实现数据治理和分析,从而快速决策。paimon是国内开源的,也是最年轻的成员。 本文主要演示如何在 Dataphin 产品中构建 Flink+Paimon 的流式湖仓方案。
7709 10
如何在Dataphin中构建Flink+Paimon流式湖仓方案
|
4月前
|
数据采集 人工智能 安全
阿里云Elasticsearch 企业级AI搜索方案发布
本文从AI搜索落地的挑战、阿里云在RAG场景的实践、效果提升三个方面,深度解读阿里云Elasticsearch 企业级AI搜索方案。
366 8
|
3月前
|
SQL 设计模式 数据处理
Flink SQL 在快手实践问题之状态兼容的终极方案特点内容如何解决
Flink SQL 在快手实践问题之状态兼容的终极方案特点内容如何解决
21 0
|
3月前
|
消息中间件 Kafka Apache
流计算引擎数据问题之Apache Flink 的完整性推理方案设计如何解决
流计算引擎数据问题之Apache Flink 的完整性推理方案设计如何解决
55 0

相关产品

  • 实时计算 Flink版