2021 年 Elasticsearch 生态和技术峰会干货总结

铭毅天下

共 5088字,需浏览 11分钟

 · 2021-02-02

1、引言

2021年 Elasticsearch 生态和技术峰会已完美闭幕,本次峰会可谓大咖云集,精彩纷呈。

本文仅就下午场技术部分做一下梳理、提炼、总结,希望对没有来得及参加线上技术峰会的广大 Elastic 爱好者提供帮助。错过直播,但依然收获技术干货!

2、峰会技术关键词词云

3、技术会议主题

  • 吴斌老师(Elastic中文社区副主席):基于流式计算平台搭建实时分析应用

  • 李猛老师(力萌科技数据专家):Elasticsearch 基于 Pipeline 窗口函数实现实时聚合计算

  • 白凡老师(尚德机构资深工程师):基于 Elasticsearch 的容器化编排实践

  • 刘征老师(Elastic社区布道师):如何规划和执行威胁狩猎

  • 魏子珺老师(阿里巴巴技术专家):Elasticsearch云原生内核建设之路

4、基于流式计算平台搭建实时分析应用(吴斌)

4.1 为什么要面向开源进行架构设计?

  • 轻松定制化、业务专注、低学习成本。

  • 由于代码公开,所以安全、合规、透明。

  • 高度灵活性,无平台绑定。

4.2 流式计算平台架构剖析

如图所示,流式计算平台主要由分布式消息队列、分布式计算引擎、数据引擎三部分构成。

4.2.1 分布式消息队列

  • 数据采集,支持消息分发、消息缓存

  • 高可用,削峰填谷

4.2.2 分布式计算引擎

  • 早期:MapReduce、Storm

  • 当下主流:Flink、Storm2.0

  • 支持热更新 / 弹性伸缩

计算引擎核心任务:

  • 数据校验(数据格式、合法性、脏数据等)

  • 数据清洗(数据 ETL 转换)

  • 数据丰富(多维数据Join,以辅助数据分析)

4.2.3 数据引擎

  • 热数据存储在 Elasticsearch、HBase。

  • 其中 HBase 存储热数据非完全必要,除非高 IO 存储需要引入。

  • 一般情况下,数据的分析:Elasticsearch 就能搞定。

  • 温数据(超过 7天的数)存储选型:
    1)MPP
    2)Hive,GreenPlum

4.2.4 分布式存储

  • 云端的对象存储

  • 文件输出、明细错误数据落地

  • 快照 snapshot 等

1)数据来源(server Application):服务器日志、监控、业务数据采集(如用户行为、购买记录、社交记录)。
2)数据发送到消息队列 (MSG G)。
3)消息队列数据写入 Beam Streaming 开源驱动引擎框架。

  • 批流一体引擎。

  • Beam 能驱动:Flink、Spark Stream、 Strom 去做流式数据、batch 数据处理。

4)拉取RDB业务维表与实时数据Join。
5)对有问题数据输出到 Object 对象 / File 文件系统备份。
6)实时数据注入 Elasticsearch。
7)高 IO 数据写入 HBase(KV引擎)。
8)Beam Batch 批量处理。

核心Tips: 

HBase  +  Elasticsearch 组合使用,以打车场景为例:

  • 当打车订单未完成时候,明细数据(实时高 IO)录入HBase:

  • Session (订单)结束后,一个打车订单归拢为一条数据,放到 Elasticsearch,在 ES 中做实时订单分析、轨迹查询、客服查询等处理。

4.3 Elasticsearch 在流式平台中的角色功能

(1)文本检索

  • 日志

  • 场景:运维、开发、测试、客服。

(2)已知数据计算

  • 已知数据定义:Mapping是我们自定义的。

  • 实时指标计算。

  • 场景:固定报表、大屏展示。

(3)未知线索探索

  • 指标计算

  • 复杂过滤条件

  • adhoc 查询

  • 关联性、归因等

4.4 云原生与k8s集群管理经验分享(核心)

  • lass / On-prem:自己部署(实体机、虚拟机)大集群:维护升级麻烦,出错恢复周期非常长。

  • Sass:运维简单,具备弹性;缺点:细节不透明,网络拓扑受限,入口/网关性能、灵活性差,升级麻烦。

  • Pass (平台服务) / K8s
    (1)优点:运维简单、yaml文件决定部署、弹性好、独享资源、官方operator。
    (2)
    缺点:受限于K8s、开源版本,官方未来会推出商业版本。

    推荐:基于云托管K8s搭建ES集群。

为 Elasticsearch 量身定制的网关产品——极限网关

极限网关特性:

  • 转发性能好。

  • 支持多集群之间数据分流、同步。

  • 支持网关级限流。

4.5 相关资源

  • Elasticsearch  on K8s(Elastic 中文社区维护)

https://github.com/elasticsearch-cn/elastic-on-gke/

  • 流式分析平台框架(Beam)

https://github.com/cloudymoma/raycom

  • 极限网关(持续完善中)

http://gateway.infini.sh/

https://github.com/medcl/infini-gateway

5、Elasticsearch 基于 Pipeline 窗口函数实现实时聚合计算(李猛)

5.1 Pipeline 实时计算模型

pipeline 管道——输入、处理、输出。

类似:logstash 中的三个核心:input、filter、output。

现有流计算的问题:

  • Kafka:上游。

  • Flink:中间实时计算。

  • Storage:下游实时存储。

现有流计算架构问题总结如下:

  • 每增加一个环节(一个新架构选型),系统复杂性增加数倍。

  • 架构可靠性降低。

  • 会增加学习、运维成本高。

现有产品架构体系不够简化,能不能不是三件套,而是单件套?

5.2 ES - Pipeline 实时计算能力

  • ES Ingest pipeline

使用 Ingest pipeline 解决数据预处理问题。

前提:业务场景不复杂。

思考:Kafka、Flink 合并到用 Elasticsearch 实现。

  • ES Rollup pipeline

Rollup 核心:基于时间维度实现数据转换、压缩、折叠。

  • ES Transform pipeline

Transform:自己定义脚本或者函数实现数据转换。

  • ES Aggregations Pipeline

聚合 + pipeline 二次聚合,可以将结果写回到:索引。

  • Moving_avg: 移动平均值。

  • Moving_fn:自定义计算函数,自定义脚本。

  • Moving_percentles: 计算百分位占比。

5.3 ES + X实时计算畅想

认知前提:ES 具备一定的实时计算能力。

ALL in One(大白话意思:“Elasticsearch 一统江湖”)。

6、基于 Elasticsearch 的容器化编排实践(白凡)

6.1、为什么使用容器?

  • 业务方使用 ES 需求不一样。

  • 资源隔离。

  • 较虚拟机相对轻量级。

敏感业务数据:物理机集群存储。
不敏感业务数据:容器集群存储。

6.2、容器化优点

  • 容易构建、迁移、部署。

  • 工具链的标准化和快速部署。

  • 开发、测试、生产 ES 版本统一化。

  • 底层参数以及 ES配置 标准化。

  • 轻量 + 高效。

6.3、由代码到上线的可追溯流程

使用了:

  • Gerrit 代码审查工具。

  • Jenkins 自动化打包工具。

6.4、容器化中常见问题及解决方案

7、如何规划和执行威胁狩猎?(刘征)

威胁狩猎本质:安全分析中高阶、顶层威胁情报集成、管理工作。

7.1 安全问题无处不在

  • 攻击充满了盲点

  • 每个人都是目标

  • 安全分析师不堪重负

7.2 基于现有模块构建 Elastic 安全体系

Elastic 内置了监测规则、监测引擎、监测告警等。

7.3 安全威胁建模四个步骤组成:

在 kibana SIEM 中创建监测规则,形成基于 KQL的威胁探测规则。

7.4 安全狩猎核心步骤

第一步:通过 beats 收集日志。

第二步:通过数据丰富提高威胁情报的质量。

第三步:通过 Elastic SIEM 工具实现安全狩猎。

以上,人为对已知攻击的分析、判断。

可不可以对未知隐患发现?可以的,人工 + 机器学习实现。

7.5 推荐使用:MITRE ATTCK (内置于:Elastic SIEM)的全方位防护。

上面一句话很简练,是为总结。

8、阿里云 Elasticsearch 云原生内核建设之路(魏子珺)

8.1 阿里云 Elasticsearch 内核概览

8.1.1 阿里云Elasticsearch内核优势

阿里云内核 VS 开源内核:

  • 针对阿里云基础设施深度定制的内核,可最大发挥阿里云基础设施性能及成本优势。

  • 做场景化优化和功能增强。

  • 成本、性能、稳定性、功能较开源都有优势。


8.1.2 阿里云 Elasticsearch 内核需求

  • 简单:支持动态扩容、弹性计算,用户不用担心资源问题。

  • 好用:开箱即用,根据场景提供最优配置。

  • 性价比:价格低、性能好、足够稳定。

8.1.3 阿里云 Elasticsearch 内核成果


  • 成本节约:计算存储分离、冷热分离、Indexing service、索引数据压缩。

  • 性能优化:ElasticBuild、物理复制、 bulk 聚合插件、时序查询剪枝。

  • 稳定性提升:集群Qos限流、慢查询隔离池、协调节点流控、kmonitor全方位监控。

  • 功能增强:向量检索插件、NLP分词插件(1GB 海量词库),OSS Snapshot 插件,场景化推荐模板。

8.2、云原生 Elasticsearch 如何定义?

  • Elasticsearch 云服务,开行即用,API 自动化部署和运维。

  • 计算存储分离,弹性可伸缩。

  • 充分利用云基础设施,网络、存储和算力。

8.3、云原生 Elasticsearch 内核如何设计?

8.3.1 热节点计算存储分离——分布式文件系统

挑战1:分布式文件系统自身的稳定性。
挑战2:ES 一写多读,如何防止出现多读情况。
挑战3:读写分片内存状态,如何保障数据一致性?

8.3.2 冷热分离——冷节点对象存储

挑战1:冷节点使用对象存储,只有http接口,无 POSIX 接口,需要 Lucene 底层适配。

挑战2:单次IO的延时非常高。

挑战3:无法使用操作系统 pagecache 和预读能力。

8.3.3 Serverless:让用户关心从集群下沉到索引。

挑战1:如何解决多租户共享和平衡隔离问题。

挑战2:如何实现与原生ES一致的体验。

挑战3:如何评估索引的使用资源。

8.4 、阿里云云原生 Elasticsearch 实践

8.4.1 热节点计算存储分离

核心诉求:彻底弹性。不止是原生的动态添加节点、动态分片数据迁移。

核心需求:

  • 分片秒级搬迁

  • 秒级扩容副本

彻底弹性的本质:分片的搬迁、副本的扩充,底层数据都是不动的,只需要调整的是 DataNode 到分片的映射。

热节点计算存储分离的本质是:不再需要分片的副本保证数据的高可靠性(原生 ES 需要),而是借助:分布式文件系统保障数据的可靠性。

核心技术之一:内存物理复制,实现 replica 的近实时访问。

核心技术之二:两阶段 io fence,主备切换数据一致性保证以及防止网络异常时的数据多写。

计算存储分离优势

  • 秒级弹性扩缩容。

  • 写入性能提升 100%(免去了副本写入的CPU开销)。

  • 存储成本倍数降低(数据在共享存储中存储一份,一写多读)

8.4.2  Serverless——Indexing service

2021 年 2 月上线

  • 功能:提供写入托管服务,满足高并发时序数据写入,降低业务集群 CPU 开销。

  • 适用场景:日志、监控、APM 等时序场景。

  • 解决痛点:

    • 写多读少。

    • 消耗大量计算资源 用于写入。

一句话概括Indexing Service 本质:写入托管服务,也就是说:针对时序、日志场景数据,用户无需再关系写入细节、写入优化、运维等操作,全权由阿里云托管搞定。

9、小结

各位分享大咖的视频都值得看,建议大家结合自己的业务场景去看。

更多细节内容,推荐大家看视频,视频地址:

https://developer.aliyun.com/topic/esanniv3rd?userCode=qzgc9fkf

推荐:

  1. Elasticsearch, 你值得拥有!—— 云栖大会 Elasticsearch 场景化应用全景回顾

  2. Elastic中国开发者大会2019干货分享

  3. 干货 | 2018 Elastic 中国开发者大会笔记


中国最大的 Elastic 非官方公众号

点击查看“阅读原文”,和全球近1000 位 Elastic 爱好者一起每日精进 ELK 技能!

浏览 42
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报