瞬态设置迁移指南

编辑

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

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

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

重置和转换瞬态设置

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

    resp = client.cluster.get_settings(
        flat_settings=True,
        filter_path="transient",
    )
    print(resp)
    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 值来重置它们。

    resp = client.cluster.put_settings(
        persistent={
            "cluster.indices.close.enable": False,
            "indices.recovery.max_bytes_per_sec": "50mb"
        },
        transient={
            "*": None
        },
    )
    print(resp)
    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 确认您的集群没有剩余的瞬态设置。

    resp = client.cluster.get_settings(
        flat_settings=True,
    )
    print(resp)
    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": {
      }
    }