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

一、什么是全观测?

1、传统运维的问题

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

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


2、全观测的定义

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

 

3、全观测可以做什么

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

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

全观测架构图

 

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

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


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

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


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

轻量化的提供各类metic、logs、APM数据采集能力;

 

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

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


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

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


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

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


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

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

 

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

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


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

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

 

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

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


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

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

 

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

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


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

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

 

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

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

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


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

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

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

 

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

1、高并发写入

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

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

c)ES集群容易被打爆;


2、存储成本高

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

b)TB级别起步,甚至PB级;

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


3、时序分析性能差

a)ES内核技术局限性;

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

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

 

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

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

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

 

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

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


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

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

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

 

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

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

1、流式SQL

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

2、Serverless服务

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

3、Autopilot能力

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

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

Autopilot自动分配算力

 

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

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

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

Indexing Service架构图

 

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

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

写入能力和成本对比图

 

 

2、自研ES存储Openstore

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

 

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

a)低成本:

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

b)海量存储:

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

c)高可用:

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

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

上一篇:[LeetCode] Self Crossing


下一篇:一文让你熟练掌握Linux的ncat(nc)命令