集群更新设置 API
有关最新的 API 详情,请参阅集群 API。
配置动态集群设置。
请求
PUT /_cluster/settings
前置条件
- 如果启用了 Elasticsearch 安全功能,你必须拥有
manage集群权限才能使用此 API。
描述
你可以使用集群更新设置 API 在运行中的集群上配置和更新动态设置。你也可以使用 elasticsearch.yml 在未启动或已关闭的节点上本地配置动态设置。
使用集群更新设置 API 进行的更新可以是持久性的(在集群重启后仍然有效),也可以是临时性的(在集群重启后重置)。你还可以通过使用 API 将临时或持久设置赋值为 null 来重置它们。
如果你使用多种方法配置相同的设置,Elasticsearch 会按以下优先级顺序应用设置:
- 临时设置
- 持久设置
elasticsearch.yml设置- 默认设置值
例如,你可以应用临时设置来覆盖持久设置或 elasticsearch.yml 设置。但是,对 elasticsearch.yml 设置的更改不会覆盖已定义的临时或持久设置。
如果你使用 Elasticsearch Service,请使用用户设置功能来配置所有集群设置。这种方法可以让 Elasticsearch Service 自动拒绝可能破坏集群的不安全设置。
如果你在自己的硬件上运行 Elasticsearch,请使用集群更新设置 API 来配置动态集群设置。仅将 elasticsearch.yml 用于静态集群设置和节点设置。API 不需要重启,并确保所有节点上的设置值相同。
我们不再推荐使用临时集群设置。请改用持久集群设置。如果集群变得不稳定,临时设置可能会意外清除,导致可能不希望的集群配置。请参阅临时设置迁移指南。
查询参数
flat_settings(可选,布尔值)如果为true,以扁平格式返回设置。默认为false。include_defaults(可选,布尔值)如果为true,返回所有默认集群设置。默认为false。master_timeout(可选,时间单位)等待主节点的时间。如果在超时到期前主节点不可用,请求失败并返回错误。默认为30s。也可以设置为-1表示请求永不超时。timeout(可选,时间单位)更新集群元数据后等待集群中所有相关节点响应的时间。如果在超时到期前未收到响应,集群元数据更新仍然适用,但响应将指示未被完全确认。默认为30s。也可以设置为-1表示请求永不超时。
示例
持久性更新示例:
PUT /_cluster/settings
{
"persistent" : {
"indices.recovery.max_bytes_per_sec" : "50mb"
}
}
临时更新示例:
我们不再推荐使用临时集群设置。请改用持久集群设置。如果集群变得不稳定,临时设置可能会意外清除,导致可能不希望的集群配置。请参阅临时设置迁移指南。
PUT /_cluster/settings?flat_settings=true
{
"transient" : {
"indices.recovery.max_bytes_per_sec" : "20mb"
}
}
更新后的响应返回更改的设置,如临时示例的响应:
{
...,
"persistent" : { },
"transient" : {
"indices.recovery.max_bytes_per_sec" : "20mb"
}
}
重置设置示例:
PUT /_cluster/settings
{
"transient" : {
"indices.recovery.max_bytes_per_sec" : null
}
}
响应不包括已重置的设置:
{
...,
"persistent" : {},
"transient" : {}
}
你也可以使用通配符重置设置。例如,重置所有动态 indices.recovery 设置:
PUT /_cluster/settings
{
"transient" : {
"indices.recovery.*" : null
}
}