摘要:2018 Elastic Meetup南京交流会,来自Elastic的工程师曾勇对Elastic进行了讲述,Elastic是世界领先的开源提供商,是一个世界领先的软件开发商。曾勇主要对Elasticsearch、kibana、logstash/Beats、X-Pack里的一些功能进行了介绍,这些功能包括Meta、Inder Sorting、Grok Debugger、Recent Time Range等,通过曾勇的介绍,我们可以挖掘出Elastic里一些不起眼的新功能。
阿里云Elasticsearch 1核2G首月免费试用,开始云上实践吧
视频直播请点击
下载PPT请点击
以下是精彩内容整理
Elastic介绍
Elastic是一个专业的软件开发商,是一个世界领先的软件开发商。工程师对Elastic进行软件设计,bug的修改,新功能的添加。Elastic软件的下载量非常的大,Elastic不仅是软件行业,在传统行业的应用也很多,像银行、相关、高科技行业,都在用Elastic的很多功能,像做日志、搜索、业务等相关的分析。Elastic的应用场景非常多样化。对Elastic探秘之遗落的功能,主要从Elasticsearch里面几个不起眼的小功能、kibana里面几个值得留意的新功能、logstash/Beats里面几个值得留意的功能、X-Pack不容错过的免费功能进行介绍。
Elasticsearch
Elasticsearch一个需求如上图所示,当对数据库做一个字表,建立一个数据库表的时候,可以编辑一个备注,表示这个字段的功能。如这个表是谁在什么时间建的,有什么需求。这个需求对开发来说是非常有用的,当开发非常复杂,相关人员就会建立相关文档说明。让我们再来了解下Elasticsearch里面几个不起眼的小功能。
Meta功能,Meta相当于一个仓库,里面可以放很多的东西。
如上图所示就是一个Meta。Meta 这个功能很早就有了,但是知道的人却很少,这是一个很不起眼的工具,如果真正的用起来非常有帮助。
Inder Sorting功能,在做搜索的时候可能会用到排序。以前是查完一个数据,得到一个文档,然后对文档里的字段再进行排序。对文档进行编译,得到编译文档的每一个结果,然后再进行比较。这样文档越多,排序的速度越慢。现在建索引的时候就排好序,文档就是一个排好序的结构了,这样进行编译后的结果也是有序的,不需要进行排序,会节省很多时间。Inder Sorting能够提高排序性能,更好的压缩比,更少的磁盘。
Adaptive Replica Selection功能。索引分为主分片和副分片,一个请求过来后会发到任何一个节点上去。如果主分片不在请求所在的节点,它会自动的把请求发送到主分片所在的服务器,然后主分片会串联索引,再把它写到副本上去,在副本上进行依次轮询,然后智能的选择副本进行查询。
Kibana
Kibana是一个可视化的平台,可以做数据的分析和搜索。现在有个新的查询语法叫Kuery ,以前是有一个输入框,输入框内可以输入关键字、表达式,然后进行检索运行。但是当我们输入一个很长的字段名称,如果输入不对,就无法查到结果。在最新的版本里,可以开启Kuery 功能,然后再进行搜索,在输入框里输入字段的时候,就会有提示。字段的列表就会自动出来,不用全部输入,自动列表可以自动的完成。
还有一些小的变化,Recently Viewed是快速链接导航 。Recent Time Range是一个历史记录,可以直接进行选择,很方便。Vega是用描述性语言来描述一个可视化的内容。TSVB 是把另外一个索引的注释在时间轴上进行标注绑定在一起,然后进行统计分析。使用API来创建Inder Pattern,通过API来做自动运维是非常有必要的。尤其是可视化这一块,人工来做是非常耗费人力物力。现在基本上是用API来做,创建可视化的类型。
Logstash beats
用Dissect做结构化的时候,要求数据是结构化。把一个文本字句拆成字段,它的结构是有一定规范的,可以通过逗号或空格进行分割,总有一个固定的规则。Munin不是Elastic,它的历史悠久,从2002年就开始使用,是用PerL进行编写,插件丰富可以跨平台,可以运行到各种平台上,它可以监控服务器的性能指标,像cpu磁盘空间占用。Elastic现在也在做监控,做性能指标分析。然后就把Munin通过beats拉入到Elastic里进行分析,Kibana可以进行实时的分析。
如上图所示是一个和beats相关的,基于磁盘的一个队列,可以理解为磁盘的一个缓冲区。当用beats进行处理数据时,当数据有时候高有时候低时,就会占用内存。可以用磁盘做一个缓冲区,数据先落地。
X-pack
X-pack的大部分功能是开源的,虽然X-pack是商业的,需要支撑整个公司,但是还是有很多的功能是免费的。只需要下载默认的版本便可直接使用。
如上图所示,大部分的功能是开源的,存在OSS里。源代码是公开的,有一部分需要收费,有一部分是免费的。默认是打包在默认的版本,需要用更高级版本只需要打开即可,免费的功能很多人都不知道。
如上图所示,是一个监控的monitoring功能。这个主要是用来监控KB和ES,它是一个收集、监控到可视化分析的工具,需要对监控的情况做分析。
sql的功能是用sql的语法构建查询,目前很简单,只提供select 基本功能,不能完全的写数据、修改数据,主要用于一些数据科学家、运维分析人员去查数据;Rolling up 功能是免费的,它可以把原始数据进行上卷。按照新的时间戳范围算一个聚合,得到一个新的结果,数据量会少很多,这样就会节省磁盘数量,历史数据、经营数据需要对数据进行Rolling up来减少数据量,大大提高运行速度。做同样的事情,磁盘服务器的数据会大量减少,成本大大降低;Index索引管理功能里面有很多快速入口,方便修改配置、刷新缓存等功能的管理;还有Grok Debugger功能,它是一个用来调试python的工具。很多场景会用到Grok像日志的每一行可能不一样,可以用Grok把它们做成一个事件; profiler 查询功能,只需一个查询条件,可以进行查询和调用;Reporting 功能负责数据的打出,Reporting可以生成CSV,把所有数据生成CSV就可以打出来,这个功能是在后台进行下载,下载完后进行分析生成一个文件。
阿里云Elasticsearch 1核2G首月免费试用,开始云上实践吧