UCloud Elasticsearch服务应用场景解析

百家 作者:Ucloud 2018-06-05 09:16:41

UES(UCloud Elasticsearch)是基于Elasticsearch和Kibana打造的日志管理分析服务。通过创建集群的方式来创建服务,集群自动初始化最优配置和丰富插件为用户提供快速创建、便于管理以及线性扩容。此外,产品还提供丰富的性能指标监控和可视化管理平台,高性能SSD磁盘有效提升海量日志数据存储、检索、分析的处理效率。


整体来说,涉及搜索的业务场景都可能会用到UES,下面将介绍UES的几种常见业务场景。


日志分析


在复杂的计算机系统里,一个系统可能由成千上百台服务器构成,很多系统不在一个地区机房,甚至有跨国家的,即使在一个地区系统,也有不同的来源,比如操作系统、应用服务、业务逻辑等,都在无时无刻产生各式各样新的日志数据。


面对如此海量的日志数据,如果需要去排查一些重要信息,使用传统方式登陆每台机器查看,显然有点力不从心。因此,建立一套集中式的日志管理系统,把不同来源的日志数据集中整合到一起,再进行分析就显得尤为重要。


一套完整的集中式日志管理系统,主要包括以下几种功能:

 

  • 采集-能够采集不同地区多种来源的日志数据;

  • 传输-能够稳定地把日志数据传输到中央系统;

  • 存储-能够安全的存储日志数据;

  • 分析-能够提供高效的日志数据分析,并可以支持UI展现;

  • 告警-能够提供监控机制,对异常信息告警。



◆  解决方案:ELK

ELK是一套集中式日志管理方案,由ElasticSearch+Logstash+Kibana三个开源软件组成。UES基于ElasticSearch和Kibana开发,使用UES服务的ELK协议栈如下图所示:


Logstash Agent收集不同来源的Server产生的日志,并存放到 Elasticsearch集群中,而Kibana则从Es集群中查询数据生成图表,加上配置Nginx实现简单的用户认证,再返回给浏览器端。

 

Elasticsearch是一个实时的分布式搜索和分析引擎,可以用于全文搜索、结构化搜索以及分析,使用Java语言编写。


Elasticsearch 的主要特点:


  • 分布式的实时文档存储系统;

  • 分布式的实时分析搜索引擎;

  • 多数据源,文档导向,所有的对象全部是文档;

  • 高可用性、易扩展,支持集群(Cluster)、分片和复制(Shards和Replicas);

  • 支持插件机制;

  • restful风格接口,支持Json



Logstash是一个具有实时渠道能力的数据收集引擎,而且是一个完全开源的工具,可以对日志进行收集、过滤,并将其存储供以后使用。Logstash的主要特点是:几乎可以访问任何数据;可以和多种外部应用结合;支持弹性扩展。


Logstash由三个主要部分组成:


  • Shipper-发送日志数据;

  • Broker-收集数据,缺省内置Redis;

  • Indexer-数据写入。



Kibana是一款基于Apache开源协议,使用JavaScript语言编写,为 Elasticsearch提供分析和可视化的Web平台,可以在Elasticsearch的索引中查找、交互数据,并生成各种维度的表图。

      

使用UES作为日志分析管理的案例分析如图所示:


从案例中可以看出,使用ELK技术来做日志管理和传统方式的对比结果显而易见,使用ELK技术能在最短时间内解决问题,日志管理更加便捷高效。


全文检索


如今,各行各业每天产生的信息都在以指数级增长。在企业内部,每天产生的大量数据尤其是非结构化数据中,如何快速查找到有用的信息,几乎成为每个公司关注的重点。


Elasticsearch在实现全文检索过程中,首先要确定分词器,其默认有很多分词器。一般中文分词器使用第三方的ik分词器、mmsegf分词器和 paoding分词器,最初构建于lucene,后来移植于Elasticsearch。目前,在最新版的Elasticsearch中,使用的是ik分词器。UES已经内置安装了ik分词器,并且支持自定义分词词库。


当用户产生大量文本数据时,Elasticsearch均会将其进行分词,并将这些词语保存在索引中,只需输入关键词进行查询,索引就能查找对应的词,从而实现全文检索。全文检索的架构设计如下图:



其中,Elasticsearch服务端进行数据索引存储,Server提供检索接口,浏览器端负责数据渲染和界面呈现。


传统数据库替代


随着技术升级,Elasticsearch已经超越了最初纯搜索引擎的角色设置,新增了数据聚合分析和可视化的特性,因此当遇到千万级数量的文档需要通过关键词进行检索时,Elasticsearch将是最佳选择。当然,如果文档格式是Json的,也可以把Elasticsearch当作一种NoSQL数据库,对数据进行多维度分析。


Elasticsearch是支持持久存储、统计等多项功能的现代搜索引擎,这种特性也决定了某些场景下可以作为主要的后端服务存储。 Elasticsearch替代传统DB的前提是业务不对操作的事务性有特殊要求,这是由于其权限管理并不是特别完善,所以只作为内部存储是可以替代传统数据库的。


还有一种场景:在一个已经运行了很长时间的复杂系统中添加检索服务。一种非常冒险的方法是重构系统以支持使用Elasticsearch,而相对安全的方法是将其作为新的组件添加到现有系统中。



如图所示,MySQL数据库和Elasticsearch集群存储需要找到一种方式,使得两存储之间实时同步,例如logstash-input-jdbc插件。

 

事实上,Elasticsearch的应用场景远不止这些,只有不断尝试,接触新的应用场景,才有机会获得更好解决方案的经验。UES作为一款平台产品推出,旨在应用到客户广泛的业务场景中,例如:



  • 数据分析场景:分析网址、移动设备、服务器等非结构化和半结构化日志,分析传统数据库中数据,用于错误排查、应用程序监控、欺诈检测、游戏、广告等;

  • 全文搜索场景:电商、O2O等行业的搜索与导航服务;

  • 实时统计分析场景:应用程序、用户点击等实时统计分析;

  • 分布式文档处理场景:对Json支持友好,支持地理位置查询。



UES可以实现集群化的快速部署,极大降低人力运维成本,提供多种节点类型、计费方式灵活并且支持业务动态扩容,此外集群丰富的预装插件和监控指标,为用户集群使用功能和数据安全保驾护航。




—End—

点击“阅读原文”,了解更多UES产品信息。

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接