Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›REST API ›API кластера

API обновления настроек кластера

Справочная информация по API

Для получения самой актуальной информации по API обратитесь к API кластера.

Настраивает динамические настройки кластера.

Запрос

PUT /_cluster/settings

Предварительные условия

  • Если в Elasticsearch включены функции безопасности, у вас должна быть manage право доступа к кластеру, чтобы использовать этот API.

Описание

Вы можете настраивать и обновлять динамические настройки в работающем кластере с помощью API обновления настроек кластера. Вы также можете настраивать динамические настройки локально на неинициализированном или остановленном узле, используя elasticsearch.yml.

Обновления, выполненные с помощью API обновления настроек кластера, могут быть постоянными, что означает их применение после перезапуска кластера, или временными, которые сбрасываются после перезапуска кластера. Вы также можете сбросить временные или постоянные настройки, назначив им null значение с помощью API.

Если вы настраиваете один и тот же параметр несколькими методами, Elasticsearch применяет настройки в следующем порядке приоритета:

  1. Временная настройка
  2. Постоянная настройка
  3. elasticsearch.yml настройка
  4. Значение параметра по умолчанию

Например, вы можете применить временную настройку для переопределения постоянной настройки или 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, чтобы указать, что запрос никогда не должен истекать.

Примеры

Пример постоянного обновления:

resp = client.cluster.put_settings(
    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
const response = await client.cluster.putSettings({
  persistent: {
    "indices.recovery.max_bytes_per_sec": "50mb",
  },
});
console.log(response);
PUT /_cluster/settings
{
  "persistent" : {
    "indices.recovery.max_bytes_per_sec" : "50mb"
  }
}

Пример временного обновления:

Мы больше не рекомендуем использовать временные настройки кластера. Используйте постоянные настройки кластера вместо них. Если кластер становится нестабильным, временные настройки могут неожиданно очищаться, что приводит к потенциально нежелательной конфигурации кластера. См. Руководство по миграции временных настроек.

resp = client.cluster.put_settings(
    flat_settings=True,
    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
const response = await client.cluster.putSettings({
  flat_settings: "true",
  transient: {
    "indices.recovery.max_bytes_per_sec": "20mb",
  },
});
console.log(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(
    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
const response = await client.cluster.putSettings({
  transient: {
    "indices.recovery.max_bytes_per_sec": null,
  },
});
console.log(response);
PUT /_cluster/settings
{
  "transient" : {
    "indices.recovery.max_bytes_per_sec" : null
  }
}

Ответ не включает настройки, которые были сброшены:

{
  ...
  "persistent" : {},
  "transient" : {}
}

Вы также можете сбрасывать настройки с использованием подстановочных знаков. Например, чтобы сбросить все динамические indices.recovery настройки:

resp = client.cluster.put_settings(
    transient={
        "indices.recovery.*": None
    },
)
print(resp)
response = client.cluster.put_settings(
  body: {
    transient: {
      "indices.recovery.*": nil
    }
  }
)
puts response
const response = await client.cluster.putSettings({
  transient: {
    "indices.recovery.*": null,
  },
});
console.log(response);
PUT /_cluster/settings
{
  "transient" : {
    "indices.recovery.*" : null
  }
}

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/cluster-update-settings.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API