1. 首页
  2. >
  3. 技术专题
  4. >
  5. Lucene

Elasticsearch 7.10.0发布

日前Elastic发布了Elasticsearch 7.10.0。该版本基于Apache Lucene 8.7.0开发,支持在Elasticsearch 在线弹性云和自建实例使用,有关该版本的功能,请和虫虫一起学习。

Elasticsearch 7.10.0发布

可搜索的快照可存储更多内容

大数据流行的几天,企业数据都每天都以指数级的速率增长。尤其是日志和监控数据(例如日志,指标,跟踪和安全事件)。很多企业都在用Elasticsearch收集和存储数据,用来做实时告警、在线分析以及机器学习检测,用来驱动DevOps工作流,监控安全事件。但是大量数据存储需要大量资源,尤其是靠云服务企业,每一M都是钱,怎么能保证数据存储并保持经济是一个问题。


为了解决这个问题,Elasticsearch引入了数据的生命周期。使用索引生命周期管理等功能有助于将数据从高性能,高成本的"热"节点移动到性能较低的磁盘的低成本"热"节点。将大量数据保留在热节点上,仍然需要大量的存储费用。而如果能将其分级,将大量不是需要实时的数据存储为快照。但是这样的解决方案存在问题,那就是需要在将快照恢复,需要花费大量恢复时间。


新版本中加入了一个Beta版本的功能可搜索快照,,可让用户直接在无需还原的情况下在AWS S3,Microsoft Azure存储或Google Cloud Storage等低成本对象存储上搜索快照,而不会显著影响搜索性能。平衡成本,性能和功能,以满足存储和搜索需求。


可搜索快照为称为冷层(cold tier)的新数据层提供了动力。冷层可以将集群存储减少50%,而不会显著影响性能,从而极大的降低只读数据的存储成本。它保持与热层(warm tier)和热层相同的可靠性和冗余级别,并完全支持从Elasticsearch获得的自动恢复。

通过EQL增强Elasticsearch的安全性

在7.9版中,Elasticsearch事件查询语言(EQL),一种新的实验性查询语言。EQL在Endgame中已使用多年,可帮助用户全面了解威胁调查,识别和预防系统。现在已将安全性领域中使用的这些相同的独特功能引入了Elasticsearch,并且在7.10中,Elasticsearch中的EQL现在处于Beta版,用于诸如可观察性和其他时间序列数据之类的用例。

Elasticsearch 7.10.0发布

EQL旨在轻松地处理一个事件并关联其他事件或事件序列,以得出系统状态的结论。可以在一段时间内将这些事件关联起来,以找到新的结论。

其他功能和可用性增强

搜索时间点(PIT)

在Elasticsearch中查询索引时,实际上是在给定的时间点搜索数据。如果查询返回前10%的结果,如何查询其他90%的结果?在大多数可观察性和安全性使用案例中,索引不断变化,因此发送另一个查询将返回不同的结果,因为索引或数据已更改。时间点读取器使用户能够以给定时间点处的状态重复查询索引。时间点阅读器已经提供了EQL查询语言希望将来将其用于许多其他用例。

Elasticsearch 7.10.0发布

通配符字段类型大小写不敏感

在Elasticsearch 7.9中,引入了新的通配符字段类型。在引入这种新的字段类型之前,在网络浏览器上进行了人类学习,但是在查询中使用通配符会占用大量资源,并且通常导致搜索时间慢于预期。通配符字段类型提供了额外的灵活性,并且是组合查询的简便方法。在7.10中,增加了对不区分大小写查询的支持。默认情况下,这只需将可选的case_insensitive标志设置为true即可对术语级查询(例如术语,术语,前缀,通配符和正则表达式)启用不区分大小写的功能。这将极大地有益于安全性和可观察性。


GET /my-index-000001/_eql/search

{

"query": """

process where process.executable : "c:\\\\windows\\\\system32\\\\cmd.exe"

"""

}

无符号64位整数

Elasticsearch新版本,支持无符号的64位整数。此新的数字类型支持从0到264-1的非常大的正整数。这对于系统生成的数据(例如来自路由器的计数器或Windows注册表事件)特别有用。聚合仍然可以在最接近的两倍上进行。

版本数据类型

如何搜索数值为语义的软件版本?版本数据类型是关键字字段的一种特殊形式,用于处理软件版本值并支持基于语义版本控制的软件优先级规则。例如,主要版本,次要版本和修补程序版本按数字排序("2.1.0" < "2.4.1" < "2.11.2"),而预发行版本则在发行之前进行排序("1.0.0-alpha < "1.0.0")。

新汇总功能

除了在7.8中添加的聚合外,还引入了两个新的聚合函数:直方图字段上的最小/最大聚合,以及直方图聚合的硬边界。直方图数据类型对于处理大量数字数据很有用,该数据经常在生成的地方聚合,从而允许使用更节省空间的Elasticsearch索引。例如,Elastic APM可以汇总直方图数据或将其汇总为一种结构,以减少从APM代理发送到Elasticsearch的数据量。能够在直方图上进行汇总可以支持新的方案。

第二个聚合是速率指标聚合,它在date_histogram内使用,并计算date_histogram聚合的存储桶中指定字段的出现率。以前,计算费率比较困难,由于费率是分析时间序列数据时的基本信息,因此认为简化费率很有价值。这是我们正在进行的许多此类调整之一,以验证对时间序列数据使用Elasticsearch通用搜索和分析引擎是否容易且直观。

新的接收节点管道UI

Elasticsearch 7.10.0发布

使用新的接收节点管道UI可以更轻松地调试接收流。添加了视觉提示和管道测试,使可以轻松地逐步执行流程。查看输出中的错误消息可以帮助确定需要采取哪些措施,以确保的文档能够与提取处理器一起正常工作。

REST API对系统索引的访问已被弃用

Elasticsearch不建议使用REST API访问系统索引。多数尝试访问系统索引的REST API请求都将返回以下弃用警告:

以下REST API端点将访问系统索引作为其实现的一部分,并且不会返回弃用警告。添加了一个新的元数据标志来跟踪索引。升级期间,Elasticsearch会自动将此标志添加到任何现有系统索引中。

GET _cluster/state

POST _cluster/reroute

GET {index}/_stats

GET {index}/_segments

GET {index}/_shard_stores

GET _cat/[indices,aliases,health,recovery,shards,segments]

系统索引的新线程池

系统索引添加了两个新的线程池:system_read和 system_write。这些线程池可确保对Elastic Stack至关重要的系统索引(例如安全性或Kibana所使用的系统索引)在集群承受沉重的查询或索引负载时保持响应能力。

system_read是一个fixed线程池,用于管理针对系统索引的读取操作的资源。类似地,system_write是一个fixed线程池,用于管理针对系统索引的写操作的资源。两者的最大线程数等于5或等于可用处理器的一半,以较小者为准。

机器学习

AUC ROC指标,用于评估分类机器学习模型

新增加了接收器工作特性曲线下的面积(AUC ROC),作为分类分析的评估指标。这是了解模型性能的常用评估指标。

Elasticsearch 7.10.0发布

数据框分析中的自定义功能处理器

数据框分析中的新字段使用户能够提供自己的功能转换和处理器,这些功能和处理器在训练之前应用,并在推理时自动应用。这使可以在将任何数据行提供给分析之前,对其进行最后一步的特征转换。

Elasticsearch 7.10存储减少

Elasticsearch 7.10依赖于Apache Lucene 8.7,后者引入了对存储字段的更高压缩,这是索引中特别存储的部分_source。在我们作为基准的各种数据集上,我们注意到空间减少了0%至10%。此更改特别有助于在文档之间具有大量冗余数据的数据集,这通常是由我们的可观察性解决方案生成的文档的情况,该解决方案重复了有关在每个文档上生成数据的主机的元数据。

Elasticsearch提供了配置index.codec设置的能力,以告知Elasticsearch如何积极地压缩存储的字段。这两个值都将支持,default并且best_compression将通过此更改获得更好的压缩。

基准测试报告说,使用新的存储字段压缩,最多可减少10%的空间!这是个大新闻,特别是对于为存储和维护PB级数据付费的组织而言。由Elastic Observability和Elastic Security解决方案创建的索引将获得最大的节省,因为它们通常保存的数据具有重复性。

Elasticsearch性能改进

Elastic一直致力于不断提高搜索聚合性能和内存效率。在7.8中,我们通过维护序列化的结果减少了聚合内存的消耗;在7.9中,将search.max_buckets限制增加到65,535。Elasticsearch团队在7.10中继续了这项工作,特别针对协调节点和请求级断路器,以提高性能以及对基数和存储桶聚合的内存跟踪。通过预先计算日期范围,日期直方图聚合性能也提高了50%。

索引速度提高

Elasticsearch 7.10将索引编制速度提高了20%。我们减少了将条目添加到事务日志所需的协调。这种减少允许更多的并发性,并将事务日志缓冲区的大小从增大8KB到1MB。但是,对于全文搜索和其他分析密集型用例而言,性能提升较低。索引链越重,收益就越低,因此涉及许多字段,提取管道或全文本索引的索引链将获得较低的收益。