设置富化处理器
要设置丰富处理器,请遵循以下步骤
丰富处理器会执行多项操作,并可能影响采集管道的速度。我们建议使用节点角色(node roles)将采集和数据角色共置,以最大限度地减少远程搜索操作。
我们强烈建议在生产环境中部署之前,对丰富处理器进行测试和基准测试。
我们不建议使用丰富处理器来追加实时数据。丰富处理器最适合用于不经常更改的参考数据。
要使用丰富策略,您必须具备
- 任何所用索引的
read索引权限 enrich_user内置角色
首先,将文档添加到一个或多个源索引中。这些文档应包含您最终想要添加到传入数据中的丰富数据。
您可以像管理常规 Elasticsearch 索引一样管理源索引,使用文档和索引 API。
您还可以设置 Beats(例如 Filebeat),以自动将文档发送并索引到您的源索引中。请参阅“Beats 入门”。
将丰富数据添加到源索引后,使用创建丰富策略 API 或 Kibana 中的索引管理来创建丰富策略。
创建后,您无法更新或更改丰富策略。请参阅“更新丰富策略”。
一旦创建了丰富策略,您需要使用执行丰富策略 API 或 Kibana 中的索引管理来执行它,以创建丰富索引。
丰富索引包含来自策略源索引的文档。丰富索引总是以 .enrich-* 开头,是只读的,并且会被强制合并。
丰富索引仅应由丰富处理器或 ES|QL ENRICH 命令使用。避免将丰富索引用于其他目的。
一旦您有了源索引、丰富策略和相关的丰富索引,就可以设置包含该策略的丰富处理器的采集管道。
定义一个丰富处理器并使用创建或更新管道 API 将其添加到采集管道中。
定义丰富处理器时,至少必须包括以下内容
- 要使用的丰富策略。
- 用于将传入文档与丰富索引中的文档进行匹配的字段。
- 要添加到传入文档的目标字段。此目标字段包含丰富策略中指定的匹配字段和丰富字段。
您还可以使用 max_matches 选项来设置传入文档可以匹配的丰富文档数量。如果设置为默认值 1,数据将作为 JSON 对象添加到传入文档的目标字段中。否则,数据将作为数组添加。
有关配置选项的完整列表,请参阅“Enrich”。
您还可以向采集管道添加其他处理器。
您现在可以使用您的采集管道来丰富和索引文档。
在生产环境中实施管道之前,我们建议先索引一些测试文档,并使用 GET API 验证是否正确添加了丰富数据。
创建后,您无法更新或向丰富索引中索引文档。相反,请更新您的源索引并再次执行丰富策略。这将从更新后的源索引中创建一个新的丰富索引。之前的丰富索引将通过默认每 15 分钟执行一次的延迟维护作业被删除。
如果需要,您可以使用您的采集管道重新索引(reindex)或更新(update)任何已采集的文档。
创建后,您无法更新或更改丰富策略。相反,您可以
- 创建并执行一个新的丰富策略。
- 在任何正在使用的丰富处理器或 ES|QL 查询中,用新的丰富策略替换之前的丰富策略。
- 使用删除丰富策略 API 或 Kibana 中的索引管理来删除之前的丰富策略。
丰富协调器是一个组件,负责管理和执行在每个采集节点上丰富文档所需的搜索。它将所有管道中所有丰富处理器的搜索合并为批量多重搜索(multi-searches)。
丰富策略执行器是一个组件,负责管理所有丰富策略的执行。当执行丰富策略时,此组件会创建一个新的丰富索引并移除之前的丰富索引。丰富策略的执行由选定的主节点管理。这些策略的实际执行发生在不同的节点上。
enrich 处理器具有用于丰富协调器和丰富策略执行器的节点设置。
丰富协调器支持以下节点设置
enrich.cache_size-
缓存用于丰富文档的搜索结果的缓存的最大大小。您可以指定三种单位:
- 缓存搜索的原始数量,例如
1000。 - 绝对字节大小,例如
100Mb。 - 节点最大堆空间的百分比,例如
1%。
如果您指定绝对字节大小或堆百分比,Elasticsearch 不保证缓存完全保持在配置的最大值内。缓存大小是使用序列化搜索响应的字节大小来测量的,这是实际堆使用量的良好近似值,但不完全精确。集群中所有丰富处理器共用一个缓存。默认值为
1%。 - 缓存搜索的原始数量,例如
enrich.coordinator_proxy.max_concurrent_requests- 丰富文档时要运行的并发多重搜索请求的最大数量。默认值为
8。 enrich.coordinator_proxy.max_lookups_per_request- 丰富文档时要在多重搜索请求中包含的搜索最大数量。默认值为
128。 enrich.coordinator_proxy.queue_capacity- 协调器在等待运行丰富查找时可以排队的最大数量。当队列已满时,Elasticsearch 会拒绝新的丰富请求并返回 HTTP 429 错误。如果突发的采集流量导致 429 错误,请增加此值,以便节点可以缓冲更多的查找。较大的队列会占用更多内存。默认值为
max_concurrent_requests * max_lookups_per_request。
丰富策略执行器支持以下节点设置
enrich.fetch_size- 将源索引重新索引到丰富索引时的最大批处理大小。默认值为
10000。 enrich.max_force_merge_attempts- 允许在丰富索引上进行的强制合并尝试的最大次数。默认值为
3。 enrich.cleanup_period- Elasticsearch 检查是否可以删除未使用的丰富索引的频率。默认值为
15m。 enrich.max_concurrent_policy_executions-
同时运行的丰富策略的最大数量。默认值为
50。