集群更新设置 API
编辑集群更新设置 API编辑
配置 动态集群设置。
请求编辑
PUT /_cluster/settings
描述编辑
您可以使用集群更新设置 API 在正在运行的集群上配置和更新动态设置。您还可以使用 elasticsearch.yml
在未启动或已关闭的节点上本地配置动态设置。
使用集群更新设置 API 进行的更新可以是*持久性的*,即在集群重启后仍然有效,也可以是*瞬态的*,即在集群重启后重置。您还可以通过使用 API 为瞬态或持久性设置分配 null
值来重置它们。
如果您使用多种方法配置相同的设置,Elasticsearch 将按以下优先级顺序应用设置
- 瞬态设置
- 持久性设置
-
elasticsearch.yml
设置 - 默认设置值
例如,您可以应用瞬态设置来覆盖持久性设置或 elasticsearch.yml
设置。但是,更改 elasticsearch.yml
设置不会覆盖已定义的瞬态或持久性设置。
如果您使用 Elasticsearch Service,请使用用户设置功能来配置所有集群设置。此方法允许 Elasticsearch Service 自动拒绝可能破坏集群的不安全设置。
如果您在自己的硬件上运行 Elasticsearch,请使用集群更新设置 API 来配置动态集群设置。仅将 elasticsearch.yml
用于静态集群设置和节点设置。API 不需要重启,并确保设置的值在所有节点上都相同。
我们不再建议使用瞬态集群设置。请改用持久性集群设置。如果集群变得不稳定,瞬态设置可能会意外清除,从而导致潜在的不希望的集群配置。请参阅瞬态设置迁移指南。
查询参数编辑
示例编辑
持久性更新的示例
resp = client.cluster.put_settings( body={"persistent": {"indices.recovery.max_bytes_per_sec": "50mb"}}, ) print(resp)
response = client.cluster.put_settings( body: { persistent: { 'indices.recovery.max_bytes_per_sec' => '50mb' } } ) puts response
PUT /_cluster/settings { "persistent" : { "indices.recovery.max_bytes_per_sec" : "50mb" } }
瞬态更新的示例
我们不再建议使用瞬态集群设置。请改用持久性集群设置。如果集群变得不稳定,瞬态设置可能会意外清除,从而导致潜在的不希望的集群配置。请参阅瞬态设置迁移指南。
resp = client.cluster.put_settings( flat_settings="true", body={"transient": {"indices.recovery.max_bytes_per_sec": "20mb"}}, ) print(resp)
response = client.cluster.put_settings( flat_settings: true, body: { transient: { 'indices.recovery.max_bytes_per_sec' => '20mb' } } ) puts response
PUT /_cluster/settings?flat_settings=true { "transient" : { "indices.recovery.max_bytes_per_sec" : "20mb" } }
更新的响应返回已更改的设置,如瞬态示例的响应所示
{ ... "persistent" : { }, "transient" : { "indices.recovery.max_bytes_per_sec" : "20mb" } }
此示例重置了一个设置
resp = client.cluster.put_settings( body={"transient": {"indices.recovery.max_bytes_per_sec": None}}, ) print(resp)
response = client.cluster.put_settings( body: { transient: { 'indices.recovery.max_bytes_per_sec' => nil } } ) puts response
PUT /_cluster/settings { "transient" : { "indices.recovery.max_bytes_per_sec" : null } }
响应中不包括已重置的设置
{ ... "persistent" : {}, "transient" : {} }
您还可以使用通配符重置设置。例如,要重置所有动态 indices.recovery
设置
resp = client.cluster.put_settings( body={"transient": {"indices.recovery.*": None}}, ) print(resp)
response = client.cluster.put_settings( body: { transient: { "indices.recovery.*": nil } } ) puts response
PUT /_cluster/settings { "transient" : { "indices.recovery.*" : null } }