设置 enrich 处理器

编辑

要设置 enrich 处理器,请按照以下步骤操作

设置 enrich 处理器后,您可以更新 enrich 数据更新 enrich 策略

enrich 处理器执行多个操作,可能会影响摄取管道的速度。

我们强烈建议在生产环境中部署 enrich 处理器之前对其进行测试和基准测试。

我们不建议使用 enrich 处理器来追加实时数据。enrich 处理器最适合用于不经常更改的参考数据。

先决条件

编辑

要使用 enrich 策略,您必须拥有

  • read 用于任何使用索引的索引权限
  • enrich_user 内置角色

添加 enrich 数据

编辑

首先,将文档添加到一个或多个源索引中。这些文档应包含您最终想要添加到传入数据中的 enrich 数据。

您可以像管理常规 Elasticsearch 索引一样管理源索引,使用文档索引 API。

您还可以设置Beats,例如Filebeat,来自动将文档发送到您的源索引并对其进行索引。请参阅Beats 入门

创建 enrich 策略

编辑

将 enrich 数据添加到源索引后,使用创建 enrich 策略 APIKibana 中的索引管理 创建 enrich 策略。

创建后,您无法更新或更改 enrich 策略。请参阅更新 enrich 策略

执行 enrich 策略

编辑

创建 enrich 策略后,您需要使用执行 enrich 策略 APIKibana 中的索引管理 创建enrich 索引

enrich policy index

enrich 索引包含策略的源索引中的文档。enrich 索引始终以.enrich-*开头,是只读的,并且是强制合并的。

enrich 索引只能由enrich 处理器ES|QL ENRICH 命令 使用。避免将 enrich 索引用于其他目的。

将 enrich 处理器添加到摄取管道

编辑

准备好源索引、enrich 策略和相关的 enrich 索引后,您可以设置一个摄取管道,其中包含您策略的 enrich 处理器。

enrich processor

定义一个enrich 处理器,并使用创建或更新管道 API将其添加到摄取管道。

定义 enrich 处理器时,您必须至少包含以下内容

  • 要使用的 enrich 策略。
  • 用于将传入文档与 enrich 索引中的文档匹配的字段。
  • 要添加到传入文档的目标字段。此目标字段包含 enrich 策略中指定的匹配和丰富字段。

您还可以使用max_matches选项设置传入文档可以匹配的 enrich 文档数量。如果设置为默认值1,则数据将作为 JSON 对象添加到传入文档的目标字段中。否则,数据将作为数组添加。

有关完整配置选项列表,请参阅Enrich

您还可以将其他处理器添加到您的摄取管道。

摄取和丰富文档

编辑

您现在可以使用摄取管道来丰富和索引文档。

enrich process

在生产环境中实施管道之前,我们建议先索引一些测试文档,并使用获取 API验证 enrich 数据是否已正确添加。

更新 enrich 索引

编辑

创建后,您无法更新或索引文档到 enrich 索引。相反,更新您的源索引并执行 enrich 策略。这将从更新的源索引创建新的 enrich 索引。以前的 enrich 索引将通过延迟维护作业删除。默认情况下,这每 15 分钟执行一次。

如果需要,您可以使用摄取管道重新索引更新任何已摄取的文档。

更新 enrich 策略

编辑

创建后,您无法更新或更改 enrich 策略。相反,您可以

  1. 创建并执行新的 enrich 策略。
  2. 将以前的 enrich 策略替换为任何正在使用的 enrich 处理器或 ES|QL 查询中的新 enrich 策略。
  3. 使用删除 enrich 策略 API 或 Kibana 中的索引管理 删除以前的 enrich 策略。

丰富组件

编辑

enrich 协调器是一个组件,它管理并执行在每个摄取节点上丰富文档所需的搜索。它将所有管道中所有 enrich 处理器的搜索组合成批量多搜索

enrich 策略执行器是一个组件,它管理所有 enrich 策略的执行。当执行 enrich 策略时,此组件会创建一个新的 enrich 索引并删除以前的 enrich 索引。enrich 策略执行由选定的主节点管理。这些策略的执行发生在不同的节点上。

节点设置

编辑

enrich 处理器具有用于 enrich 协调器和 enrich 策略执行器的节点设置。

enrich 协调器支持以下节点设置

enrich.cache_size
缓存用于丰富文档的搜索的缓存的最大大小。大小可以使用三种单位指定:缓存搜索的原始数量(例如1000)、以字节为单位的绝对大小(例如100Mb)或节点最大堆空间的百分比(例如1%)。对于绝对字节大小和堆空间百分比,Elasticsearch 无法保证 enrich 缓存大小会完全符合该最大值,因为 Elasticsearch 使用序列化搜索响应的字节大小,这很好地表示了堆上使用的空间,但不是完全匹配。默认为1%。集群中所有 enrich 处理器都使用单个缓存。
enrich.coordinator_proxy.max_concurrent_requests
丰富文档时运行的并发多搜索请求的最大数量。默认为8
enrich.coordinator_proxy.max_lookups_per_request
丰富文档时,在多搜索请求中包含的搜索的最大数量。默认为128

enrich 策略执行器支持以下节点设置

enrich.fetch_size
将源索引重新索引到 enrich 索引时的最大批处理大小。默认为10000
enrich.max_force_merge_attempts
在 enrich 索引上允许的强制合并尝试的最大次数。默认为3
enrich.cleanup_period
Elasticsearch 检查是否可以删除未使用的 enrich 索引的频率。默认为15m
enrich.max_concurrent_policy_executions
并发执行的 enrich 策略的最大数量。默认为50