瞬态设置迁移指南编辑

我们不再建议使用瞬态集群设置。您可以使用瞬态设置对集群进行临时配置更改。但是,集群重启或集群不稳定可能会意外清除这些设置,从而导致潜在的非预期集群配置。

为了避免此风险,请重置您在集群上配置的任何瞬态设置。将您想要保留的任何瞬态设置转换为持久设置,持久设置在集群重启和集群不稳定期间会持续存在。您还应该更新任何自定义工作流和应用程序以使用持久设置而不是瞬态设置。

某些 Elastic 产品在执行特定操作时可能会使用瞬态设置。仅重置由您、您的用户或您的自定义工作流和应用程序配置的瞬态设置。

重置和转换瞬态设置

  1. 使用 集群获取设置 API 获取任何已配置的瞬态设置的列表。

    response = client.cluster.get_settings(
      flat_settings: true,
      filter_path: 'transient'
    )
    puts response
    GET _cluster/settings?flat_settings=true&filter_path=transient

    该 API 在 transient 对象中返回瞬态设置。如果此对象为空,则您的集群没有瞬态设置,您可以跳过其余步骤。

    {
      "persistent": { ... },
      "transient": {
        "cluster.indices.close.enable": "false",
        "indices.recovery.max_bytes_per_sec": "50mb"
      }
    }
  2. 将您想要转换的任何设置复制到 集群更新设置 API 请求的 persistent 对象中。在同一个请求中,通过为它们分配 null 值来重置任何瞬态设置。

    response = client.cluster.put_settings(
      body: {
        persistent: {
          'cluster.indices.close.enable' => false,
          'indices.recovery.max_bytes_per_sec' => '50mb'
        },
        transient: {
          "*": nil
        }
      }
    )
    puts response
    PUT _cluster/settings
    {
      "persistent": {
        "cluster.indices.close.enable": false,
        "indices.recovery.max_bytes_per_sec": "50mb"
      },
      "transient": {
        "*": null
      }
    }
  3. 使用 集群获取设置 API 确认您的集群没有剩余的瞬态设置。

    response = client.cluster.get_settings(
      flat_settings: true
    )
    puts response
    GET _cluster/settings?flat_settings=true

    如果 transient 对象为空,则您的集群没有瞬态设置。

    {
      "persistent": {
        "cluster.indices.close.enable": "false",
        "indices.recovery.max_bytes_per_sec": "50mb",
        ...
      },
      "transient": {
      }
    }