Elasticsearch生态&技术峰会 | Elasticsearch在乐言的多场景应用实践

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 开源最大的特征就是开放性,云生态则让开源技术更具开放性与创造性,Elastic 与阿里云的合作正是开源与云生态共生共荣的典范。值此合作三周年之际,我们邀请业界资深人士相聚云端,共话云上Elasticsearch生态与技术的未来。
开源最大的特征就是开放性,云生态则让开源技术更具开放性与创造性,Elastic 与阿里云的合作正是开源与云生态共生共荣的典范。值此合作三周年之际,我们邀请业界资深人士相聚云端,共话云上Elasticsearch生态与技术的未来。

视频静态封面-780-388-0120备份 11.png

本篇内容是上海乐言信息科技有限公司Elasticsearch、Kafka负责人徐二涛分享的Elasticsearch在乐言的多场景应用实践。
分享人:上海乐言信息科技有限公司Elasticsearch、Kafka负责人徐二涛

视频地址:http://cloud.video.taobao.com/play/u/3177173649/p/1/e/6/t/1/296822688713.mp4

关于Elasticsearch在乐言科技的多场景应用实践,本文将通过三个部分展开介绍:

  • 背景介绍
  • ES的核心价值
  • ES在乐言的应用场景
  • ES面临的挑战

一、背景介绍

上海乐言信息科技有限公司(下文简称“乐言科技”)成立于2016年4月,致力于将AI前沿技术赋能各垂直行业客户,在电商客服、金融咨询、政务问答医疗问诊等领域有广泛应用。

乐言科技的AI智能客服产品“乐语助人”,具备了自动应答训、训练客服、协同人机交互等功能。

二、ES的核心价值

展开介绍ES的核心价值前,首先介绍下ES在乐言科技的业务体量,Elasticsearch在乐言科技支持了多条业务线,包括乐语助人、智能营销、智能推荐、汇乐读。

乐言科技各个业务使用ES的情况都不相同,目前共有30多套ES集群,每天产生50T的数据量,每月的存储数据量级达到P级,双十一期间每天写入数据甚至达到每秒200万。

ES的核心价值离不开Elastic Stack生态圈。近几年Elastic有很大的发展,一方面它的使用场景很丰富,主要是基于ES的搜索和分析,具有多种场景应用。目前,ES可以提供的解决方案有搜索、日志分析、指标分析和安全分析等。

image.png

在开源领域,ES有比较成熟的技术组件,比如可视化的Kibana,搜索和查询可以在Kibana汇集成各种各样的直观的图表和柱状图。Elasticsearch是分布式存储计算一组多副本的,在保证高可用性下又保证性能。数据抓取主要有Logstash和Beat。Beat可以结合开源组件自己编写。

从商业的角度来看,X-pack具有更丰富的功能,比如安全、报警、监控和图查询、机器学习等方面。这些X-pack的功能对于开源来说是比较缺乏的,当下很多云厂商都对以上这些功能做了封装。

三、ES在乐言的应用场景

ES在乐言科技的应用场景很丰富,比如日志分析搜索、业务搜索、运营数据、数据分析等等。

在日志系统,乐言科技主要收集外部日志、系统日志、堡垒机日志和业务日志。在业务搜索领域,主要包括商家后台的话术搜索、问答搜索和商品过滤。运营数据包括运营系统的Galaxy系统、运营人员和图标绘制。Galaxy系统也是基于ES研发的,由于ES开箱即用的搜索功能和数据分析功能,大大提高了开发效率。

image.png

在运营系统中,运营人员使用Galaxy系统可以很好的进行数据分析,在Kibana上也可以进行多种多样的图标绘制。数据分析后,Kibana也可以支持导出。另外,还有丰富的Rest API可以调用。

在数据分析方面,乐言科技可以对用户的数据打各种各样的标签,然后每天离线实时写入ES,最后生成用户画像、用户标签和统计分析。

总而言之,在数据挖掘和分析方面,ES提供了不可小觑的能力。

ES在乐言科技的应用场景——日志搜索分析

日志系统在乐言科技有很广泛的应用。乐言科技的日志架构是经典的ELK架构。ELK架构最左边是系统日志,通过syslog输出到Kafka;Web日志通过Logstash做一些解析,然后将结构化的数据写入到Kafka;容器日志是基于filebeats实现服务发现的一些功能,可以将容器打上不同的tag,再将需要收集的容器打到不同的Kafka的Topic;应用日志封装了SDK,通过log组件接入Kafka-appender, 然后将数据通过序列化再写入Kafka。

Kafka基于goagent到Elasticsearch,不仅支持基于pro buff的解析,针对logstash来说也能节省不少资源,大大提高Elasticsearch的写入。Kibana是基于业务日志和系统日志的搜索。

在日志采集中,应用日志主要用于异常日志和慢日志,用来定位问题;Web日志主要用于监控web服务器的运营情况,以及一些Web服务器请求情况的监控;系统和堡垒机日志,可以进行一些日志的分析,用来做安全分析。

image.png

ES为日志提供了一套比较完美的解决方案,它的主要特点就是任何一个开发运维的同学都可以使用成熟组件,并通过简单的部署搭建一个完整的日志分析服务。从日志的实时性来讲,即使在亿级的日志也能达到10秒级的查询,相对于传统的数据解决方案小时级的时效性都是非常高的。即使在亿级别的日志,在交互式分析上ES的搜索响应也可以做到秒级。

ES提供了非常丰富的查询分析能力,支持全文搜索。由于ES基于倒排索引和存储数据结构,基本所有不同类型的搜索都可以实现。作为不同行业日志搜索最广泛的形式,ES非常完美地解决了日志实时分析应用场景,这也是最近几年ES快速发展的原因之一。

ES在乐言科技的应用场景——Web日志统计分析

针对Web的请求监控,ES可以对请求状态码占比及实时的qps进行绘制图标,比如基于timeline走势的绘图,或基于一些维度的饼状图等等。

image.png

在这样的Web日志系统,排障是交互式的可视化操作,非常方便。比如发现一个请求有大量的502, 就可以在Kibana上通过过滤条件过滤出502的相关请求,可以看到502的surname等信息。总而言之,在Web日志分析方面有很强的竞争力。

另外,ES还可以支持扩展,可将来源IP进行GeoIP库的解析,比如解析成地理位置,或查看Web请求分布的情况。

ES在乐言科技的应用场景——业务搜索

业务搜索在商家后台,包括商品过滤、话术搜索、问答搜索和搜索结果排序等功能。对ES搜索条件可以进行多维度的组合。

在业务搜索方面来说,最主要的特点是高可用性,ES的高可用性可达到99.99%。这依赖于阿里云ES,可以创建跨区的部署,支持单机可用的故障容灾。业务搜索一般都比较复杂,ES搜索的高性能也非常突出。它支持单台万级qps搜索,响应实践平均在30毫秒以内。

ES在乐言科技的应用场景——运营数据分析

运营数据分析可以对店铺、订单、商品或用户等维度绘制运营数据监控图表,包括饼图、柱状图或基于时间线的线状图。

由于ES在多维度的聚合排序是相当强劲的,所以ES在开发能力上有丰富的Rest API 非常方便,对于开发效率的提升也很有帮助。

ES有成熟的可视化工具,这就对运营成员很友好,使得他们的学习成本降低,非常简单的就可以绘制各种分析或监测所需的图表,包括在Kibana中检索的数据做过滤,或用于其他的分析等等。

ES在乐言科技的应用场景——数据分析

乐言科技的数据分析会给用户打多种多样的标签,离线统计之后形成用户画像,写入ES,再通过ES的强大聚合和分析能力,观察老用户的流失率和新用户的情况,包括复购用户等等很多有价值的数据。同时,基于ES搜索分析的能力,在大数据报表生成方面,也是很方便的。

image.png

总而言之,ES在未来数据挖掘中可以提供更多帮助。

四、ES面临的挑战

ES在使用过程中面临的挑战包括日志和搜索两方面。

日志的挑战

从日志的角度来看,数据量非常大,每天有超过50T的数据产生,若保留30天就会达到P级的日志;日志还有低延迟和高并发写入的特点,这就需要SSD存储,随之而来的就是成本高的问题。

所以从日志的角度来看,挑战就是还没有很好的节约成本的架构。乐言科技的解决方案是采取hot&warm+oss归档的架构。Hot主要是基于SSD节点进行存储,且只保留7天数据,超过7天会定期转存到warm节点,它的成本相对较低。同时这些数据都会写入OSS归档一份,用于查询超过1个月的数据。另外Logstash和Beat在Kafka写的效率不高,这里乐言科技重新编写了goagent,以节省资源。

另外,通过APP名称建索引,然后不同APP名称对应的索引在ES中表留了时效性,也可以节省成本,包括约束研发、打印日志的规范等等。

搜索的挑战

搜索的挑战主要是高可用性和高性能,不仅要达到99.99%可用性还要做到比较丰富的性能查询。所以从单机可用区故障容灾方面来讲,主要是使用阿里云ES在创建过程中创建的多可用区,即使这样也避免不了ES集群会有故障。所以在重要的ES搜索方面,乐言科技的解决方案是做了一主一备的搜索。一主一备是双写,主份是以查询为主的,备份也可以进行少量级别的查询。如果主份有问题,程序可以自动接入到备份集群。

在开源Elasticsearch的安全性也是很大的挑战。针对这个问题的解决方案,乐言科技做了基于Aliyun Elasticsearch支持的X-pack认证,通过不同的role和user完成关系架构,然后分配给所有级别一个权限,以保证数据的安全性。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
3月前
|
安全 Linux 开发工具
Elasticsearch 搜索入门技术之一
Elasticsearch 搜索入门技术之一
227 1
|
2月前
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
235 1
|
4月前
Elasticsearch采坑实践总结
Elasticsearch采坑实践总结
50 0
|
6月前
|
存储 监控 安全
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践1
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践
85 0
|
4月前
|
存储 Java Maven
SpringBoot整合Jest和Elasticsearch实践
SpringBoot整合Jest和Elasticsearch实践
107 1
|
28天前
|
canal 消息中间件 关系型数据库
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
78 0
|
6月前
|
存储 缓存 搜索推荐
百度搜索:蓝易云【Elasticsearch 底层技术原理以及性能优化实践】
和副本、优化硬件、设计合理的索引、编写高效的查询以及利用缓存和预热等策略。通过综合考虑这些方面,可以提升Elasticsearch的性能并获得更好的搜索和分析体验。
281 0
|
2月前
|
存储 JSON 测试技术
异步检索在 Elasticsearch 中的理论与实践
异步检索在 Elasticsearch 中的理论与实践
36 0
|
3月前
|
存储 自然语言处理 Java
Elasticsearch全文搜索技术之二kibana的简介和使用
Elasticsearch全文搜索技术之二kibana的简介和使用
29 2
|
4月前
|
运维 Kubernetes API
ElasticSearch容器化从0到1实践(一)
通过kubernetes集群聚合多个Elasticsearch集群碎片资源,提高运维效率。

相关产品

  • 检索分析服务 Elasticsearch版