摘要: 阿里云Elasticsearch提供100%兼容开源Elasticsearch的功能,以及Security、Machine Learning、Graph、APM等商业功能,致力于数据分析、数据搜索等场景服务。与开源社区背后商业公司Elastic战略合做,为客户提供企业级权限管控、安全监控告警、自动报表生成等场景服务。本文中,阿里云产品专家沐泽为你们介绍了阿里云Elasticsearch产品的相关状况。
产品介绍
Elasticsearch(简称ES)是2010年推出的一款开源产品,本质上是一个实时的分布式实时搜索与分析引擎。随着这些年来Elasticsearch生态的演进,逐渐发展成为ELK即Elasticsearch、Logstash、Kibana的生态。Elasticsearch属于搜索引擎,Logstash负责数据的采集、转化以及输出,Kibana则提供了强大的数据可视化功能。对于Elasticsearch而言,其在DB-Engines中的开源数据库排行榜中位列第一。能够看出,Elasticsearch受到了普遍的承认,而且也有大量的开发者正在使用。
阿里云Elasticsearch提供了全托管的Elasticsearch服务,而且100%兼容开源版本,而且对于内核进行了针对性优化,提供了商业功能(原‘X-Pack’),即开即用,高可用服务,弹性伸缩,按需付费。在下图中,在阿里云Elasticsearch的可靠性、安全性、系统托管等方面与友商的产品进行了对比。在可靠性方面,阿里云Elasticsearch具备99.9%的数据可靠性,而且会定时地向OSS进行数据备份,方便用户在数据出现问题的时候进行恢复。此外,经过同城多活,提供了较强的容灾能力。在开源差别部分,阿里云Elasticsearch也作了大量的工做。在内核性能优化部分,不只作了存储与计算分离,还提供了ECS自己的调优。在Index Build服务部分,Elasticsearch自己支持高并发的数据写入加速,这样会使得数据的写入和查询相互影响,阿里云Elasticsearch则经过Index Build服务离线地构建索引,并将原生索引切换成比较小的片并与线上索引进行Merge,这样就避免了用户线上集群的I/O开销,在必定场景下保障了高并发写入场景下的查询服务的稳定性。在智能运维方面,阿里云Elasticsearch提供了EU智能运维系统,可以帮助用户运维和监控集群而且进行智能分析,方便用户更好地了解集群的健康情况,而且还提供了预警以及改进建议等功能。此外,阿里云Elasticsearch近期还集成了阿里达摩院的NLP分词器和分析器,可以更好地完成业务的分析和检索任务。在商业插件部分,X-Pack服务自己集成在Elasticsearch和Kibana里面的。以往这样的商业版插件包对于用户而言,须要付费使用,阿里云Elasticsearch经过这样的方式为用户提供了不少功能,如认证受权、权限管理、报表可视化以及机器学习等。整体来看,相比友商的ES方案以及用户自建ES,阿里云Elasticsearch的价格也具备较强的优点,而且具备更加丰富的产品能力,同时也具备比较高的性价比。
基于以上的目标能力,阿里云Elasticsearch也具备很是丰富的目标场景,主要集中在IT运维、信息检索以及日志分析等方面。在IT运维方面,用户能够作Metric监控、网络日志分析等相关工做。信息检索方面,不只支持APP检索,也能够用于数据库加速以及聚合搜索等场景。在日志分析方面,能够用于Web日志分析、风控/审计/分析、用户行为分析/用户画像以及BI分析和Ad-hoc等场景下。最后,阿里云Elasticsearch的主要购买方式就是包年包月预付费和按量后付费两种。
产品输出形式
对于阿里云Elasticsearch产品的输出形式而言,主要在公共云和专有云这两个方面。在公共云上,阿里云Elasticsearch支持了金融云、零售云以及菜鸟云,而且在日本站和国际站进行了售卖。在专有云方面,8月底的时候阿里云Elasticsearch也提供了轻量PaaS独立输出,而且能够在企业版On ECS和企业版On物理机上进行部署。
产品架构
在产品架构部分,阿里云Elasticsearch部署在ECS网段,至关于购买了大量的ECS服务器拉起了ES镜像。对用户而言,能够购买不少的ES集群,每一个ES集群中都会有不少的Node,每一个Node就是一台ECS。整个ECS部署在系统方VPC内,而且支持跨可用区的同城容灾能力,也就是说在同一个区域下面,能够在不一样的可用区内部署服务,经过阿里云VPC和用户VPC之间的IP映射使得每一个集群的Node分布在不一样的可用区以内。
除此以外,在保证容灾方面,用户的数据节点会定时地向OSS作快照备份,当用户的数据出现问题的时候,能够快速地经过OSS实现数据恢复。总体的数据存储类型支持高效云盘、SSD云盘以及本地磁盘。在存储计算分离方面,阿里云Elasticsearch近期也在内核方面进行了优化。自己Elasticsearch索引为了方便存储须要作分片,为了提高查询效率,每一个分片会有多个副本,可是这样属于用空间换时间的方式,所以会形成大量的数据冗余,为用户带来很高的存储成本。另一方面,为了提高查询效率,用户在写入数据的时候,就会增长更多的内存开销,进而形成写入速度较慢。在这样的背景之下,阿里云Elasticsearch作了存储与计算分离的内核优化,将用户数据的多个副本进行分片映射到同一块的物理介质之上,与原生的ES相比,阿里云Elasticsearch的存储成本下降至少50%,数据写入实时性能提高70%,Replica/Shard变动性能提高99%,以上这些能力都是开源版本的ES所不具有的。
公共云可售卖区域
目前,阿里云Elasticsearch除了美东、英国和迪拜三个区域尚未部署售卖以外,在全球范围内的其余阿里云数据中心都已经部署售卖了,将来也会在更多的区域进行开放。
金融持久化数据审计方案
这里介绍一个实际案例,这是阿里云为一家信用卡结算公司设计的金融持久化数据库审计方案。该客户存在金融数据监管需求,所以数据须要存储的时间较长,所以形成数据量很是大。所以,阿里云提供了金融持久化数据库审计方案中为用户提供了一个三层的数据存储方案,用户近期的Hot Data会在第一层ECS存储大约2个月的时间,当变成Warm Data或者更老的数据以后,就会存储到下层的ECS或者OSS之上,这样一方面保障了用户在使用阿里云Elasticsearch时的数据查询时效性,使得其不会被大数据量所影响,另一方面也大大下降了用户的存储成本。
场景示例-日志分析
这里针对于日志分析场景进行更进一步的介绍。在日志分析方面,会采集用户在网站/游戏/应用内的行为日志数据,分为离线和在线两个部分分别投递给Hadoop及Elasticsearch,以知足用户(离线部分)标签、画像的加工,和(在线部分)用户行为实时统计和状态查询。阿里云Elasticsearch在日志分析场景下提供了不少对应的能力,面向日志分析场景,提供聚合搜索、实时查询、增量数据快速索引归档等分析必备能力。除此以外,阿里云Elasticsearch基于X-Pack服务提供了基于LBS的地理位置搜索、可视化分析报表、数据可视化展示等高级分析能力。进一步能够实现用户留存分析,浏览路径分析,基于地理围栏的用户画像,用户标签体系等数据查询、统计以及分析场景。
Elasticsearch如何处理日志
日志数据的来源有不少,好比日志文件、数据库、传感器以及Web API等,而利用这些日志数据实现日志搜索和日志分析会存在不少常见的需求,主要包括五点,即集中收集与存储、日志搜索、分析聚合及可视化、安全、角色管理以及可伸缩性。
-
在集中收集与存储日志数据方面,阿里云Elasticsearch会对于常规日志数据进行采集,包括日志文件、日志系统、网络拥堵等其余常见的日志数据。阿里云Elasticsearch经过收集和汇拢数据以及离线Hadoop数据迁移可以比较快捷地集中日志数据并存储到Elasticsearch中构建索引。
-
在日志搜索方面,阿里云Elasticsearch可以支持全文检索、元数据搜索、指标/标签搜索以及地理位置搜索等。
-
在分析聚合和可视化方面,当数据聚合到阿里云Elasticsearch里面去以后,能够经过sum、average、min/max等聚合函数实现聚合分析,而且能够经过X-Pack实现机器学习分析,也能够借助Kibana实如今线数据可视化。而且在阿里云Elasticsearch中,用户能够直接经过Kibana控制台实现配置以及可视化面板的建立。
-
在安全和角色管理方面,阿里云Elasticsearch提供了RBAC的用户权限以及TLS/SSL交互式安全协议,而且可以实现实时监控和触发告警,可以帮助用户进行实时预防。此外,基于X-Pack的商业功能可以提供自动数据报表以及触发式报表等服务,帮助用户更好地进行数据管理和查询。
-
在可伸缩性方面,阿里云Elasticsearch可以支持弹性扩容,由于ES的节点是对等的,所以可以实现快速拷贝和弹性扩容,实现不一样规模下的数据管理。
阿里巴巴Elasticsearch的产品生态架构
数据会从RDS等数据存储中过来,经过Flume、EMR、MaxCompute等下游计算引擎进行加工和处理,完成画像或者标签的工做,最后索引到Elasticsearch中去。阿里云Elasticsearch是兼容整个大数据生态的,而且也可以无缝地对接整个阿里云的产品生态,进而很是方便地完成数据的处理工做。此外,还能够经过Kibana能够帮助用户更好地实现数据的可视化管理。