Elasticsearch
简介
支持的 ES 版本:8.x
Elasticsearch 版本会自动从 root/ping 端点获取。Jaeger 会根据此版本使用兼容的索引映射和 Elasticsearch REST API。也可以通过 version: 配置属性显式指定版本。
Elasticsearch 除了安装并运行之外不需要进行初始化。启动后,将正确的配置值传递给 Jaeger。
配置
Jaeger Elasticsearch 后端的示例配置位于 Jaeger repository 中:config-elasticsearch.yaml。未来,配置文档将根据 schema 自动生成。在此期间,请参考 config.go,它是权威来源。
分片和副本
分片和副本是需要特别关注的一些配置值,因为这些值会在创建索引时确定。本文详细介绍了如何选择分片数量以实现优化。
索引滚动
Elasticsearch rollover 是一种索引管理策略,用于优化分配给索引的资源使用。例如,不包含任何数据的索引仍会分配分片;反过来,单个索引可能包含明显多于其他索引的数据。可以通过 use_aliases: true 配置属性启用 rollover 功能。
Rollover 允许你根据以下一个或多个条件配置何时滚动到新索引:
max_age- 索引的最大存留时间。它使用时间单位:d、h、m。max_docs- 索引中的最大文档数。max_primary_shard_size- 单个主分片的最大大小。它使用字节大小单位tb、gb、mb。
如需详细了解 Jaeger 中的 rollover 索引管理,请参阅本文。
初始化
以下命令通过创建索引别名、索引和索引模板,为 rollover 部署准备 Elasticsearch:
如果需要初始化归档存储,请添加 -e ARCHIVE=true。
初始化完成后,可以使用 use_aliases: true 部署 Jaeger。
ILM 支持
Elasticsearch ILM 会根据性能、弹性和保留要求自动管理索引。
ILM 支持是手动 rollover + lookback + index-cleaner 工作流的替代方案。启用 ILM 后,Elasticsearch 会根据配置的策略自动管理 rollover 和保留。
例如:
- 按大小(字节数或文档数)或存留时间滚动到新索引,并归档之前的索引
- 删除过期索引,以强制执行数据保留标准
启用 ILM 支持:
-
在 Elasticsearch 中创建名为
jaeger-ilm-policy的 ILM 策略。例如,以下策略会在“active”索引超过 1m 后执行 rollover,并删除超过 2m 的索引。
-
使用
ES_USE_ILM=true运行 Elasticsearch initializer:如果需要初始化归档存储,请添加
-e ARCHIVE=true。WARNING使用 ILM 支持进行初始化时,请确保已预先在 Elasticsearch 中创建名为
jaeger-ilm-policy的 ILM 策略(请参阅上一步),否则将显示以下错误消息:"ILM policy jaeger-ilm-policy doesn't exist in Elasticsearch. Please create it and rerun init"
初始化完成后,使用 use_ilm: true 和 use_aliases: true 部署 Jaeger。