基于Elasticsearch+Flink的日志全观测最佳实践

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文介绍了怎样利用 Elasticsearch+Flink 搭建日志全观测平台

一、什么是全观测?

1、传统运维的问题

要了解全观测,我们先看看传统运维存在哪些问题:

  1. 数据孤岛,分散在不同部门,分析排查故障困难;
  2. 多个厂商的多种工具,无法自动化统一分析;
  3. 故障是立体的,日志、指标等都只能看到一方面的可观察性;
  4. 只进行收集,没有真正深入分析,不能发挥大数据的价值。


2、全观测的定义

全观测是对传统运维的改进,它将日志、指标、APM数据,汇总在一个平台,让运维、开发、业务人员对所有的数据从统一视角进行观察分析。

 

3、全观测可以做什么

  1. 建立统一的可视化视图、对齐时间、过滤条件;
  2. 建立统一的基于规则的监控和告警;
  3. 建立统一的机器学习的智能监控和告警。

图片 1.png

全观测架构图

 

二、全观测场景技术难点和解决方案

在全观测场景下会面临很多痛点,那么如何通过云上ELK+Flink能力,去解决全观测日志场景下的痛点呢?


1、痛点一:日志/指标获取难

机器、业务系统、网络链路、操作系统,诸多指标及日志获取手段不一,落地过程复杂;


解决方案:Beats/APM获取日志/指标

轻量化的提供各类meticlogsAPM数据采集能力;

 

2、痛点二:日志/指标规格化要求高

上下游链路配合衔接过程中,如何将有效信息从海量日志中获取;


解决方案:数据清洗SQL化更简易

支持各类网络格式的日志/指标采模板,实时计算Flink提供完整流式SQL能力;


3、痛点三:高并发写入、系统稳定性差

业务/流量抖动,日志写入峰值往往会很高,旁路系统稳定性受到很大的挑战;


解决方案:云上ES写入托管及超强稳定性

提供Indexing service自研ES写入托管服务,及跨机房部署、同城容灾、场景内核优化;

 

4、痛点四:海量数据存储成本高

日志场景涉及海量数据,TB级别起步,甚至PB级;


解决方案:低成本数据存储

阿里云ES提供冷热分离数据存储方式,及自研存储引擎Openstore优化存储压缩算法;

 

5、痛点五:日志分析和指标监控统一难

借助时序系统可以很好的完成监控,但异常分析困难相反,如何在统一平台完成;


解决方案:日志分析、指标监控、APM能力齐全

阿里云ElastiStack全托管,提供日志分析、监控、Tracing一站式能力,针对时序场景,针对性优化引擎,保证时序日志监控和分析的性能;

 

6、痛点6: 系统可扩展性要求高

业务调整带来的技术演进一直在发生,技术组件更新快,运维框架需要有强大的兼容性;


解决方案:开源生态具备强大的可扩展性

基于分布式架构,以及灵活开放的RestAPIPlugin框架,支持各种扩展能力。

 

三、时序日志场景痛点分析

写多读少的日志场景下会遇到什么问题?

  1. 高峰期写入压力大弹性扩展难以有效实施;
  2. 海量计算+存储资源成本高低峰期资源闲置;
  3. 为保证系统稳定性集群运维管理复杂;


从下图我们可以看到在高峰和低峰期遇到的情况:

  1. 业务突发峰值写入TPS高达60K,无法准确预测和预估,峰值写入瓶颈明显;
  2. 高峰期写入TPS平均40K,需要准备至少8节点ES计算资源来满足高峰期写入能力;
  3. 低峰期写入TPS平均20K,仅需要4节点ES计算资源即可满足低峰写入流量。

图片 2.png

 

四、全链路日志分析与监控ELK技术难点

1、高并发写入

a)日志场景往往面临业务/流量抖动;

b)日志写入峰值往往会很高;

c)ES集群容易被打爆;


2、存储成本高

a)日志场景涉及海量数据;

bTB级别起步,甚至PB级;

c)部分场景(如:审计)长周期存储;


3、时序分析性能差

aES内核技术局限性;

b)日志场景中的时序查询性能差;

c)复杂聚合、Range等查询性能瓶颈明显;

 

4、可伸缩性及运维要求高

a)日志峰值/均值/谷值差异巨大;

b)集群规模大管理运维复杂;

 

五、全观测解决方案实现日志监控/运维/分析

1、方案选型:100%兼容开源,与各类开源生态组件无缝衔接;支持多云/跨云的日志监控、运维分析场景。


2、方案优势:云上Elasticsearch及实时计算Flink产品,提供面向海量数据的高性能读写、及高弹性低成本解决方案。

图片 3.png

全观测解决方案数据架构图

 

六、FLink在方案应用中的优势

实时计算Flink版是新一代Serverless实时计算引擎,它在方案应用中具有以下优势:

1、流式SQL

100%兼容开源,一站式开发平台,提供更适合日志场景下海量数据清洗的流式SQL能力,核心算子性能优化达开源2倍以上。

2、Serverless服务

全托管免运维,用户无须关注集群运维和资源预留,100%投入业务开发。

3、Autopilot能力

根据数据流量自动重新分配算力,智能削峰填谷,弹性资源分配,有效应对数据的高峰低谷,如下图:

图片 4.png

Autopilot自动分配算力

 

七、阿里云Elasticsearch日志增强特性

1、日志增强版Indexing Service写入托管

图片 5.png

Indexing Service架构图

 

写入托管的核心功能是IndexingServerless服务,在ES集群之外,依托云端海量计算能力,打破本地集群的物理资源限制,通过读写分离架构,将ES集群的数据写入在云端服务进行托管加速,以满足高并发数据写入要求,并且基于海量的资源,支撑快速弹性的扩展能力。

图片 6.png

写入能力和成本对比图

 

 

2、自研ES存储Openstore

图片 7.png

 

阿里云自研ES存储Openstore具有以下优点:

a)低成本:

相较于本地SATA盘存储成本降低60%,相较于高效云盘存储成本降低70%

b)海量存储:

数据存储按实际用量用多少付多少,存储Serverless按量付费;

c)高可用:

底层存储服务保证了集群的数据高可用,提供99.9999999999%的数据持久性。

综上,基于Elasticsearch+Flink的日志全观测解决方案在开源的基础上做了优化,解决了传统运维日志场景下的诸多痛点,满足高并发的写入要求,可以达到比开源更高的写入性能,全托管免运维,存储按量付费,用户无需预先购置或预留过多节点来预防集群高并发的写入要求。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
存储 运维 监控
超越传统模型:从零开始构建高效的日志分析平台——基于Elasticsearch的实战指南
【10月更文挑战第8天】随着互联网应用和微服务架构的普及,系统产生的日志数据量日益增长。有效地收集、存储、检索和分析这些日志对于监控系统健康状态、快速定位问题以及优化性能至关重要。Elasticsearch 作为一种分布式的搜索和分析引擎,以其强大的全文检索能力和实时数据分析能力成为日志处理的理想选择。
106 6
|
14天前
|
存储 SQL 监控
|
1月前
|
存储 运维 监控
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
本文解析了Elasticsearch Serverless在智能日志分析领域的关键技术、优势及应用价值。
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
|
14天前
|
自然语言处理 监控 数据可视化
|
14天前
|
运维 监控 安全
|
18天前
|
存储 监控 安全
|
17天前
|
存储 数据采集 监控
开源日志分析Elasticsearch
【10月更文挑战第22天】
44 5
|
27天前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
48 1
|
15天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
128 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
1月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
231 3

相关产品

  • 检索分析服务 Elasticsearch版