场景化配置

更新时间:
复制为 MD 格式

不同业务场景(通用、数据分析、数据库加速、搜索等)对Elasticsearch的集群参数和索引配置有不同要求。场景化配置模板将这些最佳实践预置为可选模板,选择匹配的场景后系统自动应用推荐配置,减少因配置不当导致的集群异常和性能问题。

场景化配置模板包含三种配置类型:

  • 集群动态配置:动态修改集群级别设置,等同于执行PUT /_cluster/settings命令。详细信息,请参见Cluster update settings

  • 索引模板配置:定义创建新索引时自动应用的模板,不影响现有索引,等同于执行PUT _template/aliyun_default_index_template命令。详细信息,请参见Index templates

  • 索引生命周期配置:管理索引在hot、warm、cold、delete各阶段的自动流转策略,等同于执行PUT _ilm/policy/aliyun_default_ilm_policy命令。仅6.7.0及以上版本且购买冷数据节点的实例支持。详细信息,请参见Setting up a new policy

适用范围

该功能仅适用于v2架构集群。如何识别ES集群架构版本:

登录ES控制台,在实例基本信息页面查看管控部署模式云原生新管控(v3)或者基础管控(v2)

使用须知

  • 不同版本及类型的实例支持的场景化配置模板不同,以控制台实际配置为准。开启Indexing Service索引构建服务的实例仅支持日志场景。

  • 修改场景化模板等同于执行PUT _template/aliyun_default_index_template,不会触发实例重启,不影响现有索引及集群状态。

  • 系统推荐的索引模板名称为aliyun_default_index_template,order优先级为Integer.MIN_VALUE+1(不建议修改),低于自定义模板,不会影响自定义模板的配置。

  • 系统推荐的索引生命周期策略名为aliyun_default_ilm_policy,默认已应用到aliyun_default_index_template模板。

  • 开启索引生命周期配置不影响在集群上独立创建其他的索引生命周期策略。索引生命周期中不支持close配置。

  • 新购实例时可在购买页选择场景。商业版默认选择通用场景,内核增强版默认选择日志场景。购买成功后,对应模板配置自动应用到集群。如果场景化配置模板不启用状态,可按照以下步骤手动启用。启用后模板不会自动应用到集群,需提交才可应用。

  • 由于ES实例的管控版本差异,不同实例在控制台的场景化配置可能不同。如果控制台没有场景化配置,可直接使用ES API(PUT _template/aliyun_default_index_template)进行设置。

  • 如果集群未购买冷数据节点或低于6.7.0版本,索引生命周期配置入口默认关闭。如需使用,可参见Elasticsearch ILM手动配置。

修改场景化配置模板

  1. 登录阿里云Elasticsearch控制台

  2. 在左侧导航栏,单击Elasticsearch实例

  3. 进入目标实例。

    1. 在顶部菜单栏处,选择资源组和地域。

    2. Elasticsearch实例中单击目标实例ID。

  4. 在左侧导航栏,单击ES集群配置

  5. 场景化配置区域,单击场景化配置模板右侧的修改

    修改场景化模板

  6. 修改场景化配置对话框中,选择一个场景化模板 ,单击确认。修改场景化配置为动态修改,无需重启集群。

  7. 修改场景配置模板。

    修改场景配置

    场景配置模板包含三种配置类型:

    • 集群动态配置:动态修改集群设置,等同于执行PUT /_cluster/settings命令。详细信息,请参见Cluster update settings

    • 索引模板配置:定义创建新索引时自动应用的模板。更改模板不会影响现有索引,等同于执行PUT _template/aliyun_default_index_template命令。详细信息,请参见Index templates

    • 索引生命周期配置:6.7.0及以上版本的实例支持启用索引生命周期模板,等同于执行PUT _ilm/policy/aliyun_default_ilm_policy命令。详细信息,请参见Setting up a new policy

    以下操作以修改索引模板配置为例,其他配置类型操作方式相同。

    1. 单击索引模板配置

    2. 索引模板配置页面,单击 一键应用模板

      一键应用模板

      相关功能说明如下:

      • 一键应用模板:将右侧的推荐模板应用到左侧的当前配置中。应用后才可修改当前配置。

      • 查看对比:查看当前配置和推荐模板的差异。仅在修改过当前配置后可用,进入对比状态后无法编辑配置。

      • 重置:将当前配置重置为集群当前应用的配置。

    3. 在页面左侧的当前配置中,修改当前模板的配置。

    4. 修改完成后,单击查看对比,查看修改后的配置与推荐模板配置的差异。

      查看对比

    5. 单击退出对比

  8. 单击提交

    提交后,修改后的配置会应用到集群中。

集群动态配置参数

启用场景化模板配置后,您可以动态更改集群的设置模板。本文介绍集群动态配置的相关参数说明。

参数

说明

cluster.routing.allocation.balance.index

在特定节点上分配的每个索引的分片数量权重因子,默认为0.55f。提高该参数值,会增加在集群中所有节点上均衡每个索引的分片数的趋势。搜索场景下提高该参数值,例如提高到0.8f,可以使单个索引的分片在节点间分布得更均匀,提高查询性能。

cluster.routing.allocation.balance.shard

节点上分配的分片总数的权重因子,默认为0.45f。提高该参数值,会增加均衡集群中所有节点的分片数量的趋势。

search.max_buckets

单次响应返回的Bucket的最大数量。Elasticsearch 6.2版本开始支持该参数,默认值为-1,表示不限制,但是当结果超过10000Bucket时会记录deprecation告警日志。Elasticsearch 7.x版本默认配置为10000。

索引模板配置参数

启用场景化模板配置后,您可以动态更改集群的索引模板。本文介绍集群索引模板的相关参数说明。

重要

推荐的索引模板名为aliyun_default_index_template,order默认为Integer.MIN_VALUE+1(不建议修改,防止影响自定义模板),低于您自定义的模板。在不影响您自定义配置模板的基础上,推荐索引模板能够为您推荐适用于您使用场景的索引模板配置。

分片与性能参数

参数

说明

index_patterns

模板匹配的索引模式,支持通配符,默认为*。不建议修改。

index.number_of_shards

索引的主分片数。7.x版本之前默认为5,7.x版本(含7.0)之后默认为1。设置为1可有效控制集群分片数量,防止分片过多导致集群压力过大。

index.refresh_interval

refresh操作频率,默认1s。实时性要求不高时可增大该值(例如10s)来降低refresh开销,提高集群性能。

index.unassigned.node_left.delayed_timeout

节点离开集群后副本分片延迟分配的超时时间,默认1min。增大该值(例如5min)可加快集群恢复速度。

Segment合并参数

参数

说明

index.merge.policy.segments_per_tier

每层segment的数量。值越小segment越少,合并操作越多,索引性能越低。默认值为10,不应低于index.merge.policy.max_merge_at_once的值。

index.merge.policy.max_merged_segment

索引过程中单个segment的最大容量(近似值),默认5GB。

Translog参数

参数

说明

index.translog.durability

数据更新操作后是否同步将translog落盘。可选值:

  • request:每次请求同步落盘,保证节点异常时translog数据不丢失。

  • async:异步定时落盘,牺牲数据可靠性换取更高写入性能。

慢日志参数

参数

说明

index.search.slowlog.level

慢查询日志级别。

index.search.slowlog.threshold.query.warn

warn级别的慢查询日志阈值。

index.search.slowlog.threshold.query.info

info级别的慢查询日志阈值。

index.search.slowlog.threshold.query.debug

debug级别的慢查询日志阈值。

index.search.slowlog.threshold.query.trace

trace级别的慢查询日志阈值。

index.search.slowlog.threshold.fetch.warn

warn级别的慢获取日志(fetch)阈值。

index.search.slowlog.threshold.fetch.info

info级别的慢获取日志(fetch)阈值。

index.search.slowlog.threshold.fetch.debug

debug级别的慢获取日志(fetch)阈值。

index.search.slowlog.threshold.fetch.trace

trace级别的慢获取日志(fetch)阈值。

index.indexing.slowlog.level

慢索引的日志级别。

index.indexing.slowlog.source

记录source的大小。

index.indexing.slowlog.threshold.index.warn

warn级别的慢索引日志阈值。

index.indexing.slowlog.threshold.index.info

info级别的慢索引日志阈值。

index.indexing.slowlog.threshold.index.debug

debug级别的慢索引日志阈值。

index.indexing.slowlog.threshold.index.trace

trace级别的慢索引日志阈值。

其他参数

参数

说明

index.lifecycle.name

索引的生命周期策略名称。

mappings._default_._all.enabled

是否启用_all字段。5.x版本默认为true(建议设为false),6.x版本已默认为false,7.x版本已废弃该参数。

索引生命周期配置参数

索引生命周期策略定义了索引在各阶段的流转规则。开启后策略名为aliyun_default_ilm_policy,默认应用到aliyun_default_index_template模板。可通过Elasticsearch API(Getting templatesGet lifecycle policy API)查看。

重要
  • 开启场景化索引生命周期配置功能,不影响在集群上独立创建其他的索引生命周期策略。

  • 如果您的集群未购买冷数据节点或者低于6.7.0版本,索引生命周期配置入口默认是关闭。如果您需要使用该功能,可参见Elasticsearch ILM进行手动配置。

  • 索引生命周期中,不支持close配置。

参数

说明

phases.hot.min_age

索引进入hot阶段所需的时间。

phases.hot.actions.set_priority.priority

hot阶段索引的优先级。

phases.warm.min_age

索引进入warm阶段所需的时间。

phases.warm.actions.allocate.number_of_replicas

warm阶段索引的副本数。

phases.warm.actions.allocate.require.box_type

warm阶段索引分片分配的策略。例如将分片分配到warm节点。

phases.warm.actions.set_priority.priority

warm阶段索引的优先级。

phases.cold.min_age

索引进入cold阶段所需的时间。

phases.cold.actions.set_priority.priority

cold阶段索引的优先级。

phases.delete.min_age

索引进入delete阶段所需的时间。